In [ ]:
. ./nbs_header.ps1
. ./core.ps1
In [ ]:
{ . "$ScriptDir/../apps/builder/build.ps1" } | Invoke-Block
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # DibParser (Polyglot) │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
spNetCore.Html.Abstractions.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
Formatter.ListExpansionLimit <- 100
── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
type AssertExceptionFormatter (ex) =
member _.Text =
ex.ToString()
.Replace("32m", "<span style=\"color: green;\">")
.Replace("36m", "</span>")
.Replace("31m", "<span style=\"color: red;\">")
.Replace("\n", "<br/>\n")
Formatter.Register<AssertExceptionFormatter> ((fun (x :
AssertExceptionFormatter) -> x.Text), "text/html")
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __expect fn log expected actual =
if log then printfn $"{actual.ToDisplayString ()}"
try
"Testing.__expect" |> fn actual expected
with :? Expecto.AssertException as ex ->
AssertExceptionFormatter(ex).Display () |> ignore
failwith (ex.GetType().FullName)
let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual
let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual
let inline __isGreaterThan log expected actual = __expect
Expecto.Expect.isGreaterThan log ex...
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __isBetween log a b actual =
let inline isBetween actual (a, b) _ =
__isGreaterThanOrEqual log a actual
__isLessThanOrEqual log b actual
__expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual
── pwsh ────────────────────────────────────────────────────────────────────────
ls ~/.nuget/packages/argu
╭─[ 569.68ms - stdout ]────────────────────────────────────────────────────────╮
│ │
│ Directory: C:\Users\i574n\.nuget\packages\argu │
│ │
│ Mode LastWriteTime Length[ │
│ 32;1m Name │
│ ---- ------------- ------ [ │
│ 32;1m---- │
│ d---- 2023-05-17 3:38 PM 6.1.1 │
│ d---- 2024-03-12 8:22 PM 6.1.4 │
│ d---- 2024-01-29 5:12 PM 6.1.5 │
│ d---- 2024-03-12 8:20 PM 6.2.0 │
│ d---- 2024-02-23 6:50 PM 6.2.1 │
│ d---- 2024-03-12 8:15 PM 6.2.2 │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
#r
@"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
dard2.1/FSharp.Control.AsyncSeq.dll"
#r
@"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
0/System.Reactive.dll"
#r
@"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
netstandard2.0/System.Reactive.Linq.dll"
#r
@"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
#r
@"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
b/net6.0/System.CommandLine.dll"
#r
@"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP
arsec.dll"
#r
@"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP
arsecCS.dll"
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/sm.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/spiral/file_system.fsx
#!import ../../lib/spiral/lib.fsx
#!import ../../lib/fsharp/Common.fs
#!import ../../lib/fsharp/CommonFSharp.fs
#!import ../../lib/fsharp/Async.fs
#!import ../../lib/fsharp/AsyncSeq.fs
#!import ../../lib/fsharp/Runtime.fs
#!import ../../lib/fsharp/FileSystem.fs
── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
| US0_0
| US0_1
and [[<Struct>]] US1 =
| US1_0
| US1_1 of f1_0 : US0
let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
v0
and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
let mutable result = None
#if FABLE_COMPILER_RUST && !WASM
let v1 : (unit -> unit) = method0(v0)
let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v1()" }
v2
#endif
#if FABLE_COMPILER_RUST && WASM
let v3 : (unit -> unit) = method0(v0)
let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v3()" }
v4
#endif
#if !FABLE_COMPILER && !F...
── fsharp - import ─────────────────────────────────────────────────────────────
type Mut0 = {mutable l0 : int32; mutable l1 : string}
and Mut1 = {mutable l0 : int32}
let rec closure1 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.Contains v0
v2
and closure0 () (v0 : string) : (string -> bool) =
closure1(v0)
and closure3 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.EndsWith v0
v2
and closure2 () (v0 : string) : (string -> bool) =
closure3(v0)
and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
let v3 : string = v2.PadLeft (v0, v1)
v3
and closure5 (v0 : int32) (v1 : char) : (string -> string) =
closure6(v0, v1)
and closure4 () (v0 : int32) : (char -> (string -> string)) =
closure5(v0)
and closure8 (v0 : int32) (v1 : string) : string =
let v2 : stri...
── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
let v2 : (System.Guid -> string) = _.ToString()
let v3 : string = v2 v0
let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
v5
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
let v3 : string = v2.Replace (v0, v1)
v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
closure3()
and closure2 (...
── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
| US0_0
| US0_1
| US0_2
and [[<Struct>]] US1 =
| US1_0 of f0_0 : US0
| US1_1 of f1_0 : US0
let rec closure0 () () : string =
let mutable result = None
#if FABLE_COMPILER_RUST && !WASM
let v0 : US0 = US0_1
let v1 : US1 = US1_1(v0)
let v2 : string = $"create_temp_directory_name target: {v1}"
let v3 : string = failwith<string> v2
v3
#endif
#if FABLE_COMPILER_RUST && WASM
let v4 : US0 = US0_2
let v5 : US1 = US1_1(v4)
let v6 : string = $"create_temp_directory_name target: {v5}"
let v7 : string = failwith<string> v6
v7
#endif
#if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM
let v8 : string = System.Reflection.Assembly.GetEntryAssembly()...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !WASM && !FABLE_COMPILER
module Date_time =
let new_guid_from_date_time x =
#if !INTERACTIVE
Date_time.new_guid_from_date_time x
#else
new_guid_from_date_time x
#endif
#endif
module Sm =
let concat x =
#if !INTERACTIVE
Sm.concat x
#else
concat x
#endif
let contains x =
#if !INTERACTIVE
Sm.contains x
#else
contains x
#endif
let ellipsis x =
#if !INTERACTIVE
Sm.ellipsis x
#else
ellipsis x
#endif
let ellipsis_end x =
#if !INTERACTIVE
Sm.ellipsis_end x
#else
ellipsis_end x
#endif
let ends_with x =
#if !INTERACTIVE
Sm.ends_with x
#else
ends_with x
#endif
let format_exception x =
#if !INTERACTIVE
Sm.format_...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Common =
#if !INTERACTIVE
open Lib
#endif
let nl = System.Environment.NewLine
let q = @""""
let inline cons head tail = head :: tail
/// ## memoize
let inline memoize fn =
let result = lazy fn ()
fun () -> result.Value
/// ## TraceLevel
type TraceLevel =
| Verbose
| Debug
| Info
| Warning
| Critical
let inline getLocals () = ""
let mutable traceEnabled = true
let mutable traceCount = 0
let mutable traceLevel = Verbose
let mutable traceDump = false
let testTraceLevel level =
traceEnabled && level >= traceLevel
/// ## traceRaw
let rec traceRaw level fn =
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module CommonFSharp =
open Common
/// ## getUnionCaseName
let inline getUnionCaseName<'T> (x: 'T) =
match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
| case, _ -> case.Name
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Async =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## choice
let inline choice asyncs = async {
let e = Event<_> ()
use cts = new System.Threading.CancellationTokenSource ()
let fn =
asyncs
|> Seq.map (fun a -> async {
let! x = a
e.Trigger x
})
|> Async.Parallel
|> Async.Ignore
Async.Start (fn, cts.Token)
let! result = Async.AwaitEvent e.Publish
cts.Cancel ()
return result
}
/// ## map
let inline map fn a = async {
let! x = a
return fn x
}
/// ## catch
let inline catch a =
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module AsyncSeq =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## subscribeEvent
let inline subscribeEvent (event: IEvent<'H, 'A>) map =
let observable = System.Reactive.Linq.Observable.FromEventPattern<'H,
'A>(event.AddHandler, event.RemoveHandler)
System.Reactive.Linq.Observable.Select (observable, fun event -> map
event.EventArgs)
|> FSharp.Control.AsyncSeq.ofObservableBuffered
let subscribeToken (token : System.Threading.CancellationToken) =
let tcs = new System.Threading.Tasks.TaskCompletionSource ()
System.Action tcs.SetResult |> token.Register |> ignore
let start = System.DateTime.Now.Ticks
FSharp.Control.A...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Runtime =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## isWindows
let isWindows =
fun () ->
System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
System.Runtime.InteropServices.OSPlatform.Windows
|> memoize
/// ## getExecutableSuffix
let inline getExecutableSuffix () =
if isWindows ()
then ".exe"
else ""
/// ## splitCommand
type private CommandParseStep =
| Start
| Path of quoted: bool
| Arguments
let splitCommand (command: string) =
let rec loop (path, args) chars step =
match chars, step with
| ('"' | '\'') ...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module FileSystem =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## Operators
module Operators =
let inline (</>) a b =
System.IO.Path.Combine (a, b)
open Operators
/// ## createTempDirectory
let inline createTempDirectory () =
let tempFolder = File_system.create_temp_directory_name ()
let result = System.IO.Directory.CreateDirectory tempFolder
if not result.Exists then
let getLocals () =
$"tempFolder: {tempFolder} / result: {({|
Exists = result.Exists
CreationTime = result.CreationTime
|})} {getLocals ()}"
trace Debug ...
── fsharp ──────────────────────────────────────────────────────────────────────
#if !INTERACTIVE
open Lib
#endif
── fsharp ──────────────────────────────────────────────────────────────────────
open Common
open FParsec
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## escapeCell (test) │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let inline escapeCell input =
input
|> Sm.split "\n"
|> Array.map (function
| line when line |> Sm.starts_with "\\#!" || line |> Sm.starts_with
"\\#r" ->
System.Text.RegularExpressions.Regex.Replace (line, "^\\\\#", "#")
| line -> line
)
|> Sm.concat "\n"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
$"a{nl}\\#!magic{nl}b{nl}"
|> escapeCell
|> _assertEqual (
$"a{nl}#!magic{nl}b{nl}"
)
╭─[ 53.37ms - stdout ]─────────────────────────────────────────────────────────╮
│ a │
│ #!magic │
│ b │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## magicMarker │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let magicMarker : Parser<string, unit> = pstring "#!"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"#!magic"
|> run magicMarker
|> _assertEqual (
Success ("#!", (), Position ("", 2, 1, 3))
)
╭─[ 54.92ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item1: #! │
│ Item2: <null> │
│ Item3: Position │
│ Index: 2 │
│ Line: 1 │
│ Column: 3 │
│ StreamName: │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"##!magic"
|> run magicMarker
|> _assertEqual (
Failure (
$"Error in Ln: 1 Col: 1{nl}##!magic{nl}^{nl}Expecting: '#!'{nl}",
ParserError (
Position ("", 0, 1, 1),
(),
ErrorMessageList (ExpectedString "#!")
),
()
)
)
╭─[ 52.27ms - stdout ]─────────────────────────────────────────────────────────╮
│ Failure │
│ Item1: Error in Ln: 1 Col: 1 │
│ ##!magic │
│ ^ │
│ Expecting: '#!' │
│ │
│ Item2: ParserError │
│ Position: Position │
│ Index: 0 │
│ Line: 1 │
│ Column: 1 │
│ StreamName: │
│ UserState: <null> │
│ Messages: ErrorMessageList │
│ Head: ExpectedString │
│ String: #! │
│ Type: ExpectedString │
│ Tail: <null> │
│ Item3: <null> │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## magicCommand │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let magicCommand =
magicMarker
>>. manyTill anyChar newline
|>> (System.String.Concat >> Sm.trim)
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"#!magic
a"
|> run magicCommand
|> _assertEqual (
Success ("magic", (), Position ("", 8, 2, 1))
)
╭─[ 59.18ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item1: magic │
│ Item2: <null> │
│ Item3: Position │
│ Index: 8 │
│ Line: 2 │
│ Column: 1 │
│ StreamName: │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
" #!magic
a"
|> run magicCommand
|> _assertEqual (
Failure (
$"Error in Ln: 1 Col: 1{nl} #!magic{nl}^{nl}Expecting: '#!'{nl}",
ParserError (
Position ("", 0, 1, 1),
(),
ErrorMessageList (ExpectedString "#!")
),
()
)
)
╭─[ 44.20ms - stdout ]─────────────────────────────────────────────────────────╮
│ Failure │
│ Item1: Error in Ln: 1 Col: 1 │
│ #!magic │
│ ^ │
│ Expecting: '#!' │
│ │
│ Item2: ParserError │
│ Position: Position │
│ Index: 0 │
│ Line: 1 │
│ Column: 1 │
│ StreamName: │
│ UserState: <null> │
│ Messages: ErrorMessageList │
│ Head: ExpectedString │
│ String: #! │
│ Type: ExpectedString │
│ Tail: <null> │
│ Item3: <null> │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## content │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let content =
(newline >>. magicMarker) <|> (eof >>. preturn "")
|> attempt
|> lookAhead
|> manyTill anyChar
|>> (System.String.Concat >> Sm.trim)
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"#!magic
a
"
|> run content
|> _assertEqual (
Success ("#!magic
a", (), Position ("", 14, 7, 1))
)
╭─[ 38.27ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item1: #!magic │
│ │
│ │
│ a │
│ Item2: <null> │
│ Item3: Position │
│ Index: 14 │
│ Line: 7 │
│ Column: 1 │
│ StreamName: │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## Block │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
type Block =
{
magic : string
content : string
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## block │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let block =
pipe2
magicCommand
content
(fun magic content ->
{
magic = magic
content = content
})
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"#!magic
a
"
|> run block
|> _assertEqual (
Success (
{ magic = "magic"; content = "a" },
(),
Position ("", 14, 7, 1)
)
)
╭─[ 43.19ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item1: Block │
│ magic: magic │
│ content: a │
│ Item2: <null> │
│ Item3: Position │
│ Index: 14 │
│ Line: 7 │
│ Column: 1 │
│ StreamName: │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## blocks │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let blocks =
skipMany newline
>>. sepEndBy block (skipMany1 newline)
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"#!magic1
a
\#!magic2
b
"
|> escapeCell
|> run blocks
|> _assertEqual (
Success (
[[
{ magic = "magic1"; content = "a" }
{ magic = "magic2"; content = "b" }
]],
(),
Position ("", 26, 9, 1)
)
)
╭─[ 49.27ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item1: FSharpList<Block> │
│ - magic: magic1 │
│ content: a │
│ - magic: magic2 │
│ content: b │
│ Item2: <null> │
│ Item3: Position │
│ Index: 26 │
│ Line: 9 │
│ Column: 1 │
│ StreamName: │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## Output │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
type Output =
| Fs
| Md
| Spi
| Spir
let inline kernelOutputs magic =
match magic with
| "fsharp" -> [[ Fs ]]
| "markdown" -> [[ Md ]]
| "spiral" -> [[ Spi; Spir ]]
| _ -> [[]]
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## formatBlock │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline formatBlock output (block : Block) =
match output, block with
| output, { magic = "markdown"; content = content } ->
let markdownComment =
match output with
| Spi | Spir -> "// // "
| Fs -> "/// "
| _ -> ""
content
|> Sm.split "\n"
|> Array.map (Sm.trim_end [[||]])
|> Array.filter (Sm.ends_with " (test)" >> not)
|> Array.map (function
| "" -> markdownComment |> Sm.trim
| line -> System.Text.RegularExpressions.Regex.Replace (line,
"^\\s*", $"$&{markdownComment}")
)
|> Sm.concat "\n"
| Fs, { magic = "fsharp"; content = content } ->
let trimmedContent = content |> Sm.trim
if trimmedContent |> Sm.starts_with "//// test" || trimmedContent |>
Sm.starts_with "//// ignore"
then ""
else
content
|> Sm.split "\n"
|> Array.filter (Sm.trim_start [[||]] >> Sm.starts_with "#r" >> not)
|> Sm.concat "\n"
| (Spi | Spir), { magic = "spiral"; content = content } ->
let trimmedContent = content |> Sm.trim
if trimmedContent |> Sm.starts_with "// // test" || trimmedContent |>
Sm.starts_with "// // ignore"
then ""
else content
| _ -> ""
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"#!markdown
a
b
c
\#!markdown
c
\#!fsharp
let a = 1"
|> escapeCell
|> run block
|> function
| Success (block, _, _) -> formatBlock Fs block
| Failure (msg, _, _) -> failwith msg
|> _assertEqual "/// a
///
/// b
///
/// c"
╭─[ 56.89ms - stdout ]─────────────────────────────────────────────────────────╮
│ /// a │
│ /// │
│ /// b │
│ /// │
│ /// c │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## formatBlocks │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline formatBlocks output blocks =
blocks
|> List.map (formatBlock output)
|> List.filter ((<>) "")
|> Sm.concat "\n\n"
|> fun s -> s + "\n"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"#!markdown
a
b
\#!markdown
c
\#!fsharp
let a = 1
\#!markdown
d (test)
\#!fsharp
//// test
let a = 2
\#!markdown
e
\#!fsharp
let a = 3"
|> escapeCell
|> run blocks
|> function
| Success (blocks, _, _) -> formatBlocks Fs blocks
| Failure (msg, _, _) -> failwith msg
|> _assertEqual "/// a
///
/// b
/// c
let a = 1
/// e
let a = 3
"
╭─[ 59.47ms - stdout ]─────────────────────────────────────────────────────────╮
│ /// a │
│ /// │
│ /// b │
│ │
│ /// c │
│ │
│ let a = 1 │
│ │
│ /// e │
│ │
│ let a = 3 │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## parse │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline parse output input =
match run blocks input with
| Success (blocks, _, _) ->
let blocks =
blocks
|> List.filter (fun block ->
block.magic |> kernelOutputs |> List.contains output ||
block.magic = "markdown"
)
match blocks with
| { magic = "markdown"; content = content } :: _
when output = Fs
&& content |> Sm.starts_with "# "
&& content |> Sm.ends_with ")"
->
let inline indentBlock (block : Block) =
{ block with
content =
block.content
|> Sm.split "\n"
|> Array.fold
(fun (lines, isMultiline) line ->
let trimmedLine = line |> Sm.trim
if trimmedLine = ""
then "" :: lines, isMultiline
else
let inline singleQuoteLine () =
trimmedLine |> Seq.sumBy ((=) '"' >>
System.Convert.ToInt32) = 1
&& trimmedLine |> Sm.contains @"'""'" |>
not
&& trimmedLine |> Sm.ends_with "{" |>
not
&& trimmedLine |> Sm.ends_with "{|" |>
not
&& trimmedLine |> Sm.starts_with "}" |>
not
&& trimmedLine |> Sm.starts_with "|}" |>
not
match isMultiline, trimmedLine |>
Sm.split_string [[| $"{q}{q}{q}" |]] with
| false, [[| _; _ |]] ->
$" {line}" :: lines, true
| true, [[| _; _ |]] ->
line :: lines, false
| false, _ when singleQuoteLine () ->
$" {line}" :: lines, true
| false, _ when line |> Sm.starts_with "#"
&& block.magic = "fsharp" ->
line :: lines, false
| false, _ ->
$" {line}" :: lines, false
| true, _ when singleQuoteLine () && line |>
Sm.starts_with " " ->
$" {line}" :: lines, false
| true, _ when singleQuoteLine () ->
line :: lines, false
| true, _ ->
line :: lines, true
)
([[]], false)
|> fst
|> List.rev
|> Sm.concat "\n"
}
let moduleName, namespaceName =
System.Text.RegularExpressions.Regex.Match (content, @"# (.*)
\((.*)\)$")
|> fun m -> m.Groups.[[1]].Value, m.Groups.[[2]].Value
let moduleBlock =
{
magic = "fsharp"
content =
$"#if !INTERACTIVE
namespace {namespaceName}
#endif
module {moduleName} ="
}
blocks
|> List.indexed
|> List.fold
(fun blocks (index, block) ->
match index with
| 0 -> blocks
| 1 -> indentBlock block :: moduleBlock :: blocks
| _ -> indentBlock block :: blocks
)
[[]]
|> List.rev
| _ -> blocks
|> Result.Ok
| Failure (errorMsg, _, _) -> Result.Error errorMsg
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let example1 =
$"""#!meta
{{"kernelInfo":{{"defaultKernelName":"fsharp","items":[[{{"aliases":[[]],"name":
"fsharp"}},{{"aliases":[[]],"name":"fsharp"}}]]}}}}
\#!markdown
# TestModule (TestNamespace)
\#!fsharp
\#!import file.dib
\#!fsharp
\#r "nuget:Expecto"
\#!markdown
## ParserLibrary
\#!fsharp
open System
\#!markdown
## x (test)
\#!fsharp
//// ignore
let x = 1
\#!spiral
// // test
inl x = 0i32
\#!spiral
inl x = 0i32
\#!markdown
### TextInput
\#!fsharp
let str1 = "abc
def"
let str2 =
"abc\
def"
let str3 =
$"1{{
1
}}1"
let str4 =
$"1{{({{|
a = 1
|}}).a}}1"
let str5 =
"abc \
def"
let x =
match '"' with
| '"' -> true
| _ -> false
let long1 = {q}{q}{q}a{q}{q}{q}
let long2 =
{q}{q}{q}
a
{q}{q}{q}
\#!fsharp
type Position =
{{
#if INTERACTIVE
line : string
#else
line : int
#endif
column : int
}}"""
|> escapeCell
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
example1
|> parse Fs
|> Result.toOption
|> Option.get
|> (formatBlocks Fs)
|> _assertEqual $"""#if !INTERACTIVE
namespace TestNamespace
#endif
module TestModule =
/// ## ParserLibrary
open System
/// ### TextInput
let str1 = "abc
def"
let str2 =
"abc\
def"
let str3 =
$"1{{
1
}}1"
let str4 =
$"1{{({{|
a = 1
|}}).a}}1"
let str5 =
"abc \
def"
let x =
match '"' with
| '"' -> true
| _ -> false
let long1 = {q}{q}{q}a{q}{q}{q}
let long2 =
{q}{q}{q}
a
{q}{q}{q}
type Position =
{{
#if INTERACTIVE
line : string
#else
line : int
#endif
column : int
}}
"""
╭─[ 158.83ms - stdout ]────────────────────────────────────────────────────────╮
│ #if !INTERACTIVE │
│ namespace TestNamespace │
│ #endif │
│ │
│ module TestModule = │
│ │
│ /// ## ParserLibrary │
│ │
│ open System │
│ │
│ /// ### TextInput │
│ │
│ let str1 = "abc │
│ def" │
│ │
│ let str2 = │
│ "abc\ │
│ def" │
│ │
│ let str3 = │
│ $"1{ │
│ 1 │
│ }1" │
│ │
│ let str4 = │
│ $"1{({| │
│ a = 1 │
│ |}).a}1" │
│ │
│ let str5 = │
│ "abc \ │
│ def" │
│ │
│ let x = │
│ match '"' with │
│ | '"' -> true │
│ | _ -> false │
│ │
│ let long1 = """a""" │
│ │
│ let long2 = │
│ """ │
│ a │
│ """ │
│ │
│ type Position = │
│ { │
│ #if INTERACTIVE │
│ line : string │
│ #else │
│ line : int │
│ #endif │
│ column : int │
│ } │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
example1
|> parse Md
|> Result.toOption
|> Option.get
|> (formatBlocks Md)
|> _assertEqual "# TestModule (TestNamespace)
## ParserLibrary
### TextInput
"
╭─[ 146.17ms - stdout ]────────────────────────────────────────────────────────╮
│ # TestModule (TestNamespace) │
│ │
│ ## ParserLibrary │
│ │
│ ### TextInput │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
example1
|> parse Spi
|> Result.toOption
|> Option.get
|> (formatBlocks Spi)
|> _assertEqual "// // # TestModule (TestNamespace)
// // ## ParserLibrary
inl x = 0i32
// // ### TextInput
"
╭─[ 156.00ms - stdout ]────────────────────────────────────────────────────────╮
│ // // # TestModule (TestNamespace) │
│ │
│ // // ## ParserLibrary │
│ │
│ inl x = 0i32 │
│ │
│ // // ### TextInput │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## parseDibCode │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline parseDibCode output file = async {
let getLocals () = $"output: {output} / file: {file} / {getLocals ()}"
trace Debug (fun () -> "parseDibCode") getLocals
let! input = file |> FileSystem.readAllTextAsync
match parse output input with
| Result.Ok blocks -> return blocks |> formatBlocks output
| Result.Error msg -> return failwith msg
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## writeDibCode │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline writeDibCode output path = async {
let getLocals () = $"output: {output} / path: {path} / {getLocals ()}"
trace Debug (fun () -> "writeDibCode") getLocals
let! result = parseDibCode output path
let outputPath = path |> Sm.replace ".dib" $".{output |> string |>
Sm.to_lower}"
do! result |> FileSystem.writeAllTextAsync outputPath
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## Arguments │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
[[<RequireQualifiedAccess>]]
type Arguments =
| [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.Mandatory>]]
File of file : string * Output
interface Argu.IArgParserTemplate with
member s.Usage =
match s with
| File _ -> nameof File
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
Argu.ArgumentParser.Create<Arguments>().PrintUsage ()
╭─[ 98.85ms - return value ]───────────────────────────────────────────────────╮
│ USAGE: dotnet-repl [--help] <file> <fs|md|spi|spir> │
│ │
│ FILE: │
│ │
│ <file> <fs|md|spi|spir> │
│ File │
│ │
│ OPTIONS: │
│ │
│ --help display this list of options. │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## main │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let main args =
let argsMap = args |> Runtime.parseArgsMap<Arguments>
let files =
argsMap.[[nameof Arguments.File]]
|> List.map (function
| Arguments.File (path, output) -> path, output
)
files
|> List.map (fun (path, output) -> path |> writeDibCode output)
|> Async.Parallel
|> Async.Ignore
|> Async.runWithTimeout 30000
|> function
| Some () -> 0
| None -> 1
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let args =
System.Environment.GetEnvironmentVariable "ARGS"
|> Runtime.splitArgs
|> Seq.toArray
match args with
| [[||]] -> 0
| args -> if main args = 0 then 0 else failwith "main failed"
╭─[ 147.82ms - return value ]──────────────────────────────────────────────────╮
│ <div class="dni-plaintext"><pre>0</pre></div><style> │
│ .dni-code-hint { │
│ font-style: italic; │
│ overflow: hidden; │
│ white-space: nowrap; │
│ } │
│ .dni-treeview { │
│ white-space: nowrap; │
│ } │
│ .dni-treeview td { │
│ vertical-align: top; │
│ text-align: start; │
│ } │
│ details.dni-treeview { │
│ padding-left: 1em; │
│ } │
│ table td { │
│ text-align: start; │
│ } │
│ table tr { │
│ vertical-align: top; │
│ margin: 0em 0px; │
│ } │
│ table tr td pre │
│ { │
│ vertical-align: top !important; │
│ margin: 0em 0px !important; │
│ } │
│ table th { │
│ text-align: start; │
│ } │
│ </style> │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 164.84ms - stdout ]────────────────────────────────────────────────────────╮
│ 00:00:00 #1 [Debug] writeDibCode / output: Fs / path: Builder.dib │
│ 00:00:00 #2 [Debug] parseDibCode / output: Fs / file: Builder.dib │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # Builder (Polyglot) │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
spNetCore.Html.Abstractions.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
Formatter.ListExpansionLimit <- 100
── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
type AssertExceptionFormatter (ex) =
member _.Text =
ex.ToString()
.Replace("32m", "<span style=\"color: green;\">")
.Replace("36m", "</span>")
.Replace("31m", "<span style=\"color: red;\">")
.Replace("\n", "<br/>\n")
Formatter.Register<AssertExceptionFormatter> ((fun (x :
AssertExceptionFormatter) -> x.Text), "text/html")
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __expect fn log expected actual =
if log then printfn $"{actual.ToDisplayString ()}"
try
"Testing.__expect" |> fn actual expected
with :? Expecto.AssertException as ex ->
AssertExceptionFormatter(ex).Display () |> ignore
failwith (ex.GetType().FullName)
let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual
let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual
let inline __isGreaterThan log expected actual = __expect
Expecto.Expect.isGreaterThan log ex...
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __isBetween log a b actual =
let inline isBetween actual (a, b) _ =
__isGreaterThanOrEqual log a actual
__isLessThanOrEqual log b actual
__expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual
── fsharp ──────────────────────────────────────────────────────────────────────
#r
@"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
dard2.1/FSharp.Control.AsyncSeq.dll"
#r
@"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
0/System.Reactive.dll"
#r
@"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
netstandard2.0/System.Reactive.Linq.dll"
#r
@"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
#r
@"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
b/net6.0/System.CommandLine.dll"
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/sm.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/spiral/file_system.fsx
#!import ../../lib/spiral/lib.fsx
#!import ../../lib/fsharp/Common.fs
#!import ../../lib/fsharp/CommonFSharp.fs
#!import ../../lib/fsharp/Async.fs
#!import ../../lib/fsharp/AsyncSeq.fs
#!import ../../lib/fsharp/Networking.fs
#!import ../../lib/fsharp/Runtime.fs
#!import ../../lib/fsharp/FileSystem.fs
── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
| US0_0
| US0_1
and [[<Struct>]] US1 =
| US1_0
| US1_1 of f1_0 : US0
let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
v0
and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
let mutable result = None
#if FABLE_COMPILER_RUST && !WASM
let v1 : (unit -> unit) = method0(v0)
let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v1()" }
v2
#endif
#if FABLE_COMPILER_RUST && WASM
let v3 : (unit -> unit) = method0(v0)
let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v3()" }
v4
#endif
#if !FABLE_COMPILER && !F...
── fsharp - import ─────────────────────────────────────────────────────────────
type Mut0 = {mutable l0 : int32; mutable l1 : string}
and Mut1 = {mutable l0 : int32}
let rec closure1 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.Contains v0
v2
and closure0 () (v0 : string) : (string -> bool) =
closure1(v0)
and closure3 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.EndsWith v0
v2
and closure2 () (v0 : string) : (string -> bool) =
closure3(v0)
and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
let v3 : string = v2.PadLeft (v0, v1)
v3
and closure5 (v0 : int32) (v1 : char) : (string -> string) =
closure6(v0, v1)
and closure4 () (v0 : int32) : (char -> (string -> string)) =
closure5(v0)
and closure8 (v0 : int32) (v1 : string) : string =
let v2 : stri...
── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
let v2 : (System.Guid -> string) = _.ToString()
let v3 : string = v2 v0
let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
v5
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
let v3 : string = v2.Replace (v0, v1)
v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
closure3()
and closure2 (...
── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
| US0_0
| US0_1
| US0_2
and [[<Struct>]] US1 =
| US1_0 of f0_0 : US0
| US1_1 of f1_0 : US0
let rec closure0 () () : string =
let mutable result = None
#if FABLE_COMPILER_RUST && !WASM
let v0 : US0 = US0_1
let v1 : US1 = US1_1(v0)
let v2 : string = $"create_temp_directory_name target: {v1}"
let v3 : string = failwith<string> v2
v3
#endif
#if FABLE_COMPILER_RUST && WASM
let v4 : US0 = US0_2
let v5 : US1 = US1_1(v4)
let v6 : string = $"create_temp_directory_name target: {v5}"
let v7 : string = failwith<string> v6
v7
#endif
#if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM
let v8 : string = System.Reflection.Assembly.GetEntryAssembly()...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !WASM && !FABLE_COMPILER
module Date_time =
let new_guid_from_date_time x =
#if !INTERACTIVE
Date_time.new_guid_from_date_time x
#else
new_guid_from_date_time x
#endif
#endif
module Sm =
let concat x =
#if !INTERACTIVE
Sm.concat x
#else
concat x
#endif
let contains x =
#if !INTERACTIVE
Sm.contains x
#else
contains x
#endif
let ellipsis x =
#if !INTERACTIVE
Sm.ellipsis x
#else
ellipsis x
#endif
let ellipsis_end x =
#if !INTERACTIVE
Sm.ellipsis_end x
#else
ellipsis_end x
#endif
let ends_with x =
#if !INTERACTIVE
Sm.ends_with x
#else
ends_with x
#endif
let format_exception x =
#if !INTERACTIVE
Sm.format_...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Common =
#if !INTERACTIVE
open Lib
#endif
let nl = System.Environment.NewLine
let q = @""""
let inline cons head tail = head :: tail
/// ## memoize
let inline memoize fn =
let result = lazy fn ()
fun () -> result.Value
/// ## TraceLevel
type TraceLevel =
| Verbose
| Debug
| Info
| Warning
| Critical
let inline getLocals () = ""
let mutable traceEnabled = true
let mutable traceCount = 0
let mutable traceLevel = Verbose
let mutable traceDump = false
let testTraceLevel level =
traceEnabled && level >= traceLevel
/// ## traceRaw
let rec traceRaw level fn =
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module CommonFSharp =
open Common
/// ## getUnionCaseName
let inline getUnionCaseName<'T> (x: 'T) =
match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
| case, _ -> case.Name
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Async =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## choice
let inline choice asyncs = async {
let e = Event<_> ()
use cts = new System.Threading.CancellationTokenSource ()
let fn =
asyncs
|> Seq.map (fun a -> async {
let! x = a
e.Trigger x
})
|> Async.Parallel
|> Async.Ignore
Async.Start (fn, cts.Token)
let! result = Async.AwaitEvent e.Publish
cts.Cancel ()
return result
}
/// ## map
let inline map fn a = async {
let! x = a
return fn x
}
/// ## catch
let inline catch a =
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module AsyncSeq =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## subscribeEvent
let inline subscribeEvent (event: IEvent<'H, 'A>) map =
let observable = System.Reactive.Linq.Observable.FromEventPattern<'H,
'A>(event.AddHandler, event.RemoveHandler)
System.Reactive.Linq.Observable.Select (observable, fun event -> map
event.EventArgs)
|> FSharp.Control.AsyncSeq.ofObservableBuffered
let subscribeToken (token : System.Threading.CancellationToken) =
let tcs = new System.Threading.Tasks.TaskCompletionSource ()
System.Action tcs.SetResult |> token.Register |> ignore
let start = System.DateTime.Now.Ticks
FSharp.Control.A...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Networking =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## testPortOpen
let inline testPortOpen port = async {
let! ct = Async.CancellationToken
use client = new System.Net.Sockets.TcpClient ()
try
do! client.ConnectAsync ("127.0.0.1", port, ct) |>
Async.awaitValueTaskUnit
return true
with ex ->
trace Verbose (fun () -> $"testPortOpen / ex: {ex |>
Sm.format_exception}") getLocals
return false
}
let inline testPortOpenTimeout timeout port = async {
let! result =
testPortOpen port
|> Async.runWithTimeoutAsync timeout
return
matc...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Runtime =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## isWindows
let isWindows =
fun () ->
System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
System.Runtime.InteropServices.OSPlatform.Windows
|> memoize
/// ## getExecutableSuffix
let inline getExecutableSuffix () =
if isWindows ()
then ".exe"
else ""
/// ## splitCommand
type private CommandParseStep =
| Start
| Path of quoted: bool
| Arguments
let splitCommand (command: string) =
let rec loop (path, args) chars step =
match chars, step with
| ('"' | '\'') ...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module FileSystem =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## Operators
module Operators =
let inline (</>) a b =
System.IO.Path.Combine (a, b)
open Operators
/// ## createTempDirectory
let inline createTempDirectory () =
let tempFolder = File_system.create_temp_directory_name ()
let result = System.IO.Directory.CreateDirectory tempFolder
if not result.Exists then
let getLocals () =
$"tempFolder: {tempFolder} / result: {({|
Exists = result.Exists
CreationTime = result.CreationTime
|})} {getLocals ()}"
trace Debug ...
── fsharp ──────────────────────────────────────────────────────────────────────
#if !INTERACTIVE
open Lib
#endif
── fsharp ──────────────────────────────────────────────────────────────────────
open Common
open FileSystem.Operators
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## buildProject │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline buildProject runtime outputDir path = async {
let fullPath = path |> System.IO.Path.GetFullPath
let fileDir = fullPath |> System.IO.Path.GetDirectoryName
let extension = fullPath |> System.IO.Path.GetExtension
let getLocals () = $"fullPath: {fullPath} / {getLocals ()}"
trace Debug (fun () -> "buildProject") getLocals
match extension with
| ".fsproj" -> ()
| _ -> failwith "Invalid project file"
let runtimes =
runtime
|> Option.map List.singleton
|> Option.defaultValue [[ "linux-x64"; "win-x64" ]]
let outputDir = outputDir |> Option.defaultValue "dist"
return!
runtimes
|> List.map (fun runtime -> async {
let! exitCode, _result =
Runtime.executeWithOptionsAsync
{
Command = $@"dotnet publish ""{path}"" --configuration
Release --output ""{outputDir}"" --runtime {runtime}"
CancellationToken = None
OnLine = None
WorkingDirectory = Some fileDir
}
return exitCode
})
|> Async.Sequential
|> Async.map Array.sum
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## persistCodeProject │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline persistCodeProject packages modules name code = async {
let getLocals () = $"packages: {packages} / modules: {modules} / name:
{name} / code.Length: {code |> String.length} / {getLocals ()}"
trace Debug (fun () -> "persistCodeProject") getLocals
let repositoryRoot = FileSystem.getSourceDirectory () |>
FileSystem.findParent ".paket" false
let targetDir = repositoryRoot </> "target/polyglot/builder" </> name
System.IO.Directory.CreateDirectory targetDir |> ignore
let filePath = targetDir </> $"{name}.fs" |> System.IO.Path.GetFullPath
do! code |> FileSystem.writeAllTextExists filePath
let modulesCode =
modules
|> List.map (fun path -> $"""<Compile Include="{repositoryRoot </>
path}" />""")
|> Sm.concat "\n "
let fsprojPath = targetDir </> $"{name}.fsproj"
let fsprojCode = $"""<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<LangVersion>preview</LangVersion>
<RollForward>Major</RollForward>
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
<PublishAot>false</PublishAot>
<PublishTrimmed>false</PublishTrimmed>
<PublishSingleFile>true</PublishSingleFile>
<SelfContained>true</SelfContained>
<Version>0.0.1-alpha.1</Version>
<OutputType>Exe</OutputType>
</PropertyGroup>
<ItemGroup>
{modulesCode}
<Compile Include="{filePath}" />
</ItemGroup>
<Import Project="{repositoryRoot}/.paket/Paket.Restore.targets" />
</Project>
"""
do! fsprojCode |> FileSystem.writeAllTextExists fsprojPath
let paketReferencesPath = targetDir </> "paket.references"
let paketReferencesCode =
"FSharp.Core" :: packages
|> Sm.concat "\n"
do! paketReferencesCode |> FileSystem.writeAllTextExists paketReferencesPath
return fsprojPath
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## buildCode │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline buildCode runtime packages modules outputDir name code = async {
let! fsprojPath = code |> persistCodeProject packages modules name
return! fsprojPath |> buildProject runtime outputDir
}
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"1 + 1 |> ignore"
|> buildCode None [[]] [[]] None "test1"
|> Async.runWithTimeout 180000
|> _assertEqual (Some 0)
╭─[ 25.99s - stdout ]──────────────────────────────────────────────────────────╮
│ 00:00:00 #1 [Debug] persistCodeProject / packages: [] / modules: [] / name: │
│ test1 / code.Length: 15 │
│ 00:00:00 #2 [Debug] buildProject / fullPath: │
│ C:\home\git\polyglot\target\polyglot\builder\test1\test1.fsproj │
│ 00:00:00 #3 [Debug] executeAsync / options: { Command = │
│ "dotnet publish │
│ "C:\home\git\polyglot\target/polyglot/builder\test1\test1.fsproj" │
│ --configuration Release --output "dist" --runtime linux-x64" │
│ WorkingDirectory = Some │
│ "C:\home\git\polyglot\target\polyglot\builder\test1" │
│ CancellationToken = None │
│ OnLine = None } │
│ 00:00:00 #4 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f │
│ for .NET │
│ 00:00:01 #5 [Verbose] > Determining projects to restore... │
│ 00:00:08 #6 [Verbose] > Restored │
│ C:\home\git\polyglot\target\polyglot\builder\test1\test1.fsproj (in 6.75 │
│ sec). │
│ 00:00:08 #7 [Verbose] > │
│ C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.2 │
│ 4101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInferen │
│ ce.targets(313,5): message NETSDK1057: You are using a preview version of │
│ .NET. See: https://aka.ms/dotnet-support-policy [ │
│ C:\home\git\polyglot\target\polyglot\builder\test1\test1.fsproj] │
│ 00:00:11 #8 [Verbose] > │
│ C:\home\git\polyglot\target\polyglot\builder\test1\test1.fs(1,16): warning │
│ FS0988: Main module of program is empty: nothing will happen when it is run │
│ [C:\home\git\polyglot\target\polyglot\builder\test1\test1.fsproj] │
│ 00:00:12 #9 [Verbose] > test1 -> │
│ C:\home\git\polyglot\target\polyglot\builder\test1\bin\Release\net9.0\linux- │
│ x64\test1.dll │
│ 00:00:13 #10 [Verbose] > test1 -> │
│ C:\home\git\polyglot\target\polyglot\builder\test1\dist\ │
│ 00:00:14 #11 [Debug] executeAsync / exitCode: 0 / output.Length: 912 │
│ 00:00:14 #12 [Debug] executeAsync / options: { Command = │
│ "dotnet publish │
│ "C:\home\git\polyglot\target/polyglot/builder\test1\test1.fsproj" │
│ --configuration Release --output "dist" --runtime win-x64" │
│ WorkingDirectory = Some │
│ "C:\home\git\polyglot\target\polyglot\builder\test1" │
│ CancellationToken = None │
│ OnLine = None } │
│ 00:00:14 #13 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f │
│ for .NET │
│ 00:00:14 #14 [Verbose] > Determining projects to restore... │
│ 00:00:15 #15 [Verbose] > Restored │
│ C:\home\git\polyglot\target\polyglot\builder\test1\test1.fsproj (in 333 ms). │
│ 00:00:15 #16 [Verbose] > │
│ C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.2 │
│ 4101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInferen │
│ ce.targets(313,5): message NETSDK1057: You are using a preview version of │
│ .NET. See: https://aka.ms/dotnet-support-policy [ │
│ C:\home\git\polyglot\target\polyglot\builder\test1\test1.fsproj] │
│ 00:00:17 #17 [Verbose] > │
│ C:\home\git\polyglot\target\polyglot\builder\test1\test1.fs(1,16): warning │
│ FS0988: Main module of program is empty: nothing will happen when it is run │
│ [C:\home\git\polyglot\target\polyglot\builder\test1\test1.fsproj] │
│ 00:00:18 #18 [Verbose] > test1 -> │
│ C:\home\git\polyglot\target\polyglot\builder\test1\bin\Release\net9.0\win-x6 │
│ 4\test1.dll │
│ 00:00:25 #19 [Verbose] > test1 -> │
│ C:\home\git\polyglot\target\polyglot\builder\test1\dist\ │
│ 00:00:25 #20 [Debug] executeAsync / exitCode: 0 / output.Length: 908 │
│ FSharpOption<Int32> │
│ Value: 0 │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"1 + a |> ignore"
|> buildCode None [[]] [[]] None "test2"
|> Async.runWithTimeout 180000
|> _assertEqual (Some 2)
╭─[ 7.43s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:25 #21 [Debug] persistCodeProject / packages: [] / modules: [] / name: │
│ test2 / code.Length: 15 │
│ 00:00:26 #22 [Debug] buildProject / fullPath: │
│ C:\home\git\polyglot\target\polyglot\builder\test2\test2.fsproj │
│ 00:00:26 #23 [Debug] executeAsync / options: { Command = │
│ "dotnet publish │
│ "C:\home\git\polyglot\target/polyglot/builder\test2\test2.fsproj" │
│ --configuration Release --output "dist" --runtime linux-x64" │
│ WorkingDirectory = Some │
│ "C:\home\git\polyglot\target\polyglot\builder\test2" │
│ CancellationToken = None │
│ OnLine = None } │
│ 00:00:26 #24 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f │
│ for .NET │
│ 00:00:26 #25 [Verbose] > Determining projects to restore... │
│ 00:00:27 #26 [Verbose] > Restored │
│ C:\home\git\polyglot\target\polyglot\builder\test2\test2.fsproj (in 377 ms). │
│ 00:00:27 #27 [Verbose] > │
│ C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.2 │
│ 4101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInferen │
│ ce.targets(313,5): message NETSDK1057: You are using a preview version of │
│ .NET. See: https://aka.ms/dotnet-support-policy [ │
│ C:\home\git\polyglot\target\polyglot\builder\test2\test2.fsproj] │
│ 00:00:29 #28 [Verbose] > │
│ C:\home\git\polyglot\target\polyglot\builder\test2\test2.fs(1,5): error │
│ FS0039: The value or constructor 'a' is not defined. [ │
│ C:\home\git\polyglot\target\polyglot\builder\test2\test2.fsproj] │
│ 00:00:29 #29 [Debug] executeAsync / exitCode: 1 / output.Length: 715 │
│ 00:00:29 #30 [Debug] executeAsync / options: { Command = │
│ "dotnet publish │
│ "C:\home\git\polyglot\target/polyglot/builder\test2\test2.fsproj" │
│ --configuration Release --output "dist" --runtime win-x64" │
│ WorkingDirectory = Some │
│ "C:\home\git\polyglot\target\polyglot\builder\test2" │
│ CancellationToken = None │
│ OnLine = None } │
│ 00:00:29 #31 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f │
│ for .NET │
│ 00:00:30 #32 [Verbose] > Determining projects to restore... │
│ 00:00:30 #33 [Verbose] > Restored │
│ C:\home\git\polyglot\target\polyglot\builder\test2\test2.fsproj (in 309 ms). │
│ 00:00:31 #34 [Verbose] > │
│ C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.2 │
│ 4101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInferen │
│ ce.targets(313,5): message NETSDK1057: You are using a preview version of │
│ .NET. See: https://aka.ms/dotnet-support-policy [ │
│ C:\home\git\polyglot\target\polyglot\builder\test2\test2.fsproj] │
│ 00:00:32 #35 [Verbose] > │
│ C:\home\git\polyglot\target\polyglot\builder\test2\test2.fs(1,5): error │
│ FS0039: The value or constructor 'a' is not defined. [ │
│ C:\home\git\polyglot\target\polyglot\builder\test2\test2.fsproj] │
│ 00:00:32 #36 [Debug] executeAsync / exitCode: 1 / output.Length: 715 │
│ FSharpOption<Int32> │
│ Value: 2 │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## readFile │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline readFile path = async {
let! code = path |> FileSystem.readAllTextAsync
let code = System.Text.RegularExpressions.Regex.Replace (
code,
@"( *)(let\s+main\s+.*?\s*=)",
fun m -> m.Groups.[[1]].Value + "[[<EntryPoint>]]\n" +
m.Groups.[[1]].Value + m.Groups.[[2]].Value
)
let codeTrim = code |> Sm.trim_end [[||]]
return
if codeTrim |> Sm.ends_with "\n()"
then codeTrim |> Sm.slice 0 ((codeTrim |> String.length) - 3)
else code
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## buildFile │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline buildFile runtime packages modules path = async {
let fullPath = path |> System.IO.Path.GetFullPath
let dir = fullPath |> System.IO.Path.GetDirectoryName
let name = fullPath |> System.IO.Path.GetFileNameWithoutExtension
let! code = fullPath |> readFile
return! code |> buildCode runtime packages modules (dir </> "dist" |> Some)
name
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## persistFile │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline persistFile packages modules path = async {
let fullPath = path |> System.IO.Path.GetFullPath
let name = fullPath |> System.IO.Path.GetFileNameWithoutExtension
let! code = fullPath |> readFile
return! code |> persistCodeProject packages modules name
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## Arguments │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
[[<RequireQualifiedAccess>]]
type Arguments =
| [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.ExactlyOnce>]]
Path of path : string
| [[<Argu.ArguAttributes.Unique>]] Packages of packages : string list
| [[<Argu.ArguAttributes.Unique>]] Modules of modules : string list
| [[<Argu.ArguAttributes.Unique>]] Runtime of runtime : string
| [[<Argu.ArguAttributes.Unique>]] Persist_Only
interface Argu.IArgParserTemplate with
member s.Usage =
match s with
| Path _ -> nameof Path
| Packages _ -> nameof Packages
| Modules _ -> nameof Modules
| Runtime _ -> nameof Runtime
| Persist_Only -> nameof Persist_Only
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
Argu.ArgumentParser.Create<Arguments>().PrintUsage ()
╭─[ 110.45ms - return value ]──────────────────────────────────────────────────╮
│ USAGE: dotnet-repl [--help] [--packages [<packages>...]] │
│ [--modules [<modules>...]] [--runtime <runtime>] │
│ [--persist-only] <path> │
│ │
│ PATH: │
│ │
│ <path> Path │
│ │
│ OPTIONS: │
│ │
│ --packages [<packages>...] │
│ Packages │
│ --modules [<modules>...] │
│ Modules │
│ --runtime <runtime> Runtime │
│ --persist-only Persist_Only │
│ --help display this list of options. │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## main │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let main args =
let argsMap = args |> Runtime.parseArgsMap<Arguments>
let path =
match argsMap.[[nameof Arguments.Path]] with
| [[ Arguments.Path path ]] -> Some path
| _ -> None
|> Option.get
let packages =
match argsMap |> Map.tryFind (nameof Arguments.Packages) with
| Some [[ Arguments.Packages packages ]] -> packages
| _ -> [[]]
let modules =
match argsMap |> Map.tryFind (nameof Arguments.Modules) with
| Some [[ Arguments.Modules modules ]] -> modules
| _ -> [[]]
let runtime =
match argsMap |> Map.tryFind (nameof Arguments.Runtime) with
| Some [[ Arguments.Runtime runtime ]] -> Some runtime
| _ -> None
let persistOnly = argsMap |> Map.containsKey (nameof Arguments.Persist_Only)
if persistOnly
then path |> persistFile packages modules |> Async.map (fun _ -> 0)
else path |> buildFile runtime packages modules
|> Async.runWithTimeout (60000 * 60)
|> function
| Some exitCode -> exitCode
| None -> 1
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let args =
System.Environment.GetEnvironmentVariable "ARGS"
|> Runtime.splitArgs
|> Seq.toArray
match args with
| [[||]] -> 0
| args -> if main args = 0 then 0 else failwith "main failed"
╭─[ 22.67s - return value ]────────────────────────────────────────────────────╮
│ <div class="dni-plaintext"><pre>0</pre></div><style> │
│ .dni-code-hint { │
│ font-style: italic; │
│ overflow: hidden; │
│ white-space: nowrap; │
│ } │
│ .dni-treeview { │
│ white-space: nowrap; │
│ } │
│ .dni-treeview td { │
│ vertical-align: top; │
│ text-align: start; │
│ } │
│ details.dni-treeview { │
│ padding-left: 1em; │
│ } │
│ table td { │
│ text-align: start; │
│ } │
│ table tr { │
│ vertical-align: top; │
│ margin: 0em 0px; │
│ } │
│ table tr td pre │
│ { │
│ vertical-align: top !important; │
│ margin: 0em 0px !important; │
│ } │
│ table th { │
│ text-align: start; │
│ } │
│ </style> │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 22.68s - stdout ]──────────────────────────────────────────────────────────╮
│ 00:00:34 #37 [Debug] persistCodeProject / packages: [Argu; │
│ FSharp.Control.AsyncSeq; System.CommandLine; ... ] / modules: [ │
│ lib/spiral/common.fsx; lib/spiral/sm.fsx; lib/spiral/date_time.fsx; ... ] / │
│ name: Builder / code.Length: 7102 │
│ 00:00:34 #38 [Debug] buildProject / fullPath: │
│ C:\home\git\polyglot\target\polyglot\builder\Builder\Builder.fsproj │
│ 00:00:34 #39 [Debug] executeAsync / options: { Command = │
│ "dotnet publish │
│ "C:\home\git\polyglot\target/polyglot/builder\Builder\Builder.fsproj" │
│ --configuration Release --output "C:\home\git\polyglot\apps\builder\dist" │
│ --runtime linux-x64" │
│ WorkingDirectory = Some │
│ "C:\home\git\polyglot\target\polyglot\builder\Builder" │
│ CancellationToken = None │
│ OnLine = None } │
│ 00:00:35 #40 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f │
│ for .NET │
│ 00:00:35 #41 [Verbose] > Determining projects to restore... │
│ 00:00:36 #42 [Verbose] > Restored │
│ C:\home\git\polyglot\target\polyglot\builder\Builder\Builder.fsproj (in 526 │
│ ms). │
│ 00:00:36 #43 [Verbose] > │
│ C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.2 │
│ 4101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInferen │
│ ce.targets(313,5): message NETSDK1057: You are using a preview version of │
│ .NET. See: https://aka.ms/dotnet-support-policy [ │
│ C:\home\git\polyglot\target\polyglot\builder\Builder\Builder.fsproj] │
│ 00:00:44 #44 [Verbose] > Builder -> │
│ C:\home\git\polyglot\target\polyglot\builder\Builder\bin\Release\net9.0\linu │
│ x-x64\Builder.dll │
│ 00:00:45 #45 [Verbose] > Builder -> │
│ C:\home\git\polyglot\apps\builder\dist\ │
│ 00:00:45 #46 [Debug] executeAsync / exitCode: 0 / output.Length: 692 │
│ 00:00:45 #47 [Debug] executeAsync / options: { Command = │
│ "dotnet publish │
│ "C:\home\git\polyglot\target/polyglot/builder\Builder\Builder.fsproj" │
│ --configuration Release --output "C:\home\git\polyglot\apps\builder\dist" │
│ --runtime win-x64" │
│ WorkingDirectory = Some │
│ "C:\home\git\polyglot\target\polyglot\builder\Builder" │
│ CancellationToken = None │
│ OnLine = None } │
│ 00:00:46 #48 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f │
│ for .NET │
│ 00:00:46 #49 [Verbose] > Determining projects to restore... │
│ 00:00:47 #50 [Verbose] > Restored │
│ C:\home\git\polyglot\target\polyglot\builder\Builder\Builder.fsproj (in 419 │
│ ms). │
│ 00:00:47 #51 [Verbose] > │
│ C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.2 │
│ 4101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInferen │
│ ce.targets(313,5): message NETSDK1057: You are using a preview version of │
│ .NET. See: https://aka.ms/dotnet-support-policy [ │
│ C:\home\git\polyglot\target\polyglot\builder\Builder\Builder.fsproj] │
│ 00:00:53 #52 [Verbose] > Builder -> │
│ C:\home\git\polyglot\target\polyglot\builder\Builder\bin\Release\net9.0\win- │
│ x64\Builder.dll │
│ 00:00:57 #53 [Verbose] > Builder -> │
│ C:\home\git\polyglot\apps\builder\dist\ │
│ 00:00:57 #54 [Debug] executeAsync / exitCode: 0 / output.Length: 690 │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
[NbConvertApp] Converting notebook Builder.dib.ipynb to html
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
validate(nb)
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
return _pygments_highlight(
[NbConvertApp] Writing 328566 bytes to Builder.dib.html
In [ ]:
{ . "$ScriptDir/../apps/parser/build.ps1" } | Invoke-Block
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # DibParser (Polyglot) │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
spNetCore.Html.Abstractions.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
Formatter.ListExpansionLimit <- 100
── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
type AssertExceptionFormatter (ex) =
member _.Text =
ex.ToString()
.Replace("32m", "<span style=\"color: green;\">")
.Replace("36m", "</span>")
.Replace("31m", "<span style=\"color: red;\">")
.Replace("\n", "<br/>\n")
Formatter.Register<AssertExceptionFormatter> ((fun (x :
AssertExceptionFormatter) -> x.Text), "text/html")
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __expect fn log expected actual =
if log then printfn $"{actual.ToDisplayString ()}"
try
"Testing.__expect" |> fn actual expected
with :? Expecto.AssertException as ex ->
AssertExceptionFormatter(ex).Display () |> ignore
failwith (ex.GetType().FullName)
let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual
let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual
let inline __isGreaterThan log expected actual = __expect
Expecto.Expect.isGreaterThan log ex...
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __isBetween log a b actual =
let inline isBetween actual (a, b) _ =
__isGreaterThanOrEqual log a actual
__isLessThanOrEqual log b actual
__expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual
── pwsh ────────────────────────────────────────────────────────────────────────
ls ~/.nuget/packages/argu
╭─[ 600.57ms - stdout ]────────────────────────────────────────────────────────╮
│ │
│ Directory: C:\Users\i574n\.nuget\packages\argu │
│ │
│ Mode LastWriteTime Length[ │
│ 32;1m Name │
│ ---- ------------- ------ [ │
│ 32;1m---- │
│ d---- 2023-05-17 3:38 PM 6.1.1 │
│ d---- 2024-03-12 8:22 PM 6.1.4 │
│ d---- 2024-01-29 5:12 PM 6.1.5 │
│ d---- 2024-03-12 8:20 PM 6.2.0 │
│ d---- 2024-02-23 6:50 PM 6.2.1 │
│ d---- 2024-03-12 8:15 PM 6.2.2 │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
#r
@"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
dard2.1/FSharp.Control.AsyncSeq.dll"
#r
@"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
0/System.Reactive.dll"
#r
@"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
netstandard2.0/System.Reactive.Linq.dll"
#r
@"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
#r
@"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
b/net6.0/System.CommandLine.dll"
#r
@"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP
arsec.dll"
#r
@"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP
arsecCS.dll"
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/sm.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/spiral/file_system.fsx
#!import ../../lib/spiral/lib.fsx
#!import ../../lib/fsharp/Common.fs
#!import ../../lib/fsharp/CommonFSharp.fs
#!import ../../lib/fsharp/Async.fs
#!import ../../lib/fsharp/AsyncSeq.fs
#!import ../../lib/fsharp/Runtime.fs
#!import ../../lib/fsharp/FileSystem.fs
── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
| US0_0
| US0_1
and [[<Struct>]] US1 =
| US1_0
| US1_1 of f1_0 : US0
let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
v0
and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
let mutable result = None
#if FABLE_COMPILER_RUST && !WASM
let v1 : (unit -> unit) = method0(v0)
let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v1()" }
v2
#endif
#if FABLE_COMPILER_RUST && WASM
let v3 : (unit -> unit) = method0(v0)
let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v3()" }
v4
#endif
#if !FABLE_COMPILER && !F...
── fsharp - import ─────────────────────────────────────────────────────────────
type Mut0 = {mutable l0 : int32; mutable l1 : string}
and Mut1 = {mutable l0 : int32}
let rec closure1 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.Contains v0
v2
and closure0 () (v0 : string) : (string -> bool) =
closure1(v0)
and closure3 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.EndsWith v0
v2
and closure2 () (v0 : string) : (string -> bool) =
closure3(v0)
and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
let v3 : string = v2.PadLeft (v0, v1)
v3
and closure5 (v0 : int32) (v1 : char) : (string -> string) =
closure6(v0, v1)
and closure4 () (v0 : int32) : (char -> (string -> string)) =
closure5(v0)
and closure8 (v0 : int32) (v1 : string) : string =
let v2 : stri...
── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
let v2 : (System.Guid -> string) = _.ToString()
let v3 : string = v2 v0
let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
v5
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
let v3 : string = v2.Replace (v0, v1)
v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
closure3()
and closure2 (...
── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
| US0_0
| US0_1
| US0_2
and [[<Struct>]] US1 =
| US1_0 of f0_0 : US0
| US1_1 of f1_0 : US0
let rec closure0 () () : string =
let mutable result = None
#if FABLE_COMPILER_RUST && !WASM
let v0 : US0 = US0_1
let v1 : US1 = US1_1(v0)
let v2 : string = $"create_temp_directory_name target: {v1}"
let v3 : string = failwith<string> v2
v3
#endif
#if FABLE_COMPILER_RUST && WASM
let v4 : US0 = US0_2
let v5 : US1 = US1_1(v4)
let v6 : string = $"create_temp_directory_name target: {v5}"
let v7 : string = failwith<string> v6
v7
#endif
#if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM
let v8 : string = System.Reflection.Assembly.GetEntryAssembly()...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !WASM && !FABLE_COMPILER
module Date_time =
let new_guid_from_date_time x =
#if !INTERACTIVE
Date_time.new_guid_from_date_time x
#else
new_guid_from_date_time x
#endif
#endif
module Sm =
let concat x =
#if !INTERACTIVE
Sm.concat x
#else
concat x
#endif
let contains x =
#if !INTERACTIVE
Sm.contains x
#else
contains x
#endif
let ellipsis x =
#if !INTERACTIVE
Sm.ellipsis x
#else
ellipsis x
#endif
let ellipsis_end x =
#if !INTERACTIVE
Sm.ellipsis_end x
#else
ellipsis_end x
#endif
let ends_with x =
#if !INTERACTIVE
Sm.ends_with x
#else
ends_with x
#endif
let format_exception x =
#if !INTERACTIVE
Sm.format_...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Common =
#if !INTERACTIVE
open Lib
#endif
let nl = System.Environment.NewLine
let q = @""""
let inline cons head tail = head :: tail
/// ## memoize
let inline memoize fn =
let result = lazy fn ()
fun () -> result.Value
/// ## TraceLevel
type TraceLevel =
| Verbose
| Debug
| Info
| Warning
| Critical
let inline getLocals () = ""
let mutable traceEnabled = true
let mutable traceCount = 0
let mutable traceLevel = Verbose
let mutable traceDump = false
let testTraceLevel level =
traceEnabled && level >= traceLevel
/// ## traceRaw
let rec traceRaw level fn =
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module CommonFSharp =
open Common
/// ## getUnionCaseName
let inline getUnionCaseName<'T> (x: 'T) =
match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
| case, _ -> case.Name
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Async =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## choice
let inline choice asyncs = async {
let e = Event<_> ()
use cts = new System.Threading.CancellationTokenSource ()
let fn =
asyncs
|> Seq.map (fun a -> async {
let! x = a
e.Trigger x
})
|> Async.Parallel
|> Async.Ignore
Async.Start (fn, cts.Token)
let! result = Async.AwaitEvent e.Publish
cts.Cancel ()
return result
}
/// ## map
let inline map fn a = async {
let! x = a
return fn x
}
/// ## catch
let inline catch a =
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module AsyncSeq =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## subscribeEvent
let inline subscribeEvent (event: IEvent<'H, 'A>) map =
let observable = System.Reactive.Linq.Observable.FromEventPattern<'H,
'A>(event.AddHandler, event.RemoveHandler)
System.Reactive.Linq.Observable.Select (observable, fun event -> map
event.EventArgs)
|> FSharp.Control.AsyncSeq.ofObservableBuffered
let subscribeToken (token : System.Threading.CancellationToken) =
let tcs = new System.Threading.Tasks.TaskCompletionSource ()
System.Action tcs.SetResult |> token.Register |> ignore
let start = System.DateTime.Now.Ticks
FSharp.Control.A...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Runtime =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## isWindows
let isWindows =
fun () ->
System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
System.Runtime.InteropServices.OSPlatform.Windows
|> memoize
/// ## getExecutableSuffix
let inline getExecutableSuffix () =
if isWindows ()
then ".exe"
else ""
/// ## splitCommand
type private CommandParseStep =
| Start
| Path of quoted: bool
| Arguments
let splitCommand (command: string) =
let rec loop (path, args) chars step =
match chars, step with
| ('"' | '\'') ...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module FileSystem =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## Operators
module Operators =
let inline (</>) a b =
System.IO.Path.Combine (a, b)
open Operators
/// ## createTempDirectory
let inline createTempDirectory () =
let tempFolder = File_system.create_temp_directory_name ()
let result = System.IO.Directory.CreateDirectory tempFolder
if not result.Exists then
let getLocals () =
$"tempFolder: {tempFolder} / result: {({|
Exists = result.Exists
CreationTime = result.CreationTime
|})} {getLocals ()}"
trace Debug ...
── fsharp ──────────────────────────────────────────────────────────────────────
#if !INTERACTIVE
open Lib
#endif
── fsharp ──────────────────────────────────────────────────────────────────────
open Common
open FParsec
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## escapeCell (test) │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let inline escapeCell input =
input
|> Sm.split "\n"
|> Array.map (function
| line when line |> Sm.starts_with "\\#!" || line |> Sm.starts_with
"\\#r" ->
System.Text.RegularExpressions.Regex.Replace (line, "^\\\\#", "#")
| line -> line
)
|> Sm.concat "\n"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
$"a{nl}\\#!magic{nl}b{nl}"
|> escapeCell
|> _assertEqual (
$"a{nl}#!magic{nl}b{nl}"
)
╭─[ 52.45ms - stdout ]─────────────────────────────────────────────────────────╮
│ a │
│ #!magic │
│ b │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## magicMarker │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let magicMarker : Parser<string, unit> = pstring "#!"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"#!magic"
|> run magicMarker
|> _assertEqual (
Success ("#!", (), Position ("", 2, 1, 3))
)
╭─[ 48.15ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item1: #! │
│ Item2: <null> │
│ Item3: Position │
│ Index: 2 │
│ Line: 1 │
│ Column: 3 │
│ StreamName: │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"##!magic"
|> run magicMarker
|> _assertEqual (
Failure (
$"Error in Ln: 1 Col: 1{nl}##!magic{nl}^{nl}Expecting: '#!'{nl}",
ParserError (
Position ("", 0, 1, 1),
(),
ErrorMessageList (ExpectedString "#!")
),
()
)
)
╭─[ 58.21ms - stdout ]─────────────────────────────────────────────────────────╮
│ Failure │
│ Item1: Error in Ln: 1 Col: 1 │
│ ##!magic │
│ ^ │
│ Expecting: '#!' │
│ │
│ Item2: ParserError │
│ Position: Position │
│ Index: 0 │
│ Line: 1 │
│ Column: 1 │
│ StreamName: │
│ UserState: <null> │
│ Messages: ErrorMessageList │
│ Head: ExpectedString │
│ String: #! │
│ Type: ExpectedString │
│ Tail: <null> │
│ Item3: <null> │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## magicCommand │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let magicCommand =
magicMarker
>>. manyTill anyChar newline
|>> (System.String.Concat >> Sm.trim)
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"#!magic
a"
|> run magicCommand
|> _assertEqual (
Success ("magic", (), Position ("", 8, 2, 1))
)
╭─[ 64.83ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item1: magic │
│ Item2: <null> │
│ Item3: Position │
│ Index: 8 │
│ Line: 2 │
│ Column: 1 │
│ StreamName: │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
" #!magic
a"
|> run magicCommand
|> _assertEqual (
Failure (
$"Error in Ln: 1 Col: 1{nl} #!magic{nl}^{nl}Expecting: '#!'{nl}",
ParserError (
Position ("", 0, 1, 1),
(),
ErrorMessageList (ExpectedString "#!")
),
()
)
)
╭─[ 68.68ms - stdout ]─────────────────────────────────────────────────────────╮
│ Failure │
│ Item1: Error in Ln: 1 Col: 1 │
│ #!magic │
│ ^ │
│ Expecting: '#!' │
│ │
│ Item2: ParserError │
│ Position: Position │
│ Index: 0 │
│ Line: 1 │
│ Column: 1 │
│ StreamName: │
│ UserState: <null> │
│ Messages: ErrorMessageList │
│ Head: ExpectedString │
│ String: #! │
│ Type: ExpectedString │
│ Tail: <null> │
│ Item3: <null> │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## content │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let content =
(newline >>. magicMarker) <|> (eof >>. preturn "")
|> attempt
|> lookAhead
|> manyTill anyChar
|>> (System.String.Concat >> Sm.trim)
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"#!magic
a
"
|> run content
|> _assertEqual (
Success ("#!magic
a", (), Position ("", 14, 7, 1))
)
╭─[ 36.91ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item1: #!magic │
│ │
│ │
│ a │
│ Item2: <null> │
│ Item3: Position │
│ Index: 14 │
│ Line: 7 │
│ Column: 1 │
│ StreamName: │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## Block │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
type Block =
{
magic : string
content : string
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## block │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let block =
pipe2
magicCommand
content
(fun magic content ->
{
magic = magic
content = content
})
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"#!magic
a
"
|> run block
|> _assertEqual (
Success (
{ magic = "magic"; content = "a" },
(),
Position ("", 14, 7, 1)
)
)
╭─[ 89.77ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item1: Block │
│ magic: magic │
│ content: a │
│ Item2: <null> │
│ Item3: Position │
│ Index: 14 │
│ Line: 7 │
│ Column: 1 │
│ StreamName: │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## blocks │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let blocks =
skipMany newline
>>. sepEndBy block (skipMany1 newline)
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"#!magic1
a
\#!magic2
b
"
|> escapeCell
|> run blocks
|> _assertEqual (
Success (
[[
{ magic = "magic1"; content = "a" }
{ magic = "magic2"; content = "b" }
]],
(),
Position ("", 26, 9, 1)
)
)
╭─[ 69.26ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item1: FSharpList<Block> │
│ - magic: magic1 │
│ content: a │
│ - magic: magic2 │
│ content: b │
│ Item2: <null> │
│ Item3: Position │
│ Index: 26 │
│ Line: 9 │
│ Column: 1 │
│ StreamName: │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## Output │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
type Output =
| Fs
| Md
| Spi
| Spir
let inline kernelOutputs magic =
match magic with
| "fsharp" -> [[ Fs ]]
| "markdown" -> [[ Md ]]
| "spiral" -> [[ Spi; Spir ]]
| _ -> [[]]
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## formatBlock │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline formatBlock output (block : Block) =
match output, block with
| output, { magic = "markdown"; content = content } ->
let markdownComment =
match output with
| Spi | Spir -> "// // "
| Fs -> "/// "
| _ -> ""
content
|> Sm.split "\n"
|> Array.map (Sm.trim_end [[||]])
|> Array.filter (Sm.ends_with " (test)" >> not)
|> Array.map (function
| "" -> markdownComment |> Sm.trim
| line -> System.Text.RegularExpressions.Regex.Replace (line,
"^\\s*", $"$&{markdownComment}")
)
|> Sm.concat "\n"
| Fs, { magic = "fsharp"; content = content } ->
let trimmedContent = content |> Sm.trim
if trimmedContent |> Sm.starts_with "//// test" || trimmedContent |>
Sm.starts_with "//// ignore"
then ""
else
content
|> Sm.split "\n"
|> Array.filter (Sm.trim_start [[||]] >> Sm.starts_with "#r" >> not)
|> Sm.concat "\n"
| (Spi | Spir), { magic = "spiral"; content = content } ->
let trimmedContent = content |> Sm.trim
if trimmedContent |> Sm.starts_with "// // test" || trimmedContent |>
Sm.starts_with "// // ignore"
then ""
else content
| _ -> ""
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"#!markdown
a
b
c
\#!markdown
c
\#!fsharp
let a = 1"
|> escapeCell
|> run block
|> function
| Success (block, _, _) -> formatBlock Fs block
| Failure (msg, _, _) -> failwith msg
|> _assertEqual "/// a
///
/// b
///
/// c"
╭─[ 109.25ms - stdout ]────────────────────────────────────────────────────────╮
│ /// a │
│ /// │
│ /// b │
│ /// │
│ /// c │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## formatBlocks │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline formatBlocks output blocks =
blocks
|> List.map (formatBlock output)
|> List.filter ((<>) "")
|> Sm.concat "\n\n"
|> fun s -> s + "\n"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"#!markdown
a
b
\#!markdown
c
\#!fsharp
let a = 1
\#!markdown
d (test)
\#!fsharp
//// test
let a = 2
\#!markdown
e
\#!fsharp
let a = 3"
|> escapeCell
|> run blocks
|> function
| Success (blocks, _, _) -> formatBlocks Fs blocks
| Failure (msg, _, _) -> failwith msg
|> _assertEqual "/// a
///
/// b
/// c
let a = 1
/// e
let a = 3
"
╭─[ 62.19ms - stdout ]─────────────────────────────────────────────────────────╮
│ /// a │
│ /// │
│ /// b │
│ │
│ /// c │
│ │
│ let a = 1 │
│ │
│ /// e │
│ │
│ let a = 3 │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## parse │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline parse output input =
match run blocks input with
| Success (blocks, _, _) ->
let blocks =
blocks
|> List.filter (fun block ->
block.magic |> kernelOutputs |> List.contains output ||
block.magic = "markdown"
)
match blocks with
| { magic = "markdown"; content = content } :: _
when output = Fs
&& content |> Sm.starts_with "# "
&& content |> Sm.ends_with ")"
->
let inline indentBlock (block : Block) =
{ block with
content =
block.content
|> Sm.split "\n"
|> Array.fold
(fun (lines, isMultiline) line ->
let trimmedLine = line |> Sm.trim
if trimmedLine = ""
then "" :: lines, isMultiline
else
let inline singleQuoteLine () =
trimmedLine |> Seq.sumBy ((=) '"' >>
System.Convert.ToInt32) = 1
&& trimmedLine |> Sm.contains @"'""'" |>
not
&& trimmedLine |> Sm.ends_with "{" |>
not
&& trimmedLine |> Sm.ends_with "{|" |>
not
&& trimmedLine |> Sm.starts_with "}" |>
not
&& trimmedLine |> Sm.starts_with "|}" |>
not
match isMultiline, trimmedLine |>
Sm.split_string [[| $"{q}{q}{q}" |]] with
| false, [[| _; _ |]] ->
$" {line}" :: lines, true
| true, [[| _; _ |]] ->
line :: lines, false
| false, _ when singleQuoteLine () ->
$" {line}" :: lines, true
| false, _ when line |> Sm.starts_with "#"
&& block.magic = "fsharp" ->
line :: lines, false
| false, _ ->
$" {line}" :: lines, false
| true, _ when singleQuoteLine () && line |>
Sm.starts_with " " ->
$" {line}" :: lines, false
| true, _ when singleQuoteLine () ->
line :: lines, false
| true, _ ->
line :: lines, true
)
([[]], false)
|> fst
|> List.rev
|> Sm.concat "\n"
}
let moduleName, namespaceName =
System.Text.RegularExpressions.Regex.Match (content, @"# (.*)
\((.*)\)$")
|> fun m -> m.Groups.[[1]].Value, m.Groups.[[2]].Value
let moduleBlock =
{
magic = "fsharp"
content =
$"#if !INTERACTIVE
namespace {namespaceName}
#endif
module {moduleName} ="
}
blocks
|> List.indexed
|> List.fold
(fun blocks (index, block) ->
match index with
| 0 -> blocks
| 1 -> indentBlock block :: moduleBlock :: blocks
| _ -> indentBlock block :: blocks
)
[[]]
|> List.rev
| _ -> blocks
|> Result.Ok
| Failure (errorMsg, _, _) -> Result.Error errorMsg
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let example1 =
$"""#!meta
{{"kernelInfo":{{"defaultKernelName":"fsharp","items":[[{{"aliases":[[]],"name":
"fsharp"}},{{"aliases":[[]],"name":"fsharp"}}]]}}}}
\#!markdown
# TestModule (TestNamespace)
\#!fsharp
\#!import file.dib
\#!fsharp
\#r "nuget:Expecto"
\#!markdown
## ParserLibrary
\#!fsharp
open System
\#!markdown
## x (test)
\#!fsharp
//// ignore
let x = 1
\#!spiral
// // test
inl x = 0i32
\#!spiral
inl x = 0i32
\#!markdown
### TextInput
\#!fsharp
let str1 = "abc
def"
let str2 =
"abc\
def"
let str3 =
$"1{{
1
}}1"
let str4 =
$"1{{({{|
a = 1
|}}).a}}1"
let str5 =
"abc \
def"
let x =
match '"' with
| '"' -> true
| _ -> false
let long1 = {q}{q}{q}a{q}{q}{q}
let long2 =
{q}{q}{q}
a
{q}{q}{q}
\#!fsharp
type Position =
{{
#if INTERACTIVE
line : string
#else
line : int
#endif
column : int
}}"""
|> escapeCell
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
example1
|> parse Fs
|> Result.toOption
|> Option.get
|> (formatBlocks Fs)
|> _assertEqual $"""#if !INTERACTIVE
namespace TestNamespace
#endif
module TestModule =
/// ## ParserLibrary
open System
/// ### TextInput
let str1 = "abc
def"
let str2 =
"abc\
def"
let str3 =
$"1{{
1
}}1"
let str4 =
$"1{{({{|
a = 1
|}}).a}}1"
let str5 =
"abc \
def"
let x =
match '"' with
| '"' -> true
| _ -> false
let long1 = {q}{q}{q}a{q}{q}{q}
let long2 =
{q}{q}{q}
a
{q}{q}{q}
type Position =
{{
#if INTERACTIVE
line : string
#else
line : int
#endif
column : int
}}
"""
╭─[ 193.86ms - stdout ]────────────────────────────────────────────────────────╮
│ #if !INTERACTIVE │
│ namespace TestNamespace │
│ #endif │
│ │
│ module TestModule = │
│ │
│ /// ## ParserLibrary │
│ │
│ open System │
│ │
│ /// ### TextInput │
│ │
│ let str1 = "abc │
│ def" │
│ │
│ let str2 = │
│ "abc\ │
│ def" │
│ │
│ let str3 = │
│ $"1{ │
│ 1 │
│ }1" │
│ │
│ let str4 = │
│ $"1{({| │
│ a = 1 │
│ |}).a}1" │
│ │
│ let str5 = │
│ "abc \ │
│ def" │
│ │
│ let x = │
│ match '"' with │
│ | '"' -> true │
│ | _ -> false │
│ │
│ let long1 = """a""" │
│ │
│ let long2 = │
│ """ │
│ a │
│ """ │
│ │
│ type Position = │
│ { │
│ #if INTERACTIVE │
│ line : string │
│ #else │
│ line : int │
│ #endif │
│ column : int │
│ } │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
example1
|> parse Md
|> Result.toOption
|> Option.get
|> (formatBlocks Md)
|> _assertEqual "# TestModule (TestNamespace)
## ParserLibrary
### TextInput
"
╭─[ 200.23ms - stdout ]────────────────────────────────────────────────────────╮
│ # TestModule (TestNamespace) │
│ │
│ ## ParserLibrary │
│ │
│ ### TextInput │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
example1
|> parse Spi
|> Result.toOption
|> Option.get
|> (formatBlocks Spi)
|> _assertEqual "// // # TestModule (TestNamespace)
// // ## ParserLibrary
inl x = 0i32
// // ### TextInput
"
╭─[ 139.38ms - stdout ]────────────────────────────────────────────────────────╮
│ // // # TestModule (TestNamespace) │
│ │
│ // // ## ParserLibrary │
│ │
│ inl x = 0i32 │
│ │
│ // // ### TextInput │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## parseDibCode │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline parseDibCode output file = async {
let getLocals () = $"output: {output} / file: {file} / {getLocals ()}"
trace Debug (fun () -> "parseDibCode") getLocals
let! input = file |> FileSystem.readAllTextAsync
match parse output input with
| Result.Ok blocks -> return blocks |> formatBlocks output
| Result.Error msg -> return failwith msg
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## writeDibCode │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline writeDibCode output path = async {
let getLocals () = $"output: {output} / path: {path} / {getLocals ()}"
trace Debug (fun () -> "writeDibCode") getLocals
let! result = parseDibCode output path
let outputPath = path |> Sm.replace ".dib" $".{output |> string |>
Sm.to_lower}"
do! result |> FileSystem.writeAllTextAsync outputPath
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## Arguments │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
[[<RequireQualifiedAccess>]]
type Arguments =
| [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.Mandatory>]]
File of file : string * Output
interface Argu.IArgParserTemplate with
member s.Usage =
match s with
| File _ -> nameof File
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
Argu.ArgumentParser.Create<Arguments>().PrintUsage ()
╭─[ 106.40ms - return value ]──────────────────────────────────────────────────╮
│ USAGE: dotnet-repl [--help] <file> <fs|md|spi|spir> │
│ │
│ FILE: │
│ │
│ <file> <fs|md|spi|spir> │
│ File │
│ │
│ OPTIONS: │
│ │
│ --help display this list of options. │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## main │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let main args =
let argsMap = args |> Runtime.parseArgsMap<Arguments>
let files =
argsMap.[[nameof Arguments.File]]
|> List.map (function
| Arguments.File (path, output) -> path, output
)
files
|> List.map (fun (path, output) -> path |> writeDibCode output)
|> Async.Parallel
|> Async.Ignore
|> Async.runWithTimeout 30000
|> function
| Some () -> 0
| None -> 1
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let args =
System.Environment.GetEnvironmentVariable "ARGS"
|> Runtime.splitArgs
|> Seq.toArray
match args with
| [[||]] -> 0
| args -> if main args = 0 then 0 else failwith "main failed"
╭─[ 143.24ms - return value ]──────────────────────────────────────────────────╮
│ <div class="dni-plaintext"><pre>0</pre></div><style> │
│ .dni-code-hint { │
│ font-style: italic; │
│ overflow: hidden; │
│ white-space: nowrap; │
│ } │
│ .dni-treeview { │
│ white-space: nowrap; │
│ } │
│ .dni-treeview td { │
│ vertical-align: top; │
│ text-align: start; │
│ } │
│ details.dni-treeview { │
│ padding-left: 1em; │
│ } │
│ table td { │
│ text-align: start; │
│ } │
│ table tr { │
│ vertical-align: top; │
│ margin: 0em 0px; │
│ } │
│ table tr td pre │
│ { │
│ vertical-align: top !important; │
│ margin: 0em 0px !important; │
│ } │
│ table th { │
│ text-align: start; │
│ } │
│ </style> │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 156.45ms - stdout ]────────────────────────────────────────────────────────╮
│ 00:00:00 #1 [Debug] writeDibCode / output: Fs / path: DibParser.dib │
│ 00:00:00 #2 [Debug] parseDibCode / output: Fs / file: DibParser.dib │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
[NbConvertApp] Converting notebook DibParser.dib.ipynb to html
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
validate(nb)
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
return _pygments_highlight(
[NbConvertApp] Writing 369446 bytes to DibParser.dib.html
00:00:00 #1 [Debug] persistCodeProject / packages: [Argu; FParsec; FSharp.Control.AsyncSeq; ... ] / modules: [lib/spiral/common.fsx; lib/spiral/sm.fsx; lib/spiral/date_time.fsx; ... ] / name: DibParser / code.Length: 8972
00:00:00 #2 [Debug] buildProject / fullPath: C:\home\git\polyglot\target\polyglot\builder\DibParser\DibParser.fsproj
00:00:00 #3 [Debug] executeAsync / options: { Command =
"dotnet publish "C:\home\git\polyglot\target/polyglot/builder\DibParser\DibParser.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\parser\dist" --runtime linux-x64"
WorkingDirectory =
Some "C:\home\git\polyglot\target\polyglot\builder\DibParser"
CancellationToken = None
OnLine = None }
00:00:00 #4 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f for .NET
00:00:00 #5 [Verbose] > Determining projects to restore...
00:00:01 #6 [Verbose] > Restored C:\home\git\polyglot\target\polyglot\builder\DibParser\DibParser.fsproj (in 369 ms).
00:00:01 #7 [Verbose] > C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.24101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\home\git\polyglot\target\polyglot\builder\DibParser\DibParser.fsproj]
00:00:08 #8 [Verbose] > DibParser -> C:\home\git\polyglot\target\polyglot\builder\DibParser\bin\Release\net9.0\linux-x64\DibParser.dll
00:00:09 #9 [Verbose] > DibParser -> C:\home\git\polyglot\apps\parser\dist\
00:00:10 #10 [Debug] executeAsync / exitCode: 0 / output.Length: 707
00:00:10 #11 [Debug] executeAsync / options: { Command =
"dotnet publish "C:\home\git\polyglot\target/polyglot/builder\DibParser\DibParser.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\parser\dist" --runtime win-x64"
WorkingDirectory =
Some "C:\home\git\polyglot\target\polyglot\builder\DibParser"
CancellationToken = None
OnLine = None }
00:00:10 #12 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f for .NET
00:00:10 #13 [Verbose] > Determining projects to restore...
00:00:11 #14 [Verbose] > Restored C:\home\git\polyglot\target\polyglot\builder\DibParser\DibParser.fsproj (in 400 ms).
00:00:11 #15 [Verbose] > C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.24101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\home\git\polyglot\target\polyglot\builder\DibParser\DibParser.fsproj]
00:00:18 #16 [Verbose] > DibParser -> C:\home\git\polyglot\target\polyglot\builder\DibParser\bin\Release\net9.0\win-x64\DibParser.dll
00:00:21 #17 [Verbose] > DibParser -> C:\home\git\polyglot\apps\parser\dist\
00:00:22 #18 [Debug] executeAsync / exitCode: 0 / output.Length: 705
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # JsonParser (Polyglot) │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
spNetCore.Html.Abstractions.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
Formatter.ListExpansionLimit <- 100
── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
type AssertExceptionFormatter (ex) =
member _.Text =
ex.ToString()
.Replace("32m", "<span style=\"color: green;\">")
.Replace("36m", "</span>")
.Replace("31m", "<span style=\"color: red;\">")
.Replace("\n", "<br/>\n")
Formatter.Register<AssertExceptionFormatter> ((fun (x :
AssertExceptionFormatter) -> x.Text), "text/html")
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __expect fn log expected actual =
if log then printfn $"{actual.ToDisplayString ()}"
try
"Testing.__expect" |> fn actual expected
with :? Expecto.AssertException as ex ->
AssertExceptionFormatter(ex).Display () |> ignore
failwith (ex.GetType().FullName)
let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual
let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual
let inline __isGreaterThan log expected actual = __expect
Expecto.Expect.isGreaterThan log ex...
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __isBetween log a b actual =
let inline isBetween actual (a, b) _ =
__isGreaterThanOrEqual log a actual
__isLessThanOrEqual log b actual
__expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/sm.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/spiral/file_system.fsx
#!import ../../lib/spiral/lib.fsx
#!import ../../lib/fsharp/Common.fs
#!import Parser.fs
── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
| US0_0
| US0_1
and [[<Struct>]] US1 =
| US1_0
| US1_1 of f1_0 : US0
let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
v0
and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
let mutable result = None
#if FABLE_COMPILER_RUST && !WASM
let v1 : (unit -> unit) = method0(v0)
let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v1()" }
v2
#endif
#if FABLE_COMPILER_RUST && WASM
let v3 : (unit -> unit) = method0(v0)
let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v3()" }
v4
#endif
#if !FABLE_COMPILER && !F...
── fsharp - import ─────────────────────────────────────────────────────────────
type Mut0 = {mutable l0 : int32; mutable l1 : string}
and Mut1 = {mutable l0 : int32}
let rec closure1 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.Contains v0
v2
and closure0 () (v0 : string) : (string -> bool) =
closure1(v0)
and closure3 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.EndsWith v0
v2
and closure2 () (v0 : string) : (string -> bool) =
closure3(v0)
and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
let v3 : string = v2.PadLeft (v0, v1)
v3
and closure5 (v0 : int32) (v1 : char) : (string -> string) =
closure6(v0, v1)
and closure4 () (v0 : int32) : (char -> (string -> string)) =
closure5(v0)
and closure8 (v0 : int32) (v1 : string) : string =
let v2 : stri...
── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
let v2 : (System.Guid -> string) = _.ToString()
let v3 : string = v2 v0
let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
v5
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
let v3 : string = v2.Replace (v0, v1)
v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
closure3()
and closure2 (...
── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
| US0_0
| US0_1
| US0_2
and [[<Struct>]] US1 =
| US1_0 of f0_0 : US0
| US1_1 of f1_0 : US0
let rec closure0 () () : string =
let mutable result = None
#if FABLE_COMPILER_RUST && !WASM
let v0 : US0 = US0_1
let v1 : US1 = US1_1(v0)
let v2 : string = $"create_temp_directory_name target: {v1}"
let v3 : string = failwith<string> v2
v3
#endif
#if FABLE_COMPILER_RUST && WASM
let v4 : US0 = US0_2
let v5 : US1 = US1_1(v4)
let v6 : string = $"create_temp_directory_name target: {v5}"
let v7 : string = failwith<string> v6
v7
#endif
#if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM
let v8 : string = System.Reflection.Assembly.GetEntryAssembly()...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !WASM && !FABLE_COMPILER
module Date_time =
let new_guid_from_date_time x =
#if !INTERACTIVE
Date_time.new_guid_from_date_time x
#else
new_guid_from_date_time x
#endif
#endif
module Sm =
let concat x =
#if !INTERACTIVE
Sm.concat x
#else
concat x
#endif
let contains x =
#if !INTERACTIVE
Sm.contains x
#else
contains x
#endif
let ellipsis x =
#if !INTERACTIVE
Sm.ellipsis x
#else
ellipsis x
#endif
let ellipsis_end x =
#if !INTERACTIVE
Sm.ellipsis_end x
#else
ellipsis_end x
#endif
let ends_with x =
#if !INTERACTIVE
Sm.ends_with x
#else
ends_with x
#endif
let format_exception x =
#if !INTERACTIVE
Sm.format_...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Common =
#if !INTERACTIVE
open Lib
#endif
let nl = System.Environment.NewLine
let q = @""""
let inline cons head tail = head :: tail
/// ## memoize
let inline memoize fn =
let result = lazy fn ()
fun () -> result.Value
/// ## TraceLevel
type TraceLevel =
| Verbose
| Debug
| Info
| Warning
| Critical
let inline getLocals () = ""
let mutable traceEnabled = true
let mutable traceCount = 0
let mutable traceLevel = Verbose
let mutable traceDump = false
let testTraceLevel level =
traceEnabled && level >= traceLevel
/// ## traceRaw
let rec traceRaw level fn =
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Parser =
open Common
/// ### TextInput
type Position =
{
line : int
column : int
}
let initialPos = { line = 0; column = 0 }
let inline incrCol (pos : Position) =
{ pos with column = pos.column + 1 }
let inline incrLine pos =
{ line = pos.line + 1; column = 0 }
type InputState =
{
lines : string[[]]
position : Position
}
let inline fromStr str =
{
lines =
if str |> String.IsNullOrEmpty
then [[||]]
else str |> Sm.split_string [[| "\r\n"; "\n" |]]
position = initialPos
}
le...
── fsharp ──────────────────────────────────────────────────────────────────────
open Common
open Parser
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## JsonParser │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
(*
// --------------------------------
JSON spec from http://www.json.org/
// --------------------------------
The JSON spec is available at [[json.org]](http://www.json.org/). I'll paraphase
it here:
* A `value` can be a `string` or a `number` or a `bool` or `null` or an `object`
or an `array`.
* These structures can be nested.
* A `string` is a sequence of zero or more Unicode characters, wrapped in double
quotes, using backslash escapes.
* A `number` is very much like a C or Java number, except that the octal and
hexadecimal formats are not used.
* A `boolean` is the literal `true` or `false`
* A `null` is the literal `null`
* An `object` is an unordered set of name/value pairs.
* An object begins with { (left brace) and ends with } (right brace).
* Each name is followed by : (colon) and the name/value pairs are separated by
, (comma).
* An `array` is an ordered collection of values.
* An array begins with [[ (left bracket) and ends with ]] (right bracket).
* Values are separated by , (comma).
* Whitespace can be inserted between any pair of tokens.
*)
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let inline parserEqual (expected : ParseResult<'a>) (actual : ParseResult<'a *
Input>) =
match actual, expected with
| Success (_actual, _), Success _expected ->
printResult actual
_actual |> _assertEqual _expected
| Failure (l1, e1, p1), Failure (l2, e2, p2) when l1 = l2 && e1 = e2 && p1 =
p2 ->
printResult actual
| _ ->
printfn $"Actual: {actual}"
printfn $"Expected: {expected}"
failwith "Parse failed"
actual
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### JValue │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
type JValue =
| JString of string
| JNumber of float
| JBool of bool
| JNull
| JObject of Map<string, JValue>
| JArray of JValue list
── fsharp ──────────────────────────────────────────────────────────────────────
let jValue, jValueRef = createParserForwardedToRef<JValue> ()
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jNull │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let jNull =
pstring "null"
>>% JNull
<?> "null"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
jValueRef <|
choice
[[
jNull
]]
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jValue "null"
|> parserEqual (Success JNull)
╭─[ 227.53ms - return value ]──────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JNull, { lines = [ │
│ |"null"|]<br/> position = { line = 0<br/> │
│ column = 4 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JNull, { lines = [|"null"|]<br/> │
│ position = { line = 0<br/> column = 4 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JNull</code></span></summary><div><table><thead> │
│ <tr></tr></thead><tbody><tr><td>IsJString</td><td><d... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 236.94ms - stdout ]────────────────────────────────────────────────────────╮
│ JNull │
│ JValue │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: True │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jNull "nulp"
|> parserEqual (
Failure (
"null",
"Unexpected 'p'",
{ currentLine = "nulp"; line = 0; column = 3 }
)
)
╭─[ 46.84ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Failure ("null", "Unexpected │
│ 'p'", { currentLine = "nulp"<br/> │
│ line = 0<br/> column = 3 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div │
│ class="dni-plaintext"><pre>null</pre></div></td></tr><tr><td>Item2</td><td>< │
│ div class="dni-plaintext"><pre>Unexpected │
│ 'p'</pre></div></td></tr><tr><td>Item3</td><td><details │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{ │
│ currentLine = "nulp"<br/> line = 0<br/> column = 3 │
│ }</code></span></summary><div><table><thead><tr></tr></thead... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 54.69ms - stdout ]─────────────────────────────────────────────────────────╮
│ Line:0 Col:3 Error parsing null │
│ nulp │
│ ^Unexpected 'p' │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jBool │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let jBool =
let jtrue =
pstring "true"
>>% JBool true
let jfalse =
pstring "false"
>>% JBool false
jtrue <|> jfalse
<?> "bool"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
jValueRef <|
choice
[[
jNull
jBool
]]
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jBool "true"
|> parserEqual (Success (JBool true))
╭─[ 59.18ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JBool true, { lines = [ │
│ |"true"|]<br/> position = { line = 0<br/> │
│ column = 4 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JBool true, { lines = [|"true"|]<br/> │
│ position = { line = 0<br/> column = 4 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JBool │
│ true</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr.. │
│ . │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 67.16ms - stdout ]─────────────────────────────────────────────────────────╮
│ JBool true │
│ JBool │
│ Item: True │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: True │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jBool "false"
|> parserEqual (Success (JBool false))
╭─[ 61.53ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JBool false, { lines = [ │
│ |"false"|]<br/> position = { line = 0<br/> │
│ column = 5 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JBool false, { lines = [ │
│ |"false"|]<br/> position = { line = 0<br/> column = │
│ 5 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JBool │
│ false</code></span></summary><div><table><thead><tr></tr></thead><tb... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 70.78ms - stdout ]─────────────────────────────────────────────────────────╮
│ JBool false │
│ JBool │
│ Item: False │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: True │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jBool "truX"
|> parserEqual (
Failure (
"bool",
"Unexpected 't'",
{ currentLine = "truX"; line = 0; column = 0 }
)
)
╭─[ 33.06ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Failure ("bool", "Unexpected │
│ 't'", { currentLine = "truX"<br/> │
│ line = 0<br/> column = 0 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div │
│ class="dni-plaintext"><pre>bool</pre></div></td></tr><tr><td>Item2</td><td>< │
│ div class="dni-plaintext"><pre>Unexpected │
│ 't'</pre></div></td></tr><tr><td>Item3</td><td><details │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{ │
│ currentLine = "truX"<br/> line = 0<br/> column = 0 │
│ }</code></span></summary><div><table><thead><tr></tr></thead... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 41.09ms - stdout ]─────────────────────────────────────────────────────────╮
│ Line:0 Col:0 Error parsing bool │
│ truX │
│ ^Unexpected 't' │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jUnescapedChar │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let jUnescapedChar =
satisfy (fun ch -> ch <> '\\' && ch <> '\"') "char"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jUnescapedChar "a"
|> parserEqual (Success 'a')
╭─[ 51.36ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success ('a', { lines = [ │
│ |"a"|]<br/> position = { line = 0<br/> │
│ column = 1 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(a, { lines = [|"a"|]<br/> position = │
│ { line = 0<br/> column = 1 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div │
│ class="dni-plaintext"><pre>a</pre></div></td></tr><tr><td>Item2</td><td><det │
│ ails class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines │
│ = [|"a"|]<br/... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 61.03ms - stdout ]─────────────────────────────────────────────────────────╮
│ 'a' │
│ a │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jUnescapedChar "\\"
|> parserEqual (
Failure (
"char",
"Unexpected '\\'",
{ currentLine = "\\"; line = 0; column = 0 }
)
)
╭─[ 75.18ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Failure ("char", "Unexpected │
│ '\'", { currentLine = "\"<br/> │
│ line = 0<br/> column = 0 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div │
│ class="dni-plaintext"><pre>char</pre></div></td></tr><tr><td>Item2</td><td>< │
│ div class="dni-plaintext"><pre>Unexpected │
│ '\'</pre></div></td></tr><tr><td>Item3</td><td><details │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{ │
│ currentLine = "\"<br/> line = 0<br/> column = 0 │
│ }</code></span></summary><div><table><thead><tr></tr></thead><tbod... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 82.98ms - stdout ]─────────────────────────────────────────────────────────╮
│ Line:0 Col:0 Error parsing char │
│ \ │
│ ^Unexpected '\' │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jEscapedChar │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let jEscapedChar =
[[
("\\\"",'\"')
("\\\\",'\\')
("\\/",'/')
("\\b",'\b')
("\\f",'\f')
("\\n",'\n')
("\\r",'\r')
("\\t",'\t')
]]
|> List.map (fun (toMatch, result) ->
pstring toMatch >>% result
)
|> choice
<?> "escaped char"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jEscapedChar "\\\\"
|> parserEqual (Success '\\')
╭─[ 58.08ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success ('\\', { lines = [ │
│ |"\\"|]<br/> position = { line = 0<br/> │
│ column = 2 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(\, { lines = [|"\\"|]<br/> position │
│ = { line = 0<br/> column = 2 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div │
│ class="dni-plaintext"><pre>\</pre></div></td></tr><tr><td>Item2</td><td><det │
│ ails class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines │
│ = [|"\\"... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 66.76ms - stdout ]─────────────────────────────────────────────────────────╮
│ '\\' │
│ \ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jEscapedChar "\\t"
|> parserEqual (Success '\t')
╭─[ 59.38ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success ('\009', { lines = [ │
│ |"\t"|]<br/> position = { line = 0<br/> │
│ column = 2 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>( , { lines = [|"\t"|]<br/> position = │
│ { line = 0<br/> column = 2 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div class="dni-plaintext"><pre> │
│ </pre></div></td></tr><tr><td>Item2</td><td><details │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines = [ │
│ |"\t... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 67.65ms - stdout ]─────────────────────────────────────────────────────────╮
│ '\009' │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jEscapedChar @"\\"
|> parserEqual (Success '\\')
╭─[ 60.25ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success ('\\', { lines = [ │
│ |"\\"|]<br/> position = { line = 0<br/> │
│ column = 2 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(\, { lines = [|"\\"|]<br/> position │
│ = { line = 0<br/> column = 2 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div │
│ class="dni-plaintext"><pre>\</pre></div></td></tr><tr><td>Item2</td><td><det │
│ ails class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines │
│ = [|"\\"... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 68.68ms - stdout ]─────────────────────────────────────────────────────────╮
│ '\\' │
│ \ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jEscapedChar @"\n"
|> parserEqual (Success '\n')
╭─[ 86.73ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success ('\010', { lines = [ │
│ |"<br/>"|]<br/> position = { line = 0<br/> │
│ column = 2 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(<br/>, { lines = [|"<br/>"|]<br/> │
│ position = { line = 0<br/> column = 2 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div class="dni-plaintext"><pre> │
│ </pre></div></td></tr><tr><td>Item2</td><td><details │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines = │
│ ... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 94.56ms - stdout ]─────────────────────────────────────────────────────────╮
│ '\010' │
│ │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jEscapedChar "a"
|> parserEqual (
Failure (
"escaped char",
"Unexpected 'a'",
{ currentLine = "a"; line = 0; column = 0 }
)
)
╭─[ 37.08ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Failure ("escaped char", │
│ "Unexpected 'a'", { currentLine = "a"<br/> │
│ line = 0<br/> column = 0 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div class="dni-plaintext"><pre>escaped │
│ char</pre></div></td></tr><tr><td>Item2</td><td><div │
│ class="dni-plaintext"><pre>Unexpected │
│ 'a'</pre></div></td></tr><tr><td>Item3</td><td><details │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{ │
│ currentLine = "a"<br/> line = 0<br/> column = 0 │
│ }</code></span></summary><div><tab... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 43.50ms - stdout ]─────────────────────────────────────────────────────────╮
│ Line:0 Col:0 Error parsing escaped char │
│ a │
│ ^Unexpected 'a' │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jUnicodeChar │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let jUnicodeChar =
let backslash = pchar '\\'
let uChar = pchar 'u'
let hexdigit = anyOf ([[ '0' .. '9' ]] @ [[ 'A' .. 'F' ]] @ [[ 'a' .. 'f'
]])
let fourHexDigits = hexdigit .>>. hexdigit .>>. hexdigit .>>. hexdigit
let inline convertToChar (((h1, h2), h3), h4) =
let str = $"%c{h1}%c{h2}%c{h3}%c{h4}"
Int32.Parse (str, Globalization.NumberStyles.HexNumber) |> char
backslash >>. uChar >>. fourHexDigits
|>> convertToChar
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jUnicodeChar "\\u263A"
|> parserEqual (Success '☺')
╭─[ 67.32ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success ('☺', { lines = [ │
│ |"\u263A"|]<br/> position = { line = 0<br/> │
│ column = 6 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(☺, { lines = [|"\u263A"|]<br/> │
│ position = { line = 0<br/> column = 6 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div │
│ class="dni-plaintext"><pre>☺</pre></div></td></tr><tr><td>Item2</td><td><det │
│ ails class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines │
│ = [|"\u2... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 77.90ms - stdout ]─────────────────────────────────────────────────────────╮
│ '☺' │
│ ☺ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jString │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let quotedString =
let quote = pchar '\"' <?> "quote"
let jchar = jUnescapedChar <|> jEscapedChar <|> jUnicodeChar
quote >>. manyChars jchar .>> quote
── fsharp ──────────────────────────────────────────────────────────────────────
let jString =
quotedString
|>> JString
<?> "quoted string"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
jValueRef <|
choice
[[
jNull
jBool
jString
]]
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jString "\"\""
|> parserEqual (Success (JString ""))
╭─[ 114.34ms - return value ]──────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JString "", { lines = [ │
│ |""""|]<br/> position = { line = │
│ 0<br/> column = 2 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JString "", { lines = [ │
│ |""""|]<br/> position = { line = 0<br/> │
│ column = 2 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JString ""</code></span></summary>... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 129.04ms - stdout ]────────────────────────────────────────────────────────╮
│ JString "" │
│ JString │
│ Item: │
│ IsJString: True │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jString "\"a\""
|> parserEqual (Success (JString "a"))
╭─[ 77.42ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JString "a", { lines = [ │
│ |""a""|]<br/> position = { line = │
│ 0<br/> column = 3 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JString "a", { lines = [ │
│ |""a""|]<br/> position = { line = 0<br/> │
│ column = 3 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JString "a"</code></span></s... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 94.41ms - stdout ]─────────────────────────────────────────────────────────╮
│ JString "a" │
│ JString │
│ Item: a │
│ IsJString: True │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jString "\"ab\""
|> parserEqual (Success (JString "ab"))
╭─[ 61.36ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JString "ab", { lines = [ │
│ |""ab""|]<br/> position = { line │
│ = 0<br/> column = 4 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JString "ab", { lines = [ │
│ |""ab""|]<br/> position = { line = 0<br/> │
│ column = 4 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JString "ab"</code></s... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 69.07ms - stdout ]─────────────────────────────────────────────────────────╮
│ JString "ab" │
│ JString │
│ Item: ab │
│ IsJString: True │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jString "\"ab\\tde\""
|> parserEqual (Success (JString "ab\tde"))
╭─[ 45.98ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JString "ab de", { lines = [ │
│ |""ab\tde""|]<br/> position = │
│ { line = 0<br/> column = 8 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JString "ab de", { lines = [ │
│ |""ab\tde""|]<br/> position = { line = 0<br/> │
│ column = 8 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JString &quo... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 54.05ms - stdout ]─────────────────────────────────────────────────────────╮
│ JString "ab de" │
│ JString │
│ Item: ab de │
│ IsJString: True │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jString "\"ab\\u263Ade\""
|> parserEqual (Success (JString "ab☺de"))
╭─[ 35.97ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JString "ab☺de", { lines = [ │
│ |""ab\u263Ade""|]<br/> │
│ position = { line = 0<br/> column = │
│ 12 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JString "ab☺de", { lines = [ │
│ |""ab\u263Ade""|]<br/> position = { line = 0<br/> │
│ column = 12 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JS... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 43.86ms - stdout ]─────────────────────────────────────────────────────────╮
│ JString "ab☺de" │
│ JString │
│ Item: ab☺de │
│ IsJString: True │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jNumber │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let jNumber =
let optSign = opt (pchar '-')
let zero = pstring "0"
let digitOneNine =
satisfy (fun ch -> Char.IsDigit ch && ch <> '0') "1-9"
let digit =
satisfy Char.IsDigit "digit"
let point = pchar '.'
let e = pchar 'e' <|> pchar 'E'
let optPlusMinus = opt (pchar '-' <|> pchar '+')
let nonZeroInt =
digitOneNine .>>. manyChars digit
|>> fun (first, rest) -> string first + rest
let intPart = zero <|> nonZeroInt
let fractionPart = point >>. manyChars1 digit
let exponentPart = e >>. optPlusMinus .>>. manyChars1 digit
let inline (|>?) opt f =
match opt with
| None -> ""
| Some x -> f x
let inline convertToJNumber (((optSign, intPart), fractionPart), expPart) =
let signStr =
optSign
|>? string
let fractionPartStr =
fractionPart
|>? (fun digits -> "." + digits)
let expPartStr =
expPart
|>? fun (optSign, digits) ->
let sign = optSign |>? string
"e" + sign + digits
(signStr + intPart + fractionPartStr + expPartStr)
|> float
|> JNumber
optSign .>>. intPart .>>. opt fractionPart .>>. opt exponentPart
|>> convertToJNumber
<?> "number"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
jValueRef <|
choice
[[
jNull
jBool
jString
jNumber
]]
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jNumber "123"
|> parserEqual (Success (JNumber 123.0))
╭─[ 74.73ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JNumber 123.0, { lines = [ │
│ |"123"|]<br/> position = { line = 0<br/> │
│ column = 3 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JNumber 123.0, { lines = [ │
│ |"123"|]<br/> position = { line = 0<br/> column = 3 │
│ } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JNumber │
│ 123.0</code></span></summary><div><table><thead><tr></tr></the... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 82.29ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber 123.0 │
│ JNumber │
│ Item: 123 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jNumber "-123"
|> parserEqual (Success (JNumber -123.0))
╭─[ 33.64ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JNumber -123.0, { lines = [ │
│ |"-123"|]<br/> position = { line = │
│ 0<br/> column = 4 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JNumber -123.0, { lines = [ │
│ |"-123"|]<br/> position = { line = 0<br/> column = │
│ 4 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JNumber │
│ -123.0</code></span></summary><div><table><thead><tr></t... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 42.22ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber -123.0 │
│ JNumber │
│ Item: -123 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jNumber "123.4"
|> parserEqual (Success (JNumber 123.4))
╭─[ 44.48ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JNumber 123.4, { lines = [ │
│ |"123.4"|]<br/> position = { line = │
│ 0<br/> column = 5 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JNumber 123.4, { lines = [ │
│ |"123.4"|]<br/> position = { line = 0<br/> column = │
│ 5 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JNumber │
│ 123.4</code></span></summary><div><table><thead><tr></tr><... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 51.81ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber 123.4 │
│ JNumber │
│ Item: 123.4 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jNumber "-123."
|> parserEqual (Success (JNumber -123.0))
╭─[ 34.46ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JNumber -123.0, { lines = [ │
│ |"-123."|]<br/> position = { line = │
│ 0<br/> column = 4 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JNumber -123.0, { lines = [ │
│ |"-123."|]<br/> position = { line = 0<br/> column = │
│ 4 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JNumber │
│ -123.0</code></span></summary><div><table><thead><tr><... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 42.09ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber -123.0 │
│ JNumber │
│ Item: -123 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jNumber "00.1"
|> parserEqual (Success (JNumber 0.0))
╭─[ 31.61ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JNumber 0.0, { lines = [ │
│ |"00.1"|]<br/> position = { line = 0<br/> │
│ column = 1 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JNumber 0.0, { lines = [ │
│ |"00.1"|]<br/> position = { line = 0<br/> column = │
│ 1 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JNumber │
│ 0.0</code></span></summary><div><table><thead><tr></tr></thead><tbod... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 39.22ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber 0.0 │
│ JNumber │
│ Item: 0 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let jNumber_ = jNumber .>> spaces1
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jNumber_ "123"
|> parserEqual (Success (JNumber 123.0))
╭─[ 35.84ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JNumber 123.0, { lines = [ │
│ |"123"|]<br/> position = { line = 1<br/> │
│ column = 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JNumber 123.0, { lines = [ │
│ |"123"|]<br/> position = { line = 1<br/> column = 0 │
│ } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JNumber │
│ 123.0</code></span></summary><div><table><thead><tr></tr></the... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 43.93ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber 123.0 │
│ JNumber │
│ Item: 123 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jNumber_ "-123"
|> parserEqual (Success (JNumber -123.0))
╭─[ 32.49ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JNumber -123.0, { lines = [ │
│ |"-123"|]<br/> position = { line = │
│ 1<br/> column = 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JNumber -123.0, { lines = [ │
│ |"-123"|]<br/> position = { line = 1<br/> column = │
│ 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JNumber │
│ -123.0</code></span></summary><div><table><thead><tr></t... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 40.46ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber -123.0 │
│ JNumber │
│ Item: -123 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jNumber_ "-123."
|> parserEqual (
Failure (
"number andThen many1 whitespace",
"Unexpected '.'",
{ currentLine = "-123."; line = 0; column = 4 }
)
)
╭─[ 23.82ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Failure<br/> ("number andThen many1 │
│ whitespace", "Unexpected '.'", { currentLine = │
│ "-123."<br/> │
│ line = 0<br/> │
│ column = 4 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div class="dni-plaintext"><pre>number andThen many1 │
│ whitespace</pre></div></td></tr><tr><td>Item2</td><td><div │
│ class="dni-plaintext"><pre>Unexpected │
│ '.'</pre></div></td></tr><tr><td>Item3</td><td><details │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{ │
│ currentLine = "... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 31.32ms - stdout ]─────────────────────────────────────────────────────────╮
│ Line:0 Col:4 Error parsing number andThen many1 whitespace │
│ -123. │
│ ^Unexpected '.' │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jNumber_ "123.4"
|> parserEqual (Success (JNumber 123.4))
╭─[ 32.27ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JNumber 123.4, { lines = [ │
│ |"123.4"|]<br/> position = { line = │
│ 1<br/> column = 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JNumber 123.4, { lines = [ │
│ |"123.4"|]<br/> position = { line = 1<br/> column = │
│ 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JNumber │
│ 123.4</code></span></summary><div><table><thead><tr></tr><... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 40.31ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber 123.4 │
│ JNumber │
│ Item: 123.4 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jNumber_ "00.4"
|> parserEqual (
Failure (
"number andThen many1 whitespace",
"Unexpected '0'",
{ currentLine = "00.4"; line = 0; column = 1 }
)
)
╭─[ 26.59ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Failure<br/> ("number andThen many1 │
│ whitespace", "Unexpected '0'", { currentLine = │
│ "00.4"<br/> │
│ line = 0<br/> │
│ column = 1 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div class="dni-plaintext"><pre>number andThen many1 │
│ whitespace</pre></div></td></tr><tr><td>Item2</td><td><div │
│ class="dni-plaintext"><pre>Unexpected │
│ '0'</pre></div></td></tr><tr><td>Item3</td><td><details │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{ │
│ currentLine = "0... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 33.97ms - stdout ]─────────────────────────────────────────────────────────╮
│ Line:0 Col:1 Error parsing number andThen many1 whitespace │
│ 00.4 │
│ ^Unexpected '0' │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jNumber_ "123e4"
|> parserEqual (Success (JNumber 1230000.0))
╭─[ 36.77ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JNumber 1230000.0, { lines = [ │
│ |"123e4"|]<br/> position = { line = │
│ 1<br/> column = 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JNumber 1230000.0, { lines = [ │
│ |"123e4"|]<br/> position = { line = 1<br/> column = │
│ 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JNumber │
│ 1230000.0</code></span></summary><div><tab... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 44.74ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber 1230000.0 │
│ JNumber │
│ Item: 1230000 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jNumber_ "123.4e5"
|> parserEqual (Success (JNumber 12340000.0))
╭─[ 32.20ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JNumber 12340000.0, { lines = [ │
│ |"123.4e5"|]<br/> position = { line │
│ = 1<br/> column = 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JNumber 12340000.0, { lines = [ │
│ |"123.4e5"|]<br/> position = { line = 1<br/> column │
│ = 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JNumber 12340000.0</code></span></summary>... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 39.94ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber 12340000.0 │
│ JNumber │
│ Item: 12340000 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jNumber_ "123.4e-5"
|> parserEqual (Success (JNumber 0.001234))
╭─[ 34.19ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JNumber 0.001234, { lines = [ │
│ |"123.4e-5"|]<br/> position = { line = │
│ 1<br/> column = 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JNumber 0.001234, { lines = [ │
│ |"123.4e-5"|]<br/> position = { line = 1<br/> │
│ column = 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JNumber │
│ 0.001234</code></span></summary><div><ta... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 42.03ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber 0.001234 │
│ JNumber │
│ Item: 0.001234 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jArray │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let jArray =
let left = pchar '[[' .>> spaces
let right = pchar ']]' .>> spaces
let comma = pchar ',' .>> spaces
let value = jValue .>> spaces
let values = sepBy value comma
between left values right
|>> JArray
<?> "array"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
jValueRef <|
choice
[[
jNull
jBool
jString
jNumber
jArray
]]
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jArray "[[ 1, 2 ]]"
|> parserEqual (Success (JArray [[ JNumber 1.0; JNumber 2.0 ]]))
╭─[ 79.78ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JArray [JNumber 1.0; JNumber 2.0], { │
│ lines = [|"[ 1, 2 ]"|]<br/> │
│ position = { line = 1<br/> │
│ column = 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JArray [JNumber 1.0; JNumber 2.0], { lines = [ │
│ |"[ 1, 2 ]"|]<br/> position = { line = 1<br/> │
│ column = 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span class="d... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 87.45ms - stdout ]─────────────────────────────────────────────────────────╮
│ JArray [JNumber 1.0; JNumber 2.0] │
│ JArray │
│ Item: FSharpList<JValue> │
│ - Item: 1 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Item: 2 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: True │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jArray "[[ 1, 2, ]]"
|> parserEqual (
Failure (
"array",
"Unexpected ','",
{ currentLine = "[[ 1, 2, ]]"; line = 0; column = 6 }
)
)
╭─[ 31.35ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Failure ("array", "Unexpected │
│ ','", { currentLine = "[ 1, 2, ]"<br/> │
│ line = 0<br/> column = 6 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div │
│ class="dni-plaintext"><pre>array</pre></div></td></tr><tr><td>Item2</td><td> │
│ <div class="dni-plaintext"><pre>Unexpected │
│ ','</pre></div></td></tr><tr><td>Item3</td><td><details │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{ │
│ currentLine = "[ 1, 2, ]"<br/> line = 0<br/> column = 6 │
│ }</code></span></summary><div><table><thead><t... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 40.79ms - stdout ]─────────────────────────────────────────────────────────╮
│ Line:0 Col:6 Error parsing array │
│ [ 1, 2, ] │
│ ^Unexpected ',' │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jObject │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let jObject =
let left = spaces >>. pchar '{' .>> spaces
let right = pchar '}' .>> spaces
let colon = pchar ':' .>> spaces
let comma = pchar ',' .>> spaces
let key = quotedString .>> spaces
let value = jValue .>> spaces
let keyValue = (key .>> colon) .>>. value
let keyValues = sepBy keyValue comma
between left keyValues right
|>> Map.ofList
|>> JObject
<?> "object"
── fsharp ──────────────────────────────────────────────────────────────────────
jValueRef <|
choice
[[
jNull
jBool
jString
jNumber
jArray
jObject
]]
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jObject """{ "a":1, "b" : 2 }"""
|> parserEqual (
Success (
JObject (
Map.ofList [[
"a", JNumber 1.0
"b", JNumber 2.0
]]
)
)
)
╭─[ 88.20ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success<br/> (JObject (map [("a", │
│ JNumber 1.0); ("b", JNumber 2.0)]),<br/> { lines = [|"{ │
│ "a":1, "b" : 2 }"|]<br/> position = { line = │
│ 1<br/> column = 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JObject (map [("a", JNumber 1.0); │
│ ("b", JNumber 2.0)]), { lines = [|"{ "a":1, │
│ "b" : 2 }"|]<br/> position = { line = 1<br/> │
│ column = 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbod... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 96.58ms - stdout ]─────────────────────────────────────────────────────────╮
│ JObject (map [("a", JNumber 1.0); ("b", JNumber 2.0)]) │
│ JObject │
│ Item: FSharpMap<String,JValue> │
│ - Key: a │
│ Value: JNumber │
│ Item: 1 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Key: b │
│ Value: JNumber │
│ Item: 2 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: True │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jObject """{ "a":1, "b" : 2, }"""
|> parserEqual (
Failure (
"object",
"Unexpected ','",
{ currentLine = """{ "a":1, "b" : 2, }"""; line = 0; column = 18 }
)
)
╭─[ 32.79ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Failure ("object", "Unexpected │
│ ','", { currentLine = "{ "a":1, "b" : │
│ 2, }"<br/> line = 0<br/> │
│ column = 18 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div │
│ class="dni-plaintext"><pre>object</pre></div></td></tr><tr><td>Item2</td><td │
│ ><div class="dni-plaintext"><pre>Unexpected │
│ ','</pre></div></td></tr><tr><td>Item3</td><td><details │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{ │
│ currentLine = "{ "a":1, "b" : 2, }"<br/> │
│ lin... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 40.39ms - stdout ]─────────────────────────────────────────────────────────╮
│ Line:0 Col:18 Error parsing object │
│ { "a":1, "b" : 2, } │
│ ^Unexpected ',' │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jValue │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let example1 = """{
"name" : "Scott",
"isMale" : true,
"bday" : {"year":2001, "month":12, "day":25 },
"favouriteColors" : [["blue", "green"]],
"emptyArray" : [[]],
"emptyObject" : {}
}"""
run jValue example1
|> parserEqual (
Success (
JObject (
Map.ofList [[
"name", JString "Scott"
"isMale", JBool true
"bday", JObject (
Map.ofList [[
"year", JNumber 2001.0
"month", JNumber 12.0
"day", JNumber 25.0
]]
)
"favouriteColors", JArray [[ JString "blue"; JString "green" ]]
"emptyArray", JArray [[]]
"emptyObject", JObject Map.empty
]]
)
)
)
╭─[ 159.09ms - return value ]──────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success<br/> (JObject<br/> (map<br/> │
│ [("bday",<br/> JObject<br/> (map<br/> │
│ [("day", JNumber 25.0); ("month", JNumber 12.0);<br/> │
│ ("year", JNumber 2001.0)])); ("emptyArray", JArray [ │
│ ]);<br/> ("emptyObject", JObject (map []));<br/> │
│ ("favouriteColors", │
│ ...</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><t │
│ d>Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JObject<br/> (map<br/> [ │
│ ("bday",<br/> JObject<br/> (map<br/> [ │
│ (... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 167.29ms - stdout ]────────────────────────────────────────────────────────╮
│ JObject │
│ (map │
│ [("bday", │
│ JObject │
│ (map │
│ [("day", JNumber 25.0); ("month", JNumber 12.0); │
│ ("year", JNumber 2001.0)])); ("emptyArray", JArray []); │
│ ("emptyObject", JObject (map [])); │
│ ("favouriteColors", JArray [JString "blue"; JString "green"]); │
│ ("isMale", JBool true); ("name", JString "Scott")]) │
│ JObject │
│ Item: FSharpMap<String,JValue> │
│ - Key: bday │
│ Value: JObject │
│ Item: FSharpMap<String,JValue> │
│ - Key: day │
│ Value: JNumber 25.0 │
│ - Key: month │
│ Value: JNumber 12.0 │
│ - Key: year │
│ Value: JNumber 2001.0 │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: True │
│ IsJArray: False │
│ - Key: emptyArray │
│ Value: JArray │
│ Item: FSharpList<JValue> │
│ │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: True │
│ - Key: emptyObject │
│ Value: JObject │
│ Item: FSharpMap<String,JValue> │
│ │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: True │
│ IsJArray: False │
│ - Key: favouriteColors │
│ Value: JArray │
│ Item: FSharpList<JValue> │
│ - Item: blue │
│ IsJString: True │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Item: green │
│ IsJString: True │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: True │
│ - Key: isMale │
│ Value: JBool │
│ Item: True │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: True │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Key: name │
│ Value: JString │
│ Item: Scott │
│ IsJString: True │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: True │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let example2 = """{"widget": {
"debug": "on",
"window": {
"title": "Sample Konfabulator Widget",
"name": "main_window",
"width": 500,
"height": 500
},
"image": {
"src": "Images/Sun.png",
"name": "sun1",
"hOffset": 250,
"vOffset": 250,
"alignment": "center"
},
"text": {
"data": "Click Here",
"size": 36,
"style": "bold",
"name": "text1",
"hOffset": 250,
"vOffset": 100,
"alignment": "center",
"onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
}
}}"""
run jValue example2
|> parserEqual (
Success (
JObject (
Map.ofList [[
"widget", JObject (
Map.ofList [[
"debug", JString "on"
"window", JObject (
Map.ofList [[
"title", JString "Sample Konfabulator Widget"
"name", JString "main_window"
"width", JNumber 500.0
"height", JNumber 500.0
]]
)
"image", JObject (
Map.ofList [[
"src", JString "Images/Sun.png"
"name", JString "sun1"
"hOffset", JNumber 250.0
"vOffset", JNumber 250.0
"alignment", JString "center"
]]
)
"text", JObject (
Map.ofList [[
"data", JString "Click Here"
"size", JNumber 36.0
"style", JString "bold"
"name", JString "text1"
"hOffset", JNumber 250.0
"vOffset", JNumber 100.0
"alignment", JString "center"
"onMouseUp", JString "sun1.opacity =
(sun1.opacity / 100) * 90;"
]]
)
]]
)
]]
)
)
)
╭─[ 334.97ms - return value ]──────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success<br/> (JObject<br/> (map<br/> │
│ [("widget",<br/> JObject<br/> (map<br/> │
│ [("debug", JString "on");<br/> │
│ ("image",<br/> JObject<br/> │
│ (map<br/> [("alignment", JString │
│ "center");<br/> │
│ ("hOffset"...</code></span></summary><div><table><thead><tr></tr>< │
│ /thead><tbody><tr><td>Item</td><td><details │
│ class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JObject<br/> (map<br/> [ │
│ ("widget",<br/> JObject<br/> (map<br/> ... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 342.83ms - stdout ]────────────────────────────────────────────────────────╮
│ JObject │
│ (map │
│ [("widget", │
│ JObject │
│ (map │
│ [("debug", JString "on"); │
│ ("image", │
│ JObject │
│ (map │
│ [("alignment", JString "center"); ("hOffset", JNumber │
│ 250.0); │
│ ("name", JString "sun1"); ("src", JString │
│ "Images/Sun.png"); │
│ ("vOffset", JNumber 250.0)])); │
│ ("text", │
│ JObject │
│ (map │
│ [("alignment", JString "center"); │
│ ("data", JString "Click Here"); ("hOffset", JNumber │
│ 250.0); │
│ ("name", JString "text1"); │
│ ("onMouseUp", │
│ JString "sun1.opacity = (sun1.opacity / 100) * 90;"); │
│ ("size", JNumber 36.0); ("style", JString "bold"); │
│ ("vOffset", JNumber 100.0)])); │
│ ("window", │
│ JObject │
│ (map │
│ [("height", JNumber 500.0); ("name", JString │
│ "main_window"); │
│ ("title", JString "Sample Konfabulator Widget"); │
│ ("width", JNumber 500.0)]))]))]) │
│ JObject │
│ Item: FSharpMap<String,JValue> │
│ - Key: widget │
│ Value: JObject │
│ Item: FSharpMap<String,JValue> │
│ - Key: debug │
│ Value: JString "on" │
│ - Key: image │
│ Value: JObject │
│ (map │
│ [("alignment", JString "center"); ("hOffset", JNumber 250.0); │
│ ("name", JString "sun1"); ("src", JString "Images/Sun.png"); │
│ ("vOffset", JNumber 250.0)]) │
│ - Key: text │
│ Value: JObject │
│ (map │
│ [("alignment", JString "center"); ("data", JString "Click Here"); │
│ ("hOffset", JNumber 250.0); ("name", JString "text1"); │
│ ("onMouseUp", JString "sun1.opacity = (sun1.opacity / 100) * 90;"); │
│ ("size", JNumber 36.0); ("style", JString "bold"); │
│ ("vOffset", JNumber 100.0)]) │
│ - Key: window │
│ Value: JObject │
│ (map │
│ [("height", JNumber 500.0); ("name", JString "main_window"); │
│ ("title", JString "Sample Konfabulator Widget"); ("width", JNumber │
│ 500.0)]) │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: True │
│ IsJArray: False │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: True │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let example3 = """{
"string": "Hello, \"World\"!",
"escapedString": "This string contains \\/\\\\\\b\\f\\n\\r\\t\\\"\\'",
"number": 42,
"scientificNumber": 3.14e-10,
"boolean": true,
"nullValue": null,
"array": [[1, 2, 3, 4, 5]],
"unicodeString1": "프리마",
"unicodeString2": "\u0048\u0065\u006C\u006C\u006F,
\u0022\u0057\u006F\u0072\u006C\u0064\u0022!",
"specialCharacters": "!@#$%^&*()",
"emptyArray": [[]],
"emptyObject": {},
"nestedArrays": [[[[1, 2, 3]], [[4, 5, 6]]]],
"object": {
"nestedString": "Nested Value",
"nestedNumber": 3.14,
"nestedBoolean": false,
"nestedNull": null,
"nestedArray": [["a", "b", "c"]],
"nestedObject": {
"nestedProperty": "Nested Object Value"
}
},
"nestedObjects": [[
{"name": "Alice", "age": 25},
{"name": "Bob", "age": 30}
]]
}"""
run jValue example3
|> parserEqual (
Success (
JObject (
Map.ofList [[
"string", JString @"Hello, ""World""!"
"escapedString", JString @"This string contains
\/\\\b\f\n\r\t\""\'"
"number", JNumber 42.0
"scientificNumber", JNumber 3.14e-10
"boolean", JBool true
"nullValue", JNull
"array", JArray [[
JNumber 1.0; JNumber 2.0; JNumber 3.0; JNumber 4.0; JNumber
5.0
]]
"unicodeString1", JString "프리마"
"unicodeString2", JString @"Hello, ""World""!"
"specialCharacters", JString "!@#$%^&*()"
"emptyArray", JArray [[]]
"emptyObject", JObject Map.empty
"nestedArrays", JArray [[
JArray [[ JNumber 1.0; JNumber 2.0; JNumber 3.0 ]]
JArray [[ JNumber 4.0; JNumber 5.0; JNumber 6.0 ]]
]]
"object", JObject (
Map.ofList [[
"nestedString", JString "Nested Value"
"nestedNumber", JNumber 3.14
"nestedBoolean", JBool false
"nestedNull", JNull
"nestedArray", JArray [[JString "a"; JString "b";
JString "c"]]
"nestedObject", JObject (
Map.ofList [[
"nestedProperty", JString "Nested Object Value"
]]
)
]]
)
"nestedObjects", JArray [[
JObject (Map.ofList [[ "name", JString "Alice"; "age", JNumber
25.0 ]])
JObject (Map.ofList [[ "name", JString "Bob"; "age", JNumber
30.0 ]])
]]
]]
)
)
)
╭─[ 459.43ms - return value ]──────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success<br/> (JObject<br/> (map<br/> │
│ [("array",<br/> JArray<br/> [JNumber 1.0; │
│ JNumber 2.0; JNumber 3.0; JNumber 4.0; JNumber 5.0]);<br/> │
│ ("boolean", JBool true); ("emptyArray", JArray []);<br/> │
│ ("emptyObject", JObject (map []));<br/> │
│ ("escapedString", JString "This │
│ s...</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr>< │
│ td>Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JObject<br/> (map<br/> [ │
│ ("array",<br/> JArray [JNumber 1.0; JNumber 2.0; JNumber │
│ 3.0; JNumber 4.0; J... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 468.32ms - stdout ]────────────────────────────────────────────────────────╮
│ JObject │
│ (map │
│ [("array", │
│ JArray [JNumber 1.0; JNumber 2.0; JNumber 3.0; JNumber 4.0; JNumber │
│ 5.0]); │
│ ("boolean", JBool true); ("emptyArray", JArray []); │
│ ("emptyObject", JObject (map [])); │
│ ("escapedString", JString "This string contains \/\\\b\f\n\r\t\"\'"); │
│ ("nestedArrays", │
│ JArray │
│ [JArray [JNumber 1.0; JNumber 2.0; JNumber 3.0]; │
│ JArray [JNumber 4.0; JNumber 5.0; JNumber 6.0]]); │
│ ("nestedObjects", │
│ JArray │
│ [JObject (map [("age", JNumber 25.0); ("name", JString "Alice")]); │
│ JObject (map [("age", JNumber 30.0); ("name", JString "Bob")])]); │
│ ("nullValue", JNull); ("number", JNumber 42.0); ...]) │
│ JObject │
│ Item: FSharpMap<String,JValue> │
│ - Key: array │
│ Value: JArray │
│ Item: FSharpList<JValue> │
│ - Item: 1 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Item: 2 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Item: 3 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Item: 4 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Item: 5 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: True │
│ - Key: boolean │
│ Value: JBool │
│ Item: True │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: True │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Key: emptyArray │
│ Value: JArray │
│ Item: FSharpList<JValue> │
│ │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: True │
│ - Key: emptyObject │
│ Value: JObject │
│ Item: FSharpMap<String,JValue> │
│ │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: True │
│ IsJArray: False │
│ - Key: escapedString │
│ Value: JString │
│ Item: This string contains \/\\\b\f\n\r\t\"\' │
│ IsJString: True │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Key: nestedArrays │
│ Value: JArray │
│ Item: FSharpList<JValue> │
│ - Item: [ JNumber 1.0, JNumber 2.0, JNumber 3.0 ] │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: True │
│ - Item: [ JNumber 4.0, JNumber 5.0, JNumber 6.0 ] │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: True │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: True │
│ - Key: nestedObjects │
│ Value: JArray │
│ Item: FSharpList<JValue> │
│ - Item: [ [age, JNumber 25.0], [name, JString "Alice"] ] │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: True │
│ IsJArray: False │
│ - Item: [ [age, JNumber 30.0], [name, JString "Bob"] ] │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: True │
│ IsJArray: False │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: True │
│ - Key: nullValue │
│ Value: JValue │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: True │
│ IsJObject: False │
│ IsJArray: False │
│ - Key: number │
│ Value: JNumber │
│ Item: 42 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Key: object │
│ Value: JObject │
│ Item: FSharpMap<String,JValue> │
│ - Key: nestedArray │
│ Value: JArray [JString "a"; JString "b"; JString "c"] │
│ - Key: nestedBoolean │
│ Value: JBool false │
│ - Key: nestedNull │
│ Value: JNull │
│ - Key: nestedNumber │
│ Value: JNumber 3.14 │
│ - Key: nestedObject │
│ Value: JObject (map [("nestedProperty", JString "Nested │
│ Object Value")]) │
│ - Key: nestedString │
│ Value: JString "Nested Value" │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: True │
│ IsJArray: False │
│ - Key: scientificNumber │
│ Value: JNumber │
│ Item: 3.14E-10 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Key: specialCharacters │
│ Value: JString │
│ Item: !@#$%^&*() │
│ IsJString: True │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Key: string │
│ Value: JString │
│ Item: Hello, "World"! │
│ IsJString: True │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Key: unicodeString1 │
│ Value: JString │
│ Item: 프리마 │
│ IsJString: True │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Key: unicodeString2 │
│ Value: JString │
│ Item: Hello, "World"! │
│ IsJString: True │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: True │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
[NbConvertApp] Converting notebook JsonParser.dib.ipynb to html
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
validate(nb)
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
return _pygments_highlight(
[NbConvertApp] Writing 545759 bytes to JsonParser.dib.html
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # Parser (Polyglot) │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
spNetCore.Html.Abstractions.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
Formatter.ListExpansionLimit <- 100
── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
type AssertExceptionFormatter (ex) =
member _.Text =
ex.ToString()
.Replace("32m", "<span style=\"color: green;\">")
.Replace("36m", "</span>")
.Replace("31m", "<span style=\"color: red;\">")
.Replace("\n", "<br/>\n")
Formatter.Register<AssertExceptionFormatter> ((fun (x :
AssertExceptionFormatter) -> x.Text), "text/html")
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __expect fn log expected actual =
if log then printfn $"{actual.ToDisplayString ()}"
try
"Testing.__expect" |> fn actual expected
with :? Expecto.AssertException as ex ->
AssertExceptionFormatter(ex).Display () |> ignore
failwith (ex.GetType().FullName)
let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual
let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual
let inline __isGreaterThan log expected actual = __expect
Expecto.Expect.isGreaterThan log ex...
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __isBetween log a b actual =
let inline isBetween actual (a, b) _ =
__isGreaterThanOrEqual log a actual
__isLessThanOrEqual log b actual
__expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/sm.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/spiral/file_system.fsx
#!import ../../lib/spiral/lib.fsx
#!import ../../lib/fsharp/Common.fs
── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
| US0_0
| US0_1
and [[<Struct>]] US1 =
| US1_0
| US1_1 of f1_0 : US0
let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
v0
and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
let mutable result = None
#if FABLE_COMPILER_RUST && !WASM
let v1 : (unit -> unit) = method0(v0)
let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v1()" }
v2
#endif
#if FABLE_COMPILER_RUST && WASM
let v3 : (unit -> unit) = method0(v0)
let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v3()" }
v4
#endif
#if !FABLE_COMPILER && !F...
── fsharp - import ─────────────────────────────────────────────────────────────
type Mut0 = {mutable l0 : int32; mutable l1 : string}
and Mut1 = {mutable l0 : int32}
let rec closure1 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.Contains v0
v2
and closure0 () (v0 : string) : (string -> bool) =
closure1(v0)
and closure3 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.EndsWith v0
v2
and closure2 () (v0 : string) : (string -> bool) =
closure3(v0)
and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
let v3 : string = v2.PadLeft (v0, v1)
v3
and closure5 (v0 : int32) (v1 : char) : (string -> string) =
closure6(v0, v1)
and closure4 () (v0 : int32) : (char -> (string -> string)) =
closure5(v0)
and closure8 (v0 : int32) (v1 : string) : string =
let v2 : stri...
── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
let v2 : (System.Guid -> string) = _.ToString()
let v3 : string = v2 v0
let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
v5
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
let v3 : string = v2.Replace (v0, v1)
v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
closure3()
and closure2 (...
── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
| US0_0
| US0_1
| US0_2
and [[<Struct>]] US1 =
| US1_0 of f0_0 : US0
| US1_1 of f1_0 : US0
let rec closure0 () () : string =
let mutable result = None
#if FABLE_COMPILER_RUST && !WASM
let v0 : US0 = US0_1
let v1 : US1 = US1_1(v0)
let v2 : string = $"create_temp_directory_name target: {v1}"
let v3 : string = failwith<string> v2
v3
#endif
#if FABLE_COMPILER_RUST && WASM
let v4 : US0 = US0_2
let v5 : US1 = US1_1(v4)
let v6 : string = $"create_temp_directory_name target: {v5}"
let v7 : string = failwith<string> v6
v7
#endif
#if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM
let v8 : string = System.Reflection.Assembly.GetEntryAssembly()...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !WASM && !FABLE_COMPILER
module Date_time =
let new_guid_from_date_time x =
#if !INTERACTIVE
Date_time.new_guid_from_date_time x
#else
new_guid_from_date_time x
#endif
#endif
module Sm =
let concat x =
#if !INTERACTIVE
Sm.concat x
#else
concat x
#endif
let contains x =
#if !INTERACTIVE
Sm.contains x
#else
contains x
#endif
let ellipsis x =
#if !INTERACTIVE
Sm.ellipsis x
#else
ellipsis x
#endif
let ellipsis_end x =
#if !INTERACTIVE
Sm.ellipsis_end x
#else
ellipsis_end x
#endif
let ends_with x =
#if !INTERACTIVE
Sm.ends_with x
#else
ends_with x
#endif
let format_exception x =
#if !INTERACTIVE
Sm.format_...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Common =
#if !INTERACTIVE
open Lib
#endif
let nl = System.Environment.NewLine
let q = @""""
let inline cons head tail = head :: tail
/// ## memoize
let inline memoize fn =
let result = lazy fn ()
fun () -> result.Value
/// ## TraceLevel
type TraceLevel =
| Verbose
| Debug
| Info
| Warning
| Critical
let inline getLocals () = ""
let mutable traceEnabled = true
let mutable traceCount = 0
let mutable traceLevel = Verbose
let mutable traceDump = false
let testTraceLevel level =
traceEnabled && level >= traceLevel
/// ## traceRaw
let rec traceRaw level fn =
...
── fsharp ──────────────────────────────────────────────────────────────────────
open Common
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### TextInput │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
type Position =
{
line : int
column : int
}
── fsharp ──────────────────────────────────────────────────────────────────────
let initialPos = { line = 0; column = 0 }
── fsharp ──────────────────────────────────────────────────────────────────────
let inline incrCol (pos : Position) =
{ pos with column = pos.column + 1 }
── fsharp ──────────────────────────────────────────────────────────────────────
let inline incrLine pos =
{ line = pos.line + 1; column = 0 }
── fsharp ──────────────────────────────────────────────────────────────────────
type InputState =
{
lines : string[[]]
position : Position
}
── fsharp ──────────────────────────────────────────────────────────────────────
let inline fromStr str =
{
lines =
if str |> String.IsNullOrEmpty
then [[||]]
else str |> Sm.split_string [[| "\r\n"; "\n" |]]
position = initialPos
}
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
fromStr "" |> _assertEqual {
lines = [[||]]
position = { line = 0; column = 0 }
}
╭─[ 43.54ms - stdout ]─────────────────────────────────────────────────────────╮
│ InputState │
│ lines: [ ] │
│ position: Position │
│ line: 0 │
│ column: 0 │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
fromStr "Hello \n World" |> _assertEqual {
lines = [[| "Hello "; " World" |]]
position = { line = 0; column = 0 }
}
╭─[ 22.06ms - stdout ]─────────────────────────────────────────────────────────╮
│ InputState │
│ lines: [ Hello , World ] │
│ position: Position │
│ line: 0 │
│ column: 0 │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline currentLine inputState =
let linePos = inputState.position.line
if linePos < inputState.lines.Length
then inputState.lines.[[linePos]]
else "end of file"
── fsharp ──────────────────────────────────────────────────────────────────────
let inline nextChar input =
let linePos = input.position.line
let colPos = input.position.column
if linePos >= input.lines.Length
then input, None
else
let currentLine = currentLine input
if colPos < currentLine.Length then
let char = currentLine.[[colPos]]
let newPos = incrCol input.position
let newState = { input with position = newPos }
newState, Some char
else
let char = '\n'
let newPos = incrLine input.position
let newState = { input with position = newPos }
newState, Some char
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let newInput, charOpt = fromStr "Hello World" |> nextChar
newInput |> _assertEqual {
lines = [[| "Hello World" |]]
position = { line = 0; column = 1 }
}
charOpt |> _assertEqual (Some 'H')
╭─[ 40.43ms - stdout ]─────────────────────────────────────────────────────────╮
│ InputState │
│ lines: [ Hello World ] │
│ position: Position │
│ line: 0 │
│ column: 1 │
│ FSharpOption<Char> │
│ Value: H │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let newInput, charOpt = fromStr "Hello\n\nWorld" |> nextChar
newInput |> _assertEqual {
lines = [[| "Hello"; ""; "World" |]]
position = { line = 0; column = 1 }
}
charOpt |> _assertEqual (Some 'H')
╭─[ 31.16ms - stdout ]─────────────────────────────────────────────────────────╮
│ InputState │
│ lines: [ Hello, , World ] │
│ position: Position │
│ line: 0 │
│ column: 1 │
│ FSharpOption<Char> │
│ Value: H │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### Parser │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
type Input = InputState
type ParserLabel = string
type ParserError = string
type ParserPosition =
{
currentLine : string
line : int
column : int
}
type ParseResult<'a> =
| Success of 'a
| Failure of ParserLabel * ParserError * ParserPosition
type Parser<'a> =
{
label : ParserLabel
parseFn : Input -> ParseResult<'a * Input>
}
── fsharp ──────────────────────────────────────────────────────────────────────
let inline printResult result =
match result with
| Success (value, input) ->
printfn $"%A{value}"
| Failure (label, error, parserPos) ->
let errorLine = parserPos.currentLine
let colPos = parserPos.column
let linePos = parserPos.line
let failureCaret = $"{' ' |> string |> String.replicate colPos}^{error}"
printfn $"Line:%i{linePos} Col:%i{colPos} Error parsing
%s{label}\n%s{errorLine}\n%s{failureCaret}"
── fsharp ──────────────────────────────────────────────────────────────────────
let inline runOnInput parser input =
parser.parseFn input
── fsharp ──────────────────────────────────────────────────────────────────────
let inline run parser inputStr =
runOnInput parser (fromStr inputStr)
── fsharp ──────────────────────────────────────────────────────────────────────
let inline parserPositionFromInputState (inputState : Input) =
{
currentLine = currentLine inputState
line = inputState.position.line
column = inputState.position.column
}
── fsharp ──────────────────────────────────────────────────────────────────────
let inline getLabel parser =
parser.label
── fsharp ──────────────────────────────────────────────────────────────────────
let inline setLabel parser newLabel =
{
label = newLabel
parseFn = fun input ->
match parser.parseFn input with
| Success s -> Success s
| Failure (oldLabel, err, pos) -> Failure (newLabel, err, pos)
}
── fsharp ──────────────────────────────────────────────────────────────────────
let (<?>) = setLabel
── fsharp ──────────────────────────────────────────────────────────────────────
let inline satisfy predicate label =
{
label = label
parseFn = fun input ->
let remainingInput, charOpt = nextChar input
match charOpt with
| None ->
let err = "No more input"
let pos = parserPositionFromInputState input
Failure (label, err, pos)
| Some first ->
if predicate first
then Success (first, remainingInput)
else
let err = $"Unexpected '%c{first}'"
let pos = parserPositionFromInputState input
Failure (label, err, pos)
}
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "Hello"
let parser = satisfy (fun c -> c = 'H') "H"
runOnInput parser input |> _assertEqual (
Success (
'H',
{
lines = [[| "Hello" |]]
position = { line = 0; column = 1 }
}
)
)
╭─[ 38.65ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - H │
│ - InputState │
│ lines: [ Hello ] │
│ position: Position │
│ line: 0 │
│ column: 1 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "World"
let parser = satisfy (fun c -> c = 'H') "H"
runOnInput parser input |> _assertEqual (
Failure (
"H",
"Unexpected 'W'",
{
currentLine = "World"
line = 0
column = 0
}
)
)
╭─[ 31.59ms - stdout ]─────────────────────────────────────────────────────────╮
│ Failure │
│ Item1: H │
│ Item2: Unexpected 'W' │
│ Item3: ParserPosition │
│ currentLine: World │
│ line: 0 │
│ column: 0 │
│ IsSuccess: False │
│ IsFailure: True │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline bindP f p =
{
label = "unknown"
parseFn = fun input ->
match runOnInput p input with
| Failure (label, err, pos) -> Failure (label, err, pos)
| Success (value1, remainingInput) -> runOnInput (f value1)
remainingInput
}
── fsharp ──────────────────────────────────────────────────────────────────────
let inline (>>=) p f = bindP f p
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "Hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = parser >>= fun c -> satisfy (fun c -> c = 'e') "e"
runOnInput parser2 input |> _assertEqual (
Success (
'e',
{
lines = [[| "Hello" |]]
position = { line = 0; column = 2 }
}
)
)
╭─[ 37.65ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - e │
│ - InputState │
│ lines: [ Hello ] │
│ position: Position │
│ line: 0 │
│ column: 2 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "World"
let parser = satisfy (fun c -> c = 'W') "W"
let parser2 = parser >>= fun c -> satisfy (fun c -> c = 'e') "e"
runOnInput parser2 input |> _assertEqual (
Failure (
"e",
"Unexpected 'o'",
{
currentLine = "World"
line = 0
column = 1
}
)
)
╭─[ 37.03ms - stdout ]─────────────────────────────────────────────────────────╮
│ Failure │
│ Item1: e │
│ Item2: Unexpected 'o' │
│ Item3: ParserPosition │
│ currentLine: World │
│ line: 0 │
│ column: 1 │
│ IsSuccess: False │
│ IsFailure: True │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline returnP x =
{
label = $"%A{x}"
parseFn = fun input -> Success (x, input)
}
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "Hello"
let parser = returnP "Hello"
runOnInput parser input |> _assertEqual (
Success (
"Hello",
{
lines = [[| "Hello" |]]
position = { line = 0; column = 0 }
}
)
)
╭─[ 33.50ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - Hello │
│ - InputState │
│ lines: [ Hello ] │
│ position: Position │
│ line: 0 │
│ column: 0 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline mapP f =
bindP (f >> returnP)
── fsharp ──────────────────────────────────────────────────────────────────────
let (<!>) = mapP
── fsharp ──────────────────────────────────────────────────────────────────────
let inline (|>>) x f = f <!> x
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "Hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = parser |>> string
runOnInput parser2 input |> _assertEqual (
Success (
"H",
{
lines = [[| "Hello" |]]
position = { line = 0; column = 1 }
}
)
)
╭─[ 31.38ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - H │
│ - InputState │
│ lines: [ Hello ] │
│ position: Position │
│ line: 0 │
│ column: 1 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline applyP fP xP =
fP >>=
fun f ->
xP >>=
fun x ->
returnP (f x)
── fsharp ──────────────────────────────────────────────────────────────────────
let (<*>) = applyP
── fsharp ──────────────────────────────────────────────────────────────────────
let inline lift2 f xP yP =
returnP f <*> xP <*> yP
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "Hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = satisfy (fun c -> c = 'e') "e"
let parser3 = lift2 (fun c1 c2 -> string c1 + string c2) parser parser2
runOnInput parser3 input |> _assertEqual (
Success (
"He",
{
lines = [[| "Hello" |]]
position = { line = 0; column = 2 }
}
)
)
╭─[ 60.92ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - He │
│ - InputState │
│ lines: [ Hello ] │
│ position: Position │
│ line: 0 │
│ column: 2 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline andThen p1 p2 =
p1 >>=
fun p1Result ->
p2 >>=
fun p2Result ->
returnP (p1Result, p2Result)
<?> $"{getLabel p1} andThen {getLabel p2}"
── fsharp ──────────────────────────────────────────────────────────────────────
let (.>>.) = andThen
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "Hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = satisfy (fun c -> c = 'e') "e"
let parser3 = parser .>>. parser2
runOnInput parser3 input |> _assertEqual (
Success (
('H', 'e'),
{
lines = [[| "Hello" |]]
position = { line = 0; column = 2 }
}
)
)
╭─[ 50.29ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - ( H, e ) │
│ - InputState │
│ lines: [ Hello ] │
│ position: Position │
│ line: 0 │
│ column: 2 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline orElse p1 p2 =
{
label = $"{getLabel p1} orElse {getLabel p2}"
parseFn = fun input ->
match runOnInput p1 input with
| Success _ as result -> result
| Failure _ -> runOnInput p2 input
}
── fsharp ──────────────────────────────────────────────────────────────────────
let (<|>) = orElse
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = satisfy (fun c -> c = 'h') "h"
let parser3 = parser <|> parser2
runOnInput parser3 input |> _assertEqual (
Success (
'h',
{
lines = [[| "hello" |]]
position = { line = 0; column = 1 }
}
)
)
╭─[ 40.58ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - h │
│ - InputState │
│ lines: [ hello ] │
│ position: Position │
│ line: 0 │
│ column: 1 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline choice listOfParsers =
listOfParsers |> List.reduce (<|>)
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = satisfy (fun c -> c = 'h') "h"
let parser3 = choice [[ parser; parser2 ]]
runOnInput parser3 input |> _assertEqual (
Success (
'h',
{
lines = [[| "hello" |]]
position = { line = 0; column = 1 }
}
)
)
╭─[ 38.70ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - h │
│ - InputState │
│ lines: [ hello ] │
│ position: Position │
│ line: 0 │
│ column: 1 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let rec sequence parserList =
match parserList with
| [[]] -> returnP [[]]
| head :: tail -> (lift2 cons) head (sequence tail)
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "Hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = satisfy (fun c -> c = 'e') "e"
let parser3 = sequence [[ parser; parser2 ]]
runOnInput parser3 input |> _assertEqual (
Success (
[[ 'H'; 'e' ]],
{
lines = [[| "Hello" |]]
position = { line = 0; column = 2 }
}
)
)
╭─[ 62.04ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - [ H, e ] │
│ - InputState │
│ lines: [ Hello ] │
│ position: Position │
│ line: 0 │
│ column: 2 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let rec parseZeroOrMore parser input =
match runOnInput parser input with
| Failure (_, _, _) ->
[[]], input
| Success (firstValue, inputAfterFirstParse) ->
let subsequentValues, remainingInput = parseZeroOrMore parser
inputAfterFirstParse
firstValue :: subsequentValues, remainingInput
── fsharp ──────────────────────────────────────────────────────────────────────
let inline many parser =
{
label = $"many {getLabel parser}"
parseFn = fun input -> Success (parseZeroOrMore parser input)
}
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = many parser
runOnInput parser2 input |> _assertEqual (
Success (
[[]],
{
lines = [[| "hello" |]]
position = { line = 0; column = 0 }
}
)
)
╭─[ 33.18ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - [ ] │
│ - InputState │
│ lines: [ hello ] │
│ position: Position │
│ line: 0 │
│ column: 0 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline many1 p =
p >>=
fun head ->
many p >>=
fun tail ->
returnP (head :: tail)
<?> $"many1 {getLabel p}"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = many1 parser
runOnInput parser2 input |> _assertEqual (
Failure (
"many1 H",
"Unexpected 'h'",
{
currentLine = "hello"
line = 0
column = 0
}
)
)
╭─[ 43.26ms - stdout ]─────────────────────────────────────────────────────────╮
│ Failure │
│ Item1: many1 H │
│ Item2: Unexpected 'h' │
│ Item3: ParserPosition │
│ currentLine: hello │
│ line: 0 │
│ column: 0 │
│ IsSuccess: False │
│ IsFailure: True │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline opt p =
let some = p |>> Some
let none = returnP None
(some <|> none)
<?> $"opt {getLabel p}"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = opt parser
runOnInput parser2 input |> _assertEqual (
Success (
None,
{
lines = [[| "hello" |]]
position = { line = 0; column = 0 }
}
)
)
╭─[ 51.34ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - <null> │
│ - InputState │
│ lines: [ hello ] │
│ position: Position │
│ line: 0 │
│ column: 0 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline (.>>) p1 p2 =
p1 .>>. p2
|> mapP fst
── fsharp ──────────────────────────────────────────────────────────────────────
let inline (>>.) p1 p2 =
p1 .>>. p2
|> mapP snd
── fsharp ──────────────────────────────────────────────────────────────────────
let inline between p1 p2 p3 =
p1 >>. p2 .>> p3
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "[[Hello]]"
let parser =
between
(satisfy (fun c -> c = '[[') "[[")
(many (satisfy (fun c -> [[ 'a' .. 'z' ]] @ [[ 'A' .. 'Z' ]] |>
List.contains c) "letter"))
(satisfy (fun c -> c = ']]') "]]")
runOnInput parser input |> _assertEqual (
Success (
[[ 'H'; 'e'; 'l'; 'l'; 'o' ]],
{
lines = [[| "[[Hello]]" |]]
position = { line = 0; column = 7 }
}
)
)
╭─[ 102.19ms - stdout ]────────────────────────────────────────────────────────╮
│ Success │
│ Item: - [ H, e, l, l, o ] │
│ - InputState │
│ lines: [ [Hello] ] │
│ position: Position │
│ line: 0 │
│ column: 7 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline sepBy1 p sep =
let sepThenP = sep >>. p
p .>>. many sepThenP
|>> fun (p, pList) -> p :: pList
── fsharp ──────────────────────────────────────────────────────────────────────
let inline sepBy p sep =
sepBy1 p sep <|> returnP [[]]
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "Hello,World"
let parser = sepBy (many (satisfy (fun c -> c <> ',') "not comma")) (satisfy
(fun c -> c = ',') "comma")
runOnInput parser input |> _assertEqual (
Success (
[[ [[ 'H'; 'e'; 'l'; 'l'; 'o' ]]; [[ 'W'; 'o'; 'r'; 'l'; 'd'; '\n' ]]
]],
{
lines = [[| "Hello,World" |]]
position = { line = 1; column = 0 }
}
)
)
╭─[ 95.50ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - FSharpList<FSharpList<Char>> │
│ [ H, e, l, l, o ] │
│ [ W, o, r, l, d, │
│ ] │
│ - InputState │
│ lines: [ Hello,World ] │
│ position: Position │
│ line: 1 │
│ column: 0 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline pchar charToMatch =
satisfy ((=) charToMatch) $"%c{charToMatch}"
── fsharp ──────────────────────────────────────────────────────────────────────
let inline anyOf listOfChars =
listOfChars
|> List.map pchar
|> choice
<?> $"anyOf %A{listOfChars}"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "Hello"
let parser = anyOf [[ 'H'; 'e'; 'l'; 'o' ]] |> many
runOnInput parser input |> _assertEqual (
Success (
[[ 'H'; 'e'; 'l'; 'l'; 'o' ]],
{
lines = [[| "Hello" |]]
position = { line = 0; column = 5 }
}
)
)
╭─[ 91.65ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - [ H, e, l, l, o ] │
│ - InputState │
│ lines: [ Hello ] │
│ position: Position │
│ line: 0 │
│ column: 5 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline charListToStr charList =
charList |> List.toArray |> String
── fsharp ──────────────────────────────────────────────────────────────────────
let inline manyChars cp =
many cp
|>> charListToStr
── fsharp ──────────────────────────────────────────────────────────────────────
let inline manyChars1 cp =
many1 cp
|>> charListToStr
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "Hello"
let parser = manyChars1 (anyOf [[ 'H'; 'e'; 'l'; 'o' ]])
runOnInput parser input |> _assertEqual (
Success (
"Hello",
{
lines = [[| "Hello" |]]
position = { line = 0; column = 5 }
}
)
)
╭─[ 107.28ms - stdout ]────────────────────────────────────────────────────────╮
│ Success │
│ Item: - Hello │
│ - InputState │
│ lines: [ Hello ] │
│ position: Position │
│ line: 0 │
│ column: 5 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline pstring str =
str
|> List.ofSeq
|> List.map pchar
|> sequence
|> mapP charListToStr
<?> str
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "Hello"
let parser = pstring "Hello"
runOnInput parser input |> _assertEqual (
Success (
"Hello",
{
lines = [[| "Hello" |]]
position = { line = 0; column = 5 }
}
)
)
╭─[ 55.37ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - Hello │
│ - InputState │
│ lines: [ Hello ] │
│ position: Position │
│ line: 0 │
│ column: 5 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let whitespaceChar =
satisfy Char.IsWhiteSpace "whitespace"
── fsharp ──────────────────────────────────────────────────────────────────────
let spaces = many whitespaceChar
── fsharp ──────────────────────────────────────────────────────────────────────
let spaces1 = many1 whitespaceChar
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr " Hello"
let parser = spaces1 .>>. pstring "Hello"
runOnInput parser input |> _assertEqual (
Success (
([[ ' '; ' ' ]], "Hello"),
{
lines = [[| " Hello" |]]
position = { line = 0; column = 7 }
}
)
)
╭─[ 57.58ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - - [ , ] │
│ - Hello │
│ - InputState │
│ lines: [ Hello ] │
│ position: Position │
│ line: 0 │
│ column: 7 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let digitChar =
satisfy Char.IsDigit "digit"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "Hello"
let parser = digitChar
runOnInput parser input |> _assertEqual (
Failure (
"digit",
"Unexpected 'H'",
{
currentLine = "Hello"
line = 0
column = 0
}
)
)
╭─[ 47.37ms - stdout ]─────────────────────────────────────────────────────────╮
│ Failure │
│ Item1: digit │
│ Item2: Unexpected 'H' │
│ Item3: ParserPosition │
│ currentLine: Hello │
│ line: 0 │
│ column: 0 │
│ IsSuccess: False │
│ IsFailure: True │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let pint =
let inline resultToInt (sign, digits) =
let i = int digits
match sign with
| Some ch -> -i
| None -> i
let digits = manyChars1 digitChar
opt (pchar '-') .>>. digits
|> mapP resultToInt
<?> "integer"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run pint "-123"
|> _assertEqual (
Success (
-123,
{
lines = [[| "-123" |]]
position = { line = 0; column = 4 }
}
)
)
╭─[ 31.09ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - -123 │
│ - InputState │
│ lines: [ -123 ] │
│ position: Position │
│ line: 0 │
│ column: 4 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let pfloat =
let inline resultToFloat (((sign, digits1), point), digits2) =
let fl = float $"{digits1}.{digits2}"
match sign with
| Some ch -> -fl
| None -> fl
let digits = manyChars1 digitChar
opt (pchar '-') .>>. digits .>>. pchar '.' .>>. digits
|> mapP resultToFloat
<?> "float"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run pfloat "-123.45"
|> _assertEqual (
Success (
-123.45,
{
lines = [[| "-123.45" |]]
position = { line = 0; column = 7 }
}
)
)
╭─[ 31.34ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - -123.45 │
│ - InputState │
│ lines: [ -123.45 ] │
│ position: Position │
│ line: 0 │
│ column: 7 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline createParserForwardedToRef<'a> () =
let mutable parserRef : Parser<'a> =
{
label = "unknown"
parseFn = fun _ -> failwith "unfixed forwarded parser"
}
let wrapperParser =
{ parserRef with
parseFn = fun input -> runOnInput parserRef input
}
wrapperParser, (fun v -> parserRef <- v)
── fsharp ──────────────────────────────────────────────────────────────────────
let inline (>>%) p x =
p
|>> fun _ -> x
[NbConvertApp] Converting notebook Parser.dib.ipynb to html
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
validate(nb)
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
return _pygments_highlight(
[NbConvertApp] Writing 415573 bytes to Parser.dib.html
00:00:00 #1 [Debug] writeDibCode / output: Fs / path: Parser.dib
00:00:00 #1 [Debug] writeDibCode / output: Fs / path: JsonParser.dib
00:00:00 #3 [Debug] parseDibCode / output: Fs / file: JsonParser.dib
00:00:00 #3 [Debug] parseDibCode / output: Fs / file: Parser.dib
In [ ]:
{ . "$ScriptDir/../apps/spiral/build.ps1" } | Invoke-Block
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # Supervisor (Polyglot) │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
spNetCore.Html.Abstractions.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
Formatter.ListExpansionLimit <- 100
── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
type AssertExceptionFormatter (ex) =
member _.Text =
ex.ToString()
.Replace("32m", "<span style=\"color: green;\">")
.Replace("36m", "</span>")
.Replace("31m", "<span style=\"color: red;\">")
.Replace("\n", "<br/>\n")
Formatter.Register<AssertExceptionFormatter> ((fun (x :
AssertExceptionFormatter) -> x.Text), "text/html")
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __expect fn log expected actual =
if log then printfn $"{actual.ToDisplayString ()}"
try
"Testing.__expect" |> fn actual expected
with :? Expecto.AssertException as ex ->
AssertExceptionFormatter(ex).Display () |> ignore
failwith (ex.GetType().FullName)
let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual
let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual
let inline __isGreaterThan log expected actual = __expect
Expecto.Expect.isGreaterThan log ex...
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __isBetween log a b actual =
let inline isBetween actual (a, b) _ =
__isGreaterThanOrEqual log a actual
__isLessThanOrEqual log b actual
__expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual
── fsharp ──────────────────────────────────────────────────────────────────────
#r
@"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
dard2.1/FSharp.Control.AsyncSeq.dll"
#r
@"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
0/System.Reactive.dll"
#r
@"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
netstandard2.0/System.Reactive.Linq.dll"
#r
@"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
#r
@"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
b/net6.0/System.CommandLine.dll"
#r
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.com
mon/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Common.dll"
#r
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.cli
ent/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Client.dll"
#r
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.common/7.0.0
/lib/net7.0/Microsoft.AspNetCore.SignalR.Common.dll"
#r
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client/7.0.0
/lib/net7.0/Microsoft.AspNetCore.SignalR.Client.dll"
#r
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client.core/
7.0.0/lib/net7.0/Microsoft.AspNetCore.SignalR.Client.Core.dll"
#r
@"../../../../../../../.nuget/packages/fsharp.json/0.4.1/lib/netstandard2.0/FSha
rp.Json.dll"
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/sm.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/spiral/file_system.fsx
#!import ../../lib/spiral/lib.fsx
#!import ../../lib/fsharp/Common.fs
#!import ../../lib/fsharp/CommonFSharp.fs
#!import ../../lib/fsharp/Threading.fs
#!import ../../lib/fsharp/Async.fs
#!import ../../lib/fsharp/AsyncSeq.fs
#!import ../../lib/fsharp/Networking.fs
#!import ../../lib/fsharp/Runtime.fs
#!import ../../lib/fsharp/FileSystem.fs
── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
| US0_0
| US0_1
and [[<Struct>]] US1 =
| US1_0
| US1_1 of f1_0 : US0
let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
v0
and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
let mutable result = None
#if FABLE_COMPILER_RUST && !WASM
let v1 : (unit -> unit) = method0(v0)
let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v1()" }
v2
#endif
#if FABLE_COMPILER_RUST && WASM
let v3 : (unit -> unit) = method0(v0)
let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v3()" }
v4
#endif
#if !FABLE_COMPILER && !F...
── fsharp - import ─────────────────────────────────────────────────────────────
type Mut0 = {mutable l0 : int32; mutable l1 : string}
and Mut1 = {mutable l0 : int32}
let rec closure1 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.Contains v0
v2
and closure0 () (v0 : string) : (string -> bool) =
closure1(v0)
and closure3 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.EndsWith v0
v2
and closure2 () (v0 : string) : (string -> bool) =
closure3(v0)
and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
let v3 : string = v2.PadLeft (v0, v1)
v3
and closure5 (v0 : int32) (v1 : char) : (string -> string) =
closure6(v0, v1)
and closure4 () (v0 : int32) : (char -> (string -> string)) =
closure5(v0)
and closure8 (v0 : int32) (v1 : string) : string =
let v2 : stri...
── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
let v2 : (System.Guid -> string) = _.ToString()
let v3 : string = v2 v0
let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
v5
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
let v3 : string = v2.Replace (v0, v1)
v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
closure3()
and closure2 (...
── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
| US0_0
| US0_1
| US0_2
and [[<Struct>]] US1 =
| US1_0 of f0_0 : US0
| US1_1 of f1_0 : US0
let rec closure0 () () : string =
let mutable result = None
#if FABLE_COMPILER_RUST && !WASM
let v0 : US0 = US0_1
let v1 : US1 = US1_1(v0)
let v2 : string = $"create_temp_directory_name target: {v1}"
let v3 : string = failwith<string> v2
v3
#endif
#if FABLE_COMPILER_RUST && WASM
let v4 : US0 = US0_2
let v5 : US1 = US1_1(v4)
let v6 : string = $"create_temp_directory_name target: {v5}"
let v7 : string = failwith<string> v6
v7
#endif
#if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM
let v8 : string = System.Reflection.Assembly.GetEntryAssembly()...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !WASM && !FABLE_COMPILER
module Date_time =
let new_guid_from_date_time x =
#if !INTERACTIVE
Date_time.new_guid_from_date_time x
#else
new_guid_from_date_time x
#endif
#endif
module Sm =
let concat x =
#if !INTERACTIVE
Sm.concat x
#else
concat x
#endif
let contains x =
#if !INTERACTIVE
Sm.contains x
#else
contains x
#endif
let ellipsis x =
#if !INTERACTIVE
Sm.ellipsis x
#else
ellipsis x
#endif
let ellipsis_end x =
#if !INTERACTIVE
Sm.ellipsis_end x
#else
ellipsis_end x
#endif
let ends_with x =
#if !INTERACTIVE
Sm.ends_with x
#else
ends_with x
#endif
let format_exception x =
#if !INTERACTIVE
Sm.format_...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Common =
#if !INTERACTIVE
open Lib
#endif
let nl = System.Environment.NewLine
let q = @""""
let inline cons head tail = head :: tail
/// ## memoize
let inline memoize fn =
let result = lazy fn ()
fun () -> result.Value
/// ## TraceLevel
type TraceLevel =
| Verbose
| Debug
| Info
| Warning
| Critical
let inline getLocals () = ""
let mutable traceEnabled = true
let mutable traceCount = 0
let mutable traceLevel = Verbose
let mutable traceDump = false
let testTraceLevel level =
traceEnabled && level >= traceLevel
/// ## traceRaw
let rec traceRaw level fn =
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module CommonFSharp =
open Common
/// ## getUnionCaseName
let inline getUnionCaseName<'T> (x: 'T) =
match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
| case, _ -> case.Name
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Threading =
open Common
/// ## newDisposableToken
let inline newDisposableToken (mergeToken:
System.Threading.CancellationToken option) =
let cts = new System.Threading.CancellationTokenSource ()
let cts =
match mergeToken with
| None -> cts
| Some mergeToken ->
System.Threading.CancellationTokenSource.CreateLinkedTokenSource
[[| cts.Token; mergeToken |]]
let disposable = new_disposable cts.Cancel
cts.Token, disposable
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Async =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## choice
let inline choice asyncs = async {
let e = Event<_> ()
use cts = new System.Threading.CancellationTokenSource ()
let fn =
asyncs
|> Seq.map (fun a -> async {
let! x = a
e.Trigger x
})
|> Async.Parallel
|> Async.Ignore
Async.Start (fn, cts.Token)
let! result = Async.AwaitEvent e.Publish
cts.Cancel ()
return result
}
/// ## map
let inline map fn a = async {
let! x = a
return fn x
}
/// ## catch
let inline catch a =
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module AsyncSeq =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## subscribeEvent
let inline subscribeEvent (event: IEvent<'H, 'A>) map =
let observable = System.Reactive.Linq.Observable.FromEventPattern<'H,
'A>(event.AddHandler, event.RemoveHandler)
System.Reactive.Linq.Observable.Select (observable, fun event -> map
event.EventArgs)
|> FSharp.Control.AsyncSeq.ofObservableBuffered
let subscribeToken (token : System.Threading.CancellationToken) =
let tcs = new System.Threading.Tasks.TaskCompletionSource ()
System.Action tcs.SetResult |> token.Register |> ignore
let start = System.DateTime.Now.Ticks
FSharp.Control.A...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Networking =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## testPortOpen
let inline testPortOpen port = async {
let! ct = Async.CancellationToken
use client = new System.Net.Sockets.TcpClient ()
try
do! client.ConnectAsync ("127.0.0.1", port, ct) |>
Async.awaitValueTaskUnit
return true
with ex ->
trace Verbose (fun () -> $"testPortOpen / ex: {ex |>
Sm.format_exception}") getLocals
return false
}
let inline testPortOpenTimeout timeout port = async {
let! result =
testPortOpen port
|> Async.runWithTimeoutAsync timeout
return
matc...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Runtime =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## isWindows
let isWindows =
fun () ->
System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
System.Runtime.InteropServices.OSPlatform.Windows
|> memoize
/// ## getExecutableSuffix
let inline getExecutableSuffix () =
if isWindows ()
then ".exe"
else ""
/// ## splitCommand
type private CommandParseStep =
| Start
| Path of quoted: bool
| Arguments
let splitCommand (command: string) =
let rec loop (path, args) chars step =
match chars, step with
| ('"' | '\'') ...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module FileSystem =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## Operators
module Operators =
let inline (</>) a b =
System.IO.Path.Combine (a, b)
open Operators
/// ## createTempDirectory
let inline createTempDirectory () =
let tempFolder = File_system.create_temp_directory_name ()
let result = System.IO.Directory.CreateDirectory tempFolder
if not result.Exists then
let getLocals () =
$"tempFolder: {tempFolder} / result: {({|
Exists = result.Exists
CreationTime = result.CreationTime
|})} {getLocals ()}"
trace Debug ...
── fsharp ──────────────────────────────────────────────────────────────────────
#if !INTERACTIVE
open Lib
#endif
── fsharp ──────────────────────────────────────────────────────────────────────
open Common
open FileSystem.Operators
open Microsoft.AspNetCore.SignalR.Client
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## sendJson │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline sendJson (port : int) (json : string) = async {
let! portOpen = Networking.testPortOpen port
if portOpen then
try
let connection =
HubConnectionBuilder().WithUrl($"http://127.0.0.1:{port}").Build()
do! connection.StartAsync () |> Async.AwaitTask
let! result = connection.InvokeAsync<string>("ClientToServerMsg",
json) |> Async.AwaitTask
do! connection.StopAsync () |> Async.AwaitTask
trace Debug (fun () -> $"sendJson / port: {port} / json: {json} /
result.Length: {result |> Option.ofObj |> Option.map String.length}") getLocals
return Some result
with ex ->
trace Critical (fun () -> $"sendJson / port: {port} / json: {json} /
ex: {ex |> Sm.format_exception}") getLocals
return None
else
trace Debug (fun () -> "sendJson / error: port not open") getLocals
return None
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## sendObj │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline sendObj port obj =
obj
|> System.Text.Json.JsonSerializer.Serialize
|> sendJson port
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## awaitCompiler │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
type VSCPos = {| line : int; character : int |}
type VSCRange = VSCPos * VSCPos
type RString = VSCRange * string
type TracedError = {| trace : string list; message : string |}
type ClientErrorsRes =
| FatalError of string
| TracedError of TracedError
| PackageErrors of {| uri : string; errors : RString list |}
| TokenizerErrors of {| uri : string; errors : RString list |}
| ParserErrors of {| uri : string; errors : RString list |}
| TypeErrors of {| uri : string; errors : RString list |}
── fsharp ──────────────────────────────────────────────────────────────────────
let inline awaitCompiler port cancellationToken = async {
let ct, disposable = cancellationToken |> Threading.newDisposableToken
let! ct = ct |> Async.mergeCancellationTokenWithDefaultAsync
let compiler = MailboxProcessor.Start (fun inbox -> async {
let! availablePort = Networking.getAvailablePort (Some 60) port
if availablePort <> port then
inbox.Post (port, false)
else
let repositoryRoot = FileSystem.getSourceDirectory () |>
FileSystem.findParent ".paket" false
let compilerPath =
repositoryRoot </> "deps/The-Spiral-Language/The Spiral Language
2/artifacts/bin/The Spiral Language 2/release"
|> System.IO.Path.GetFullPath
let dllPath = compilerPath </> "Spiral.dll"
let! exitCode, result =
Runtime.executeWithOptionsAsync
{
Command = $@"dotnet ""{dllPath}"" --port {availablePort}
--default-int i32 --default-float f64"
CancellationToken = Some ct
WorkingDirectory = None
OnLine = Some <| fun { Line = line } -> async {
if line |> Sm.contains $"Server bound to:
http://localhost:{availablePort}" then
do! Networking.waitForPortAccess (Some 500) true
availablePort |> Async.Ignore
let rec loop retry = async {
let getLocals () = $"port: {availablePort} /
retry: {retry} / {getLocals ()}"
try
let pingObj = {| Ping = true |}
let! pingResult = pingObj |> sendObj
availablePort
trace Verbose (fun () -> $"awaitCompiler
/ Ping / result: {pingResult}") getLocals
with ex ->
trace Verbose (fun () -> $"awaitCompiler
/ Ping / ex: {ex |> Sm.format_exception}") getLocals
do! Async.Sleep 10
do! loop (retry + 1)
}
do! loop 0
inbox.Post (availablePort, true)
}
}
trace Debug (fun () -> $"awaitCompiler / exitCode: {exitCode} /
result: {result}") getLocals
disposable.Dispose ()
}, ct)
let! serverPort, managed = compiler.Receive ()
let connection =
HubConnectionBuilder().WithUrl($"http://127.0.0.1:{serverPort}").Build ()
do! connection.StartAsync () |> Async.AwaitTask
let event = Event<_> ()
let disposable' = connection.On<string> ("ServerToClientMsg", event.Trigger)
let stream =
FSharp.Control.AsyncSeq.unfoldAsync
(fun () -> async {
let! msg = event.Publish |> Async.AwaitEvent
return Some (msg |>
FSharp.Json.Json.deserialize<ClientErrorsRes>, ())
})
()
let disposable' =
new_disposable (fun () ->
async {
disposable'.Dispose ()
do! connection.StopAsync () |> Async.AwaitTask
disposable.Dispose ()
if managed
then do! Networking.waitForPortAccess (Some 2000) false
serverPort |> Async.Ignore
}
|> Async.RunSynchronously
)
return
serverPort,
stream,
ct,
disposable'
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## getFileUri │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline getFileUri (path : string) =
let path =
if Runtime.isWindows () |> not
then path
else $"{path.[[0]] |> System.Char.ToLower}{path.[[1..]]}" |> Sm.replace
"\\" "/"
$"file:///{path |> Sm.trim_start [[| '/' |]]}"
── fsharp ──────────────────────────────────────────────────────────────────────
let inline getFilePathFromUri uri =
match System.Uri.TryCreate (uri, System.UriKind.Absolute) with
| true, uri -> uri.AbsolutePath |> System.IO.Path.GetFullPath
| _ -> failwith "invalid uri"
── fsharp ──────────────────────────────────────────────────────────────────────
let inline getCompilerPort () =
13805
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## serialize_obj │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let serializeObj obj =
obj
|> FSharp.Json.Json.serialize
|> Sm.replace "\\\\" "\\"
|> Sm.replace "\\r\\n" "\n"
|> Sm.replace "\\n" "\n"
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## buildFile │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline buildFile timeout port cancellationToken path = async {
let fullPath = path |> System.IO.Path.GetFullPath
let fileDir = fullPath |> System.IO.Path.GetDirectoryName
let fileName = fullPath |> System.IO.Path.GetFileNameWithoutExtension
let! code = fullPath |> FileSystem.readAllTextAsync
let eventFilter = function
| FileSystem.FileSystemChange.Changed (path, _) when path =
$"{fileName}.fsx" -> true
| _ -> false
let stream, disposable = fileDir |> FileSystem.watchDirectory eventFilter
use _ = disposable
let token, disposable = Threading.newDisposableToken cancellationToken
use _ = disposable
let! serverPort, errors, ct, disposable = awaitCompiler port (Some token)
use _ = disposable
let fsxContentSeq =
stream
|> FSharp.Control.AsyncSeq.choose (function
| _, (FileSystem.FileSystemChange.Changed (path, Some content) as
event)
when event |> eventFilter
->
Some content
| _ -> None
)
|> FSharp.Control.AsyncSeq.map (fun content ->
Some (content |> Sm.replace "\r\n" "\n"), None
)
let inline printErrorData (data : {| uri : string; errors : RString list |})
=
let fileName = data.uri |> System.IO.Path.GetFileName
let errors =
data.errors
|> List.map snd
|> Sm.concat "\n"
$"{fileName}:\n{errors}"
let errorsSeq =
errors
|> FSharp.Control.AsyncSeq.choose (fun error ->
match error with
| FatalError message ->
Some (message, error)
| TracedError data ->
Some (data.message, error)
| PackageErrors data when data.errors |> List.isEmpty |> not ->
Some (data |> printErrorData, error)
| TokenizerErrors data when data.errors |> List.isEmpty |> not ->
Some (data |> printErrorData, error)
| ParserErrors data when data.errors |> List.isEmpty |> not ->
Some (data |> printErrorData, error)
| TypeErrors data when data.errors |> List.isEmpty |> not ->
Some (data |> printErrorData, error)
| _ -> None
)
|> FSharp.Control.AsyncSeq.map (fun (message, error) ->
None, Some (message, error)
)
let timerSeq =
1000
|> FSharp.Control.AsyncSeq.intervalMs
|> FSharp.Control.AsyncSeq.map (fun _ -> None, None)
let outputSeq =
[[ fsxContentSeq; errorsSeq; timerSeq ]]
|> FSharp.Control.AsyncSeq.mergeAll
let! outputChild =
((None, [[]], 0), outputSeq)
||> FSharp.Control.AsyncSeq.scan (
fun (fsxContentResult, errors, typeErrorCount) (fsxContent, error)
->
match fsxContent, error with
| Some fsxContent, None -> Some fsxContent, errors,
typeErrorCount
| None, Some (_, FatalError "File main has a type error
somewhere in its path.") ->
fsxContentResult, errors, typeErrorCount + 1
| None, Some error -> fsxContentResult, error :: errors,
typeErrorCount
| None, None when typeErrorCount >= 1 ->
fsxContentResult, errors, typeErrorCount + 1
| _ -> fsxContentResult, errors, typeErrorCount
)
|> FSharp.Control.AsyncSeq.takeWhileInclusive (fun (fsxContent, errors,
typeErrorCount) ->
trace Debug (fun () -> $"buildFile / takeWhileInclusive /
fsxContent: {fsxContent |> Option.defaultValue System.String.Empty |>
Sm.ellipsis 750} / errors: {errors |> serializeObj} / typeErrorCount:
{typeErrorCount}") getLocals
#if INTERACTIVE
let errorWait = 2
#else
let errorWait = 10
#endif
match fsxContent, errors with
| None, [[]] when typeErrorCount > errorWait -> false
| None, [[]] -> true
| _ -> false
)
|> FSharp.Control.AsyncSeq.tryLast
|> Async.withCancellationToken ct
|> Async.catch
|> Async.runWithTimeoutAsync timeout
|> Async.StartChild
let fileOpenObj = {| FileOpen = {| uri = fullPath |> getFileUri; spiText =
code |} |}
let! _fileOpenResult = fileOpenObj |> sendObj serverPort
do! Async.Sleep 60
let buildFileObj = {| BuildFile = {| uri = fullPath |> getFileUri; backend =
"Fsharp" |} |}
let! _buildFileResult = buildFileObj |> sendObj serverPort
return!
outputChild
|> Async.map (function
| Some (Ok (Some (message, errors, _))) ->
message, errors |> List.distinct |> List.rev
| Some (Error ex) ->
trace Critical (fun () -> $"buildFile / error: {ex |>
serializeObj}") getLocals
None, [[]]
| _ -> None, [[]]
)
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## persistCode │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline persistCode code = async {
let tempDir = FileSystem.createTempDirectory ()
let mainPath = tempDir </> "main.spi"
do! code |> FileSystem.writeAllTextAsync mainPath
let repositoryRoot = FileSystem.getSourceDirectory () |>
FileSystem.findParent ".paket" false
let spiprojPath = tempDir </> "package.spiproj"
let spiprojCode =
$"""packageDir: {repositoryRoot </> "lib"}
packages:
|core-
spiral-
modules:
main
"""
do! spiprojCode |> FileSystem.writeAllTextAsync spiprojPath
let disposable = new_disposable (fun () ->
()
// tempDir |> FileSystem.deleteDirectoryAsync |> Async.Ignore |>
Async.RunSynchronously
)
return mainPath, disposable
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## buildCode │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline buildCode timeout cancellationToken code = async {
let! mainPath, disposable = persistCode code
use _ = disposable
let port = getCompilerPort ()
return! mainPath |> buildFile timeout port cancellationToken
}
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let buildCode timeout cancellationToken code = buildCode timeout
cancellationToken code
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"""inl app () =
console.write_line "text"
1i32
inl main () =
app
|> dyn
|> ignore
"""
|> buildCode 15000 None
|> Async.runWithTimeout 15000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
Some (
Some """let rec closure0 () () : int32 =
let v0 : string = "text"
System.Console.WriteLine v0
1
let v0 : (unit -> int32) = closure0()
()
""",
[[]]
)
)
╭─[ 1.15s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:00 #2 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:00 #3 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:00 #4 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"inl app () =\n console.write_line │
│ \u0022text\u0022\n 1i32\n\ninl main () =\n app\n |\u003E dyn\n │
│ |\u003E │
│ ignore\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/dotnet-repl/20240 │
│ 330-1706-3462-6296-6c5d94221fef/main.spi"}} / result.Length: │
│ 00:00:00 #5 [Debug] sendJson / port: 13805 / json: │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │
│ /Temp/dotnet-repl/20240330-1706-3462-6296-6c5d94221fef/main.spi"}} / │
│ result.Length: │
│ 00:00:00 #6 [Debug] buildFile / takeWhileInclusive / fsxContent: let rec │
│ closure0 () () : int32 = │
│ let v0 : string = "text" │
│ System.Console.WriteLine v0 │
│ 1 │
│ let v0 : (unit -> int32) = closure0() │
│ () │
│ / errors: [] / typeErrorCount: 0 │
│ 00:00:00 #7 [Debug] watchWithFilter / Disposing watch stream / filter: │
│ FileName, LastWrite │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>> │
│ Value: - FSharpOption<String> │
│ Value: let rec closure0 () () : int32 = │
│ let v0 : string = "text" │
│ System.Console.WriteLine v0 │
│ 1 │
│ let v0 : (unit -> int32) = closure0() │
│ () │
│ │
│ - [ ] │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> _assertEqual None
╭─[ 10.16s - stdout ]──────────────────────────────────────────────────────────╮
│ 00:00:01 #8 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:01 #9 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:01 #10 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:01 #11 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"","uri":"file:///c:/Users/i574n/AppData/Local/Temp/d │
│ otnet-repl/20240330-1706-3573-7391-721399cad860/main.spi"}} / result.Length: │
│ 00:00:01 #12 [Debug] sendJson / port: 13805 / json: │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │
│ /Temp/dotnet-repl/20240330-1706-3573-7391-721399cad860/main.spi"}} / │
│ result.Length: │
│ 00:00:02 #13 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:03 #14 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:04 #15 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:05 #16 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:06 #17 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:07 #18 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:08 #19 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:09 #20 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:10 #21 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:11 #22 [Debug] watchWithFilter / Disposing watch stream / filter: │
│ FileName, LastWrite │
│ 00:00:11 #23 [Debug] runWithTimeoutChildAsync / timeout: 10000 │
│ <null> │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"inl app () =
0i32
inl a = 1
inl main () =
app
|> dyn
|> ignore
"
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
Some (
None,
[[ "main.spi:
Global inl/let statements should all return functions known at parse time." ]]
)
)
╭─[ 419.33ms - stdout ]────────────────────────────────────────────────────────╮
│ 00:00:11 #24 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:11 #25 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:11 #26 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:11 #27 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"inl app () =\n 0i32\n\ninl a = 1\n\ninl main () │
│ =\n app\n |\u003E dyn\n |\u003E │
│ ignore\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/dotnet-repl/20240 │
│ 330-1706-4607-0788-05bb7344f42f/main.spi"}} / result.Length: │
│ 00:00:11 #28 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [ │
│ [ │
│ "main.spi: │
│ Global inl/let statements should all return functions known at parse time.", │
│ { │
│ "ParserErrors": { │
│ "errors": [ │
│ [ │
│ [ │
│ { │
│ "character": 0, │
│ "line": 3 │
│ }, │
│ { │
│ "character": 9, │
│ "line": 3 │
│ } │
│ ], │
│ "Global inl/let statements should all return functions known at │
│ parse time." │
│ ] │
│ ], │
│ "uri": │
│ "file:///c:\Users\i574n\AppData\Local\Temp\dotnet-repl\20240330-1706-4607-07 │
│ 88-05bb7344f42f\main.spi" │
│ } │
│ } │
│ ] │
│ ] / typeErrorCount: 0 │
│ 00:00:11 #29 [Debug] sendJson / port: 13805 / json: │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │
│ /Temp/dotnet-repl/20240330-1706-4607-0788-05bb7344f42f/main.spi"}} / │
│ result.Length: │
│ 00:00:11 #30 [Debug] watchWithFilter / Disposing watch stream / filter: │
│ FileName, LastWrite │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>> │
│ Value: - <null> │
│ - [ main.spi: │
│ Global inl/let statements should all return functions known at parse time. ] │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"""inl main () =
1i32 / 0i32
"""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
Some (
None,
[[ "An attempt to divide by zero has been detected at compile time." ]]
)
)
╭─[ 550.60ms - stdout ]────────────────────────────────────────────────────────╮
│ 00:00:11 #31 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:11 #32 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:11 #33 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:11 #34 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"inl main () =\n 1i32 / │
│ 0i32\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/dotnet-repl/2024033 │
│ 0-1706-4648-4848-40d69db0d98e/main.spi"}} / result.Length: │
│ 00:00:11 #35 [Debug] sendJson / port: 13805 / json: │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │
│ /Temp/dotnet-repl/20240330-1706-4648-4848-40d69db0d98e/main.spi"}} / │
│ result.Length: │
│ 00:00:12 #36 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [ │
│ [ │
│ "An attempt to divide by zero has been detected at compile time.", │
│ { │
│ "TracedError": { │
│ "message": "An attempt to divide by zero has been detected at │
│ compile time.", │
│ "trace": [ │
│ "Error trace on line: 1, column: 10 in module: │
│ c:\Users\i574n\AppData\Local\Temp\dotnet-repl\20240330-1706-4648-4848-40d69d │
│ b0d98e\main.spi. │
│ inl main () = │
│ ^ │
│ ", │
│ "Error trace on line: 2, column: 5 in module: │
│ c:\Users\i574n\AppData\Local\Temp\dotnet-repl\20240330-1706-4648-4848-40d69d │
│ b0d98e\main.spi. │
│ 1i32 / 0i32 │
│ ^ │
│ " │
│ ] │
│ } │
│ } │
│ ] │
│ ] / typeErrorCount: 0 │
│ 00:00:12 #37 [Debug] watchWithFilter / Disposing watch stream / filter: │
│ FileName, LastWrite │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>> │
│ Value: - <null> │
│ - [ An attempt to divide by zero has been detected at compile time. ] │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"""inl main () =
1 + ""
"""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
Some (
None,
[[
"main.spi:
Constraint satisfaction error.
Got: string
Fails to satisfy: number"
]]
)
)
╭─[ 437.83ms - stdout ]────────────────────────────────────────────────────────╮
│ 00:00:12 #38 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:12 #39 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:12 #40 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:12 #41 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"inl main () =\n 1 \u002B │
│ \u0022\u0022\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/dotnet-repl │
│ /20240330-1706-4704-0433-0d838e8bd44b/main.spi"}} / result.Length: │
│ 00:00:12 #42 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [ │
│ [ │
│ "main.spi: │
│ Constraint satisfaction error. │
│ Got: string │
│ Fails to satisfy: number", │
│ { │
│ "TypeErrors": { │
│ "errors": [ │
│ [ │
│ [ │
│ { │
│ "character": 8, │
│ "line": 1 │
│ }, │
│ { │
│ "character": 10, │
│ "line": 1 │
│ } │
│ ], │
│ "Constraint satisfaction error. │
│ Got: string │
│ Fails to satisfy: number" │
│ ] │
│ ], │
│ "uri": │
│ "file:///c:\Users\i574n\AppData\Local\Temp\dotnet-repl\20240330-1706-4704-04 │
│ 33-0d838e8bd44b\main.spi" │
│ } │
│ } │
│ ] │
│ ] / typeErrorCount: 0 │
│ 00:00:12 #43 [Debug] sendJson / port: 13805 / json: │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │
│ /Temp/dotnet-repl/20240330-1706-4704-0433-0d838e8bd44b/main.spi"}} / │
│ result.Length: │
│ 00:00:12 #44 [Debug] watchWithFilter / Disposing watch stream / filter: │
│ FileName, LastWrite │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>> │
│ Value: - <null> │
│ - [ main.spi: │
│ Constraint satisfaction error. │
│ Got: string │
│ Fails to satisfy: number ] │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"""inl main () =
x + y
"""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
Some (
None,
[[
"main.spi:
Unbound variable: x.
Unbound variable: y."
]]
)
)
╭─[ 399.91ms - stdout ]────────────────────────────────────────────────────────╮
│ 00:00:12 #45 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:12 #46 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:12 #47 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:12 #48 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"inl main () =\n x \u002B │
│ y\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/dotnet-repl/20240330-1 │
│ 706-4753-5372-532bcfe26709/main.spi"}} / result.Length: │
│ 00:00:12 #49 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [ │
│ [ │
│ "main.spi: │
│ Unbound variable: x. │
│ Unbound variable: y.", │
│ { │
│ "TypeErrors": { │
│ "errors": [ │
│ [ │
│ [ │
│ { │
│ "character": 4, │
│ "line": 1 │
│ }, │
│ { │
│ "character": 5, │
│ "line": 1 │
│ } │
│ ], │
│ "Unbound variable: x." │
│ ], │
│ [ │
│ [ │
│ { │
│ "character": 8, │
│ "line": 1 │
│ }, │
│ { │
│ "character": 9, │
│ "line": 1 │
│ } │
│ ], │
│ "Unbound variable: y." │
│ ] │
│ ], │
│ "uri": │
│ "file:///c:\Users\i574n\AppData\Local\Temp\dotnet-repl\20240330-1706-4753-53 │
│ 72-532bcfe26709\main.spi" │
│ } │
│ } │
│ ] │
│ ] / typeErrorCount: 0 │
│ 00:00:12 #50 [Debug] sendJson / port: 13805 / json: │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │
│ /Temp/dotnet-repl/20240330-1706-4753-5372-532bcfe26709/main.spi"}} / │
│ result.Length: │
│ 00:00:12 #51 [Debug] watchWithFilter / Disposing watch stream / filter: │
│ FileName, LastWrite │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>> │
│ Value: - <null> │
│ - [ main.spi: │
│ Unbound variable: x. │
│ Unbound variable: y. ] │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"""union a =
| B
| c
inl main () =
()
"""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
Some (
None,
[[ "main.spi:
Expected: uppercase variable" ]]
)
)
╭─[ 394.26ms - stdout ]────────────────────────────────────────────────────────╮
│ 00:00:13 #52 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:13 #53 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:13 #54 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:13 #55 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"union a =\n | B\n | c\n\ninl main () =\n │
│ ()\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/dotnet-repl/20240330- │
│ 1706-4795-9588-956b7dbc0ab1/main.spi"}} / result.Length: │
│ 00:00:13 #56 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [ │
│ [ │
│ "main.spi: │
│ Expected: uppercase variable", │
│ { │
│ "ParserErrors": { │
│ "errors": [ │
│ [ │
│ [ │
│ { │
│ "character": 6, │
│ "line": 2 │
│ }, │
│ { │
│ "character": 7, │
│ "line": 2 │
│ } │
│ ], │
│ "Expected: uppercase variable" │
│ ] │
│ ], │
│ "uri": │
│ "file:///c:\Users\i574n\AppData\Local\Temp\dotnet-repl\20240330-1706-4795-95 │
│ 88-956b7dbc0ab1\main.spi" │
│ } │
│ } │
│ ] │
│ ] / typeErrorCount: 0 │
│ 00:00:13 #57 [Debug] sendJson / port: 13805 / json: │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │
│ /Temp/dotnet-repl/20240330-1706-4795-9588-956b7dbc0ab1/main.spi"}} / │
│ result.Length: │
│ 00:00:13 #58 [Debug] watchWithFilter / Disposing watch stream / filter: │
│ FileName, LastWrite │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>> │
│ Value: - <null> │
│ - [ main.spi: │
│ Expected: uppercase variable ] │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"""
/// abc
inl main () =
()
"""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
Some (
None,
[[ "main.spi:
Expected: whitespace" ]]
)
)
╭─[ 364.27ms - stdout ]────────────────────────────────────────────────────────╮
│ 00:00:13 #59 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:13 #60 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:13 #61 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:13 #62 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"\n/// abc\ninl main () =\n │
│ ()\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/dotnet-repl/20240330- │
│ 1706-4836-3689-39943f259935/main.spi"}} / result.Length: │
│ 00:00:13 #63 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [ │
│ [ │
│ "main.spi: │
│ Expected: whitespace", │
│ { │
│ "TokenizerErrors": { │
│ "errors": [ │
│ [ │
│ [ │
│ { │
│ "character": 2, │
│ "line": 1 │
│ }, │
│ { │
│ "character": 3, │
│ "line": 1 │
│ } │
│ ], │
│ "Expected: whitespace" │
│ ] │
│ ], │
│ "uri": │
│ "file:///c:\Users\i574n\AppData\Local\Temp\dotnet-repl\20240330-1706-4836-36 │
│ 89-39943f259935\main.spi" │
│ } │
│ } │
│ ] │
│ ] / typeErrorCount: 0 │
│ 00:00:13 #64 [Debug] sendJson / port: 13805 / json: │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │
│ /Temp/dotnet-repl/20240330-1706-4836-3689-39943f259935/main.spi"}} / │
│ result.Length: │
│ 00:00:13 #65 [Debug] watchWithFilter / Disposing watch stream / filter: │
│ FileName, LastWrite │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>> │
│ Value: - <null> │
│ - [ main.spi: │
│ Expected: whitespace ] │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"""
inl main () =
real
inl real_unbox forall a. (obj : a) : a =
typecase obj with
| _ => obj
real_unbox ()
()
"""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
Some (
None,
[[ "Cannot apply a forall with a term." ]]
)
)
╭─[ 518.13ms - stdout ]────────────────────────────────────────────────────────╮
│ 00:00:14 #66 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:14 #67 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:14 #68 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:14 #69 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"\ninl main () =\n real\n inl real_unbox │
│ forall a. (obj : a) : a =\n typecase obj with\n | _ │
│ =\u003E obj\n real_unbox ()\n │
│ ()\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/dotnet-repl/20240330- │
│ 1706-4883-8311-82036aec2827/main.spi"}} / result.Length: │
│ 00:00:14 #70 [Debug] sendJson / port: 13805 / json: │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │
│ /Temp/dotnet-repl/20240330-1706-4883-8311-82036aec2827/main.spi"}} / │
│ result.Length: │
│ 00:00:14 #71 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [ │
│ [ │
│ "Cannot apply a forall with a term.", │
│ { │
│ "TracedError": { │
│ "message": "Cannot apply a forall with a term.", │
│ "trace": [ │
│ "Error trace on line: 2, column: 10 in module: │
│ c:\Users\i574n\AppData\Local\Temp\dotnet-repl\20240330-1706-4883-8311-82036a │
│ ec2827\main.spi. │
│ inl main () = │
│ ^ │
│ ", │
│ "Error trace on line: 4, column: 9 in module: │
│ c:\Users\i574n\AppData\Local\Temp\dotnet-repl\20240330-1706-4883-8311-82036a │
│ ec2827\main.spi. │
│ inl real_unbox forall a. (obj : a) : a = │
│ ^ │
│ ", │
│ "Error trace on line: 7, column: 9 in module: │
│ c:\Users\i574n\AppData\Local\Temp\dotnet-repl\20240330-1706-4883-8311-82036a │
│ ec2827\main.spi. │
│ real_unbox () │
│ ^ │
│ " │
│ ] │
│ } │
│ } │
│ ] │
│ ] / typeErrorCount: 0 │
│ 00:00:14 #72 [Debug] watchWithFilter / Disposing watch stream / filter: │
│ FileName, LastWrite │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>> │
│ Value: - <null> │
│ - [ Cannot apply a forall with a term. ] │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"""
inl main () =
real
inl real_unbox forall a. (obj : a) : a =
typecase obj with
| _ => obj
real_unbox `i32 1
"""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
Some (
None,
[[ "The main function should not have a forall." ]]
)
)
╭─[ 501.21ms - stdout ]────────────────────────────────────────────────────────╮
│ 00:00:14 #73 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:14 #74 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:14 #75 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:14 #76 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"\ninl main () =\n real\n inl real_unbox │
│ forall a. (obj : a) : a =\n typecase obj with\n | _ │
│ =\u003E obj\n real_unbox \u0060i32 │
│ 1\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/dotnet-repl/20240330-1 │
│ 706-4940-4071-496e0a6c3c7a/main.spi"}} / result.Length: │
│ 00:00:14 #77 [Debug] sendJson / port: 13805 / json: │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │
│ /Temp/dotnet-repl/20240330-1706-4940-4071-496e0a6c3c7a/main.spi"}} / │
│ result.Length: │
│ 00:00:14 #78 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [ │
│ [ │
│ "The main function should not have a forall.", │
│ { │
│ "TracedError": { │
│ "message": "The main function should not have a forall.", │
│ "trace": [] │
│ } │
│ } │
│ ] │
│ ] / typeErrorCount: 0 │
│ 00:00:14 #79 [Debug] watchWithFilter / Disposing watch stream / filter: │
│ FileName, LastWrite │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>> │
│ Value: - <null> │
│ - [ The main function should not have a forall. ] │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"""
inl init_series start end inc =
inl total : f64 = conv ((end - start) / inc) + 1
listm.init total (conv >> (*) inc >> (+) start) : list f64
type integration = (f64 -> f64) -> f64 -> f64 -> f64
inl integral dt : integration =
fun f a b =>
init_series (a + dt / 2) (b - dt / 2) dt
|> listm.map (f >> (*) dt)
|> listm.fold (+) 0
inl main () =
integral 0.1 (fun x => x ** 2) 0 1
"""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
Some (
Some "0.3325000000000001\n",
[[]]
)
)
╭─[ 462.32ms - stdout ]────────────────────────────────────────────────────────╮
│ 00:00:15 #80 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:15 #81 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:15 #82 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:15 #83 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"\ninl init_series start end inc =\n inl total : │
│ f64 = conv ((end - start) / inc) \u002B 1\n listm.init total (conv │
│ \u003E\u003E (*) inc \u003E\u003E (\u002B) start) : list f64\n\ntype │
│ integration = (f64 -\u003E f64) -\u003E f64 -\u003E f64 -\u003E f64\n\ninl │
│ integral dt : integration =\n fun f a b =\u003E\n init_series (a │
│ \u002B dt / 2) (b - dt / 2) dt\n |\u003E listm.map (f \u003E\u003E │
│ (*) dt)\n |\u003E listm.fold (\u002B) 0\n\ninl main () =\n │
│ integral 0.1 (fun x =\u003E x ** 2) 0 │
│ 1\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/dotnet-repl/20240330-1 │
│ 706-4987-8776-8c5b1a3082cf/main.spi"}} / result.Length: │
│ 00:00:15 #84 [Debug] sendJson / port: 13805 / json: │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │
│ /Temp/dotnet-repl/20240330-1706-4987-8776-8c5b1a3082cf/main.spi"}} / │
│ result.Length: │
│ 00:00:15 #85 [Debug] buildFile / takeWhileInclusive / fsxContent: │
│ 0.3325000000000001 │
│ / errors: [] / typeErrorCount: 0 │
│ 00:00:15 #86 [Debug] watchWithFilter / Disposing watch stream / filter: │
│ FileName, LastWrite │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>> │
│ Value: - FSharpOption<String> │
│ Value: 0.3325000000000001 │
│ │
│ - [ ] │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"""
inl init_series start end inc =
inl total : f64 = conv ((end - start) / inc) + 1
listm.init total (conv >> (*) inc >> (+) start) : list f64
type integration = (f64 -> f64) -> f64 -> f64 -> f64
inl integral dt : integration =
fun f a b =>
init_series (a + dt / 2) (b - dt / 2) dt
|> listm.map (f >> (*) dt)
|> listm.fold (+) 0
inl main () =
integral 0.01 (fun x => x ** 2) 0 1
"""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
Some (
Some "0.33332500000000004\n",
[[]]
)
)
// |> _assertEqual None
// |> fun x -> printfn $"{x.ToDisplayString ()}"
╭─[ 532.26ms - stdout ]────────────────────────────────────────────────────────╮
│ 00:00:15 #87 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:15 #88 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:15 #89 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:15 #90 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"\ninl init_series start end inc =\n inl total : │
│ f64 = conv ((end - start) / inc) \u002B 1\n listm.init total (conv │
│ \u003E\u003E (*) inc \u003E\u003E (\u002B) start) : list f64\n\ntype │
│ integration = (f64 -\u003E f64) -\u003E f64 -\u003E f64 -\u003E f64\n\ninl │
│ integral dt : integration =\n fun f a b =\u003E\n init_series (a │
│ \u002B dt / 2) (b - dt / 2) dt\n |\u003E listm.map (f \u003E\u003E │
│ (*) dt)\n |\u003E listm.fold (\u002B) 0\n\ninl main () =\n │
│ integral 0.01 (fun x =\u003E x ** 2) 0 │
│ 1\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/dotnet-repl/20240330-1 │
│ 706-5036-3621-3edf80ae2264/main.spi"}} / result.Length: │
│ 00:00:15 #91 [Debug] sendJson / port: 13805 / json: │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │
│ /Temp/dotnet-repl/20240330-1706-5036-3621-3edf80ae2264/main.spi"}} / │
│ result.Length: │
│ 00:00:15 #92 [Debug] buildFile / takeWhileInclusive / fsxContent: │
│ 0.33332500000000004 │
│ / errors: [] / typeErrorCount: 0 │
│ 00:00:15 #93 [Debug] watchWithFilter / Disposing watch stream / filter: │
│ FileName, LastWrite │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>> │
│ Value: - FSharpOption<String> │
│ Value: 0.33332500000000004 │
│ │
│ - [ ] │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## getFileTokenRange │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline getFileTokenRange port cancellationToken path = async {
let fullPath = path |> System.IO.Path.GetFullPath
let! code = fullPath |> FileSystem.readAllTextAsync
let lines = code |> Sm.split "\n"
let token, disposable = Threading.newDisposableToken cancellationToken
use _ = disposable
let! serverPort, _errors, ct, disposable = awaitCompiler port (Some token)
use _ = disposable
let fileOpenObj = {| FileOpen = {| uri = fullPath |> getFileUri; spiText =
code |} |}
let! _fileOpenResult = fileOpenObj |> sendObj serverPort
let fileTokenRangeObj =
{|
FileTokenRange =
{|
uri = fullPath |> getFileUri
range =
[[|
{| line = 0; character = 0 |}
{| line = lines.Length - 1; character =
lines.[[lines.Length - 1]].Length |}
|]]
|}
|}
let! fileTokenRangeResult =
fileTokenRangeObj
|> sendObj serverPort
|> Async.withCancellationToken ct
return fileTokenRangeResult |> Option.map FSharp.Json.Json.deserialize<int
array>
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## getCodeTokenRange │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline getCodeTokenRange cancellationToken code = async {
let! mainPath, disposable = persistCode code
use _ = disposable
let port = getCompilerPort ()
return! mainPath |> getFileTokenRange port cancellationToken
}
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"""inl main () = ()"""
|> getCodeTokenRange None
|> Async.runWithTimeout 10000
|> Option.flatten
|> _assertEqual (Some [[| 0; 0; 3; 7; 0; 0; 4; 4; 0; 0; 0; 5; 1; 8; 0; 0; 1; 1;
8; 0; 0; 2; 1; 4; 0; 0;
2; 1; 8; 0; 0; 1; 1; 8; 0 |]])
╭─[ 3.28s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:25 #94 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:26 #95 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"inl main () = │
│ ()","uri":"file:///c:/Users/i574n/AppData/Local/Temp/dotnet-repl/20240330-17 │
│ 07-0068-6827-660270c44f59/main.spi"}} / result.Length: │
│ 00:00:26 #96 [Debug] sendJson / port: 13805 / json: │
│ {"FileTokenRange":{"range":[ │
│ {"character":0,"line":0},{"character":16,"line":0}],"uri":"file:///c:/Users/ │
│ i574n/AppData/Local/Temp/dotnet-repl/20240330-1707-0068-6827-660270c44f59/ma │
│ in.spi"}} / result.Length: Some(213) │
│ FSharpOption<Int32[]> │
│ Value: [ 0, 0, 3, 7, 0, 0, 4, 4, 0, 0, 0, 5, 1, 8, 0, 0, 1, 1, 8, 0, │
│ 0, 2, 1, 4, 0, 0, 2, 1, 8, 0, 0, 1, 1, 8, 0 ] │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"""inl main () = 1i32"""
|> getCodeTokenRange None
|> Async.runWithTimeout 10000
|> Option.flatten
|> _assertEqual (Some [[| 0; 0; 3; 7; 0; 0; 4; 4; 0; 0; 0; 5; 1; 8; 0; 0; 1; 1;
8; 0; 0; 2; 1; 4; 0; 0;
2; 1; 3; 0; 0; 1; 3; 12; 0 |]])
╭─[ 3.32s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:29 #97 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:29 #98 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"inl main () = │
│ 1i32","uri":"file:///c:/Users/i574n/AppData/Local/Temp/dotnet-repl/20240330- │
│ 1707-0399-9916-99bcf9aca566/main.spi"}} / result.Length: │
│ 00:00:29 #99 [Debug] sendJson / port: 13805 / json: │
│ {"FileTokenRange":{"range":[ │
│ {"character":0,"line":0},{"character":18,"line":0}],"uri":"file:///c:/Users/ │
│ i574n/AppData/Local/Temp/dotnet-repl/20240330-1707-0399-9916-99bcf9aca566/ma │
│ in.spi"}} / result.Length: Some(214) │
│ FSharpOption<Int32[]> │
│ Value: [ 0, 0, 3, 7, 0, 0, 4, 4, 0, 0, 0, 5, 1, 8, 0, 0, 1, 1, 8, 0, │
│ 0, 2, 1, 4, 0, 0, 2, 1, 3, 0, 0, 1, 3, 12, 0 ] │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## Arguments │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
[[<RequireQualifiedAccess>]]
type Arguments =
| Build_File of string * string
| File_Token_Range of string * string
| Execute_Command of string
| [[<Argu.ArguAttributes.Unique>]] Timeout of int
| [[<Argu.ArguAttributes.Unique>]] Port of int
| [[<Argu.ArguAttributes.Unique>]] Parallel
interface Argu.IArgParserTemplate with
member s.Usage =
match s with
| Build_File _ -> nameof Build_File
| File_Token_Range _ -> nameof File_Token_Range
| Execute_Command _ -> nameof Execute_Command
| Timeout _ -> nameof Timeout
| Port _ -> nameof Port
| Parallel -> nameof Parallel
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
Argu.ArgumentParser.Create<Arguments>().PrintUsage ()
╭─[ 120.05ms - return value ]──────────────────────────────────────────────────╮
│ USAGE: dotnet-repl [--help] [--build-file <string> <string>] │
│ [--file-token-range <string> <string>] │
│ [--execute-command <string>] [--timeout <int>] [--port │
│ <int>] │
│ [--parallel] │
│ │
│ OPTIONS: │
│ │
│ --build-file <string> <string> │
│ Build_File │
│ --file-token-range <string> <string> │
│ File_Token_Range │
│ --execute-command <string> │
│ Execute_Command │
│ --timeout <int> Timeout │
│ --port <int> Port │
│ --parallel Parallel │
│ --help display this list of options. │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## main │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let main args =
let argsMap = args |> Runtime.parseArgsMap<Arguments>
let buildFileActions =
argsMap
|> Map.tryFind (nameof Arguments.Build_File)
|> Option.defaultValue [[]]
|> List.choose (function
| Arguments.Build_File (inputPath, outputPath) -> Some (inputPath,
outputPath)
| _ -> None
)
let fileTokenRangeActions =
argsMap
|> Map.tryFind (nameof Arguments.File_Token_Range)
|> Option.defaultValue [[]]
|> List.choose (function
| Arguments.File_Token_Range (inputPath, outputPath) -> Some
(inputPath, outputPath)
| _ -> None
)
let executeCommandActions =
argsMap
|> Map.tryFind (nameof Arguments.Execute_Command)
|> Option.defaultValue [[]]
|> List.choose (function
| Arguments.Execute_Command command -> Some command
| _ -> None
)
let timeout =
match argsMap |> Map.tryFind (nameof Arguments.Timeout) with
| Some [[ Arguments.Timeout timeout ]] -> timeout
| _ -> 60000 * 60
let port =
match argsMap |> Map.tryFind (nameof Arguments.Port) with
| Some [[ Arguments.Port port ]] -> Some port
| _ -> None
let isParallel = argsMap |> Map.containsKey (nameof Arguments.Parallel)
async {
let port = port |> Option.defaultWith getCompilerPort
let localToken, disposable = Threading.newDisposableToken None
let! serverPort, _errors, compilerToken, disposable = awaitCompiler port
(Some localToken)
use _ = disposable
let buildFileAsync =
buildFileActions
|> List.map (fun (inputPath, outputPath) -> async {
let! outputCode, errors = inputPath |> buildFile timeout
serverPort None
errors
|> List.map snd
|> List.iter (fun error ->
trace Critical (fun () -> $"main / error: {error |>
serializeObj}") getLocals
)
match outputCode with
| Some outputCode ->
do! outputCode |> FileSystem.writeAllTextAsync outputPath
return 0
| None ->
return 1
})
let fileTokenRangeAsync =
fileTokenRangeActions
|> List.map (fun (inputPath, outputPath) -> async {
let! tokenRange = inputPath |> getFileTokenRange serverPort None
match tokenRange with
| Some tokenRange ->
do! tokenRange |> FSharp.Json.Json.serialize |>
FileSystem.writeAllTextAsync outputPath
return 0
| None ->
return 1
})
let executeCommandAsync =
executeCommandActions
|> List.map (fun command -> async {
let! exitCode, result =
Runtime.executeWithOptionsAsync
{
Command = command
CancellationToken = Some compilerToken
WorkingDirectory = None
OnLine = None
}
trace Debug (fun () -> $"main / executeCommand / exitCode:
{exitCode}") getLocals
return exitCode
})
return!
[[| buildFileAsync; fileTokenRangeAsync; executeCommandAsync |]]
|> Seq.collect id
|> fun x ->
if isParallel
then Async.Parallel (x, float System.Environment.ProcessorCount
* 0.75 |> ceil |> int)
else Async.Sequential x
|> Async.map Array.sum
}
|> Async.runWithTimeout timeout
|> Option.defaultValue 1
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let args =
System.Environment.GetEnvironmentVariable "ARGS"
|> Runtime.splitArgs
|> Seq.toArray
match args with
| [[||]] -> 0
| args -> if main args = 0 then 0 else failwith "main failed"
╭─[ 57.54ms - return value ]───────────────────────────────────────────────────╮
│ <div class="dni-plaintext"><pre>0</pre></div><style> │
│ .dni-code-hint { │
│ font-style: italic; │
│ overflow: hidden; │
│ white-space: nowrap; │
│ } │
│ .dni-treeview { │
│ white-space: nowrap; │
│ } │
│ .dni-treeview td { │
│ vertical-align: top; │
│ text-align: start; │
│ } │
│ details.dni-treeview { │
│ padding-left: 1em; │
│ } │
│ table td { │
│ text-align: start; │
│ } │
│ table tr { │
│ vertical-align: top; │
│ margin: 0em 0px; │
│ } │
│ table tr td pre │
│ { │
│ vertical-align: top !important; │
│ margin: 0em 0px !important; │
│ } │
│ table th { │
│ text-align: start; │
│ } │
│ </style> │
╰──────────────────────────────────────────────────────────────────────────────╯
[NbConvertApp] Converting notebook Supervisor.dib.ipynb to html
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
validate(nb)
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
return _pygments_highlight(
[NbConvertApp] Writing 433902 bytes to Supervisor.dib.html
00:00:00 #1 [Debug] writeDibCode / output: Fs / path: Supervisor.dib
00:00:00 #2 [Debug] parseDibCode / output: Fs / file: Supervisor.dib
00:00:00 #1 [Debug] persistCodeProject / packages: [Argu; FSharp.Control.AsyncSeq; FSharp.Json; ... ] / modules: [lib/spiral/common.fsx; lib/spiral/sm.fsx; lib/spiral/date_time.fsx; ... ] / name: Supervisor / code.Length: 19709
00:00:00 #2 [Debug] buildProject / fullPath: C:\home\git\polyglot\target\polyglot\builder\Supervisor\Supervisor.fsproj
00:00:00 #3 [Debug] executeAsync / options: { Command =
"dotnet publish "C:\home\git\polyglot\target/polyglot/builder\Supervisor\Supervisor.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\spiral\dist" --runtime linux-x64"
WorkingDirectory =
Some "C:\home\git\polyglot\target\polyglot\builder\Supervisor"
CancellationToken = None
OnLine = None }
00:00:00 #4 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f for .NET
00:00:00 #5 [Verbose] > Determining projects to restore...
00:00:01 #6 [Verbose] > Restored C:\home\git\polyglot\target\polyglot\builder\Supervisor\Supervisor.fsproj (in 396 ms).
00:00:01 #7 [Verbose] > C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.24101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\home\git\polyglot\target\polyglot\builder\Supervisor\Supervisor.fsproj]
00:00:13 #8 [Verbose] > Supervisor -> C:\home\git\polyglot\target\polyglot\builder\Supervisor\bin\Release\net9.0\linux-x64\Supervisor.dll
00:00:15 #9 [Verbose] > Supervisor -> C:\home\git\polyglot\apps\spiral\dist\
00:00:15 #10 [Debug] executeAsync / exitCode: 0 / output.Length: 715
00:00:15 #11 [Debug] executeAsync / options: { Command =
"dotnet publish "C:\home\git\polyglot\target/polyglot/builder\Supervisor\Supervisor.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\spiral\dist" --runtime win-x64"
WorkingDirectory =
Some "C:\home\git\polyglot\target\polyglot\builder\Supervisor"
CancellationToken = None
OnLine = None }
00:00:15 #12 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f for .NET
00:00:15 #13 [Verbose] > Determining projects to restore...
00:00:16 #14 [Verbose] > Restored C:\home\git\polyglot\target\polyglot\builder\Supervisor\Supervisor.fsproj (in 420 ms).
00:00:16 #15 [Verbose] > C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.24101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\home\git\polyglot\target\polyglot\builder\Supervisor\Supervisor.fsproj]
00:00:28 #16 [Verbose] > Supervisor -> C:\home\git\polyglot\target\polyglot\builder\Supervisor\bin\Release\net9.0\win-x64\Supervisor.dll
00:00:31 #17 [Verbose] > Supervisor -> C:\home\git\polyglot\apps\spiral\dist\
00:00:31 #18 [Debug] executeAsync / exitCode: 0 / output.Length: 713
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # Eval (Polyglot) │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
spNetCore.Html.Abstractions.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
Formatter.ListExpansionLimit <- 100
── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
type AssertExceptionFormatter (ex) =
member _.Text =
ex.ToString()
.Replace("32m", "<span style=\"color: green;\">")
.Replace("36m", "</span>")
.Replace("31m", "<span style=\"color: red;\">")
.Replace("\n", "<br/>\n")
Formatter.Register<AssertExceptionFormatter> ((fun (x :
AssertExceptionFormatter) -> x.Text), "text/html")
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __expect fn log expected actual =
if log then printfn $"{actual.ToDisplayString ()}"
try
"Testing.__expect" |> fn actual expected
with :? Expecto.AssertException as ex ->
AssertExceptionFormatter(ex).Display () |> ignore
failwith (ex.GetType().FullName)
let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual
let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual
let inline __isGreaterThan log expected actual = __expect
Expecto.Expect.isGreaterThan log ex...
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __isBetween log a b actual =
let inline isBetween actual (a, b) _ =
__isGreaterThanOrEqual log a actual
__isLessThanOrEqual log b actual
__expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual
── fsharp ──────────────────────────────────────────────────────────────────────
#r
@"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
dard2.1/FSharp.Control.AsyncSeq.dll"
#r
@"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
0/System.Reactive.dll"
#r
@"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
netstandard2.0/System.Reactive.Linq.dll"
#r
@"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
#r
@"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
b/net6.0/System.CommandLine.dll"
#r
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.com
mon/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Common.dll"
#r
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.cli
ent/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Client.dll"
#r
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.common/7.0.0
/lib/net7.0/Microsoft.AspNetCore.SignalR.Common.dll"
#r
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client/7.0.0
/lib/net7.0/Microsoft.AspNetCore.SignalR.Client.dll"
#r
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client.core/
7.0.0/lib/net7.0/Microsoft.AspNetCore.SignalR.Client.Core.dll"
#r
@"../../../../../../../.nuget/packages/fsharp.json/0.4.1/lib/netstandard2.0/FSha
rp.Json.dll"
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/sm.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/spiral/file_system.fsx
#!import ../../lib/spiral/lib.fsx
#!import ../../lib/fsharp/Common.fs
#!import ../../lib/fsharp/CommonFSharp.fs
#!import ../../lib/fsharp/Threading.fs
#!import ../../lib/fsharp/Async.fs
#!import ../../lib/fsharp/AsyncSeq.fs
#!import ../../lib/fsharp/Networking.fs
#!import ../../lib/fsharp/Runtime.fs
#!import ../../lib/fsharp/FileSystem.fs
#!import ../../apps/builder/Builder.fs
#!import ../../apps/spiral/Supervisor.fs
── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
| US0_0
| US0_1
and [[<Struct>]] US1 =
| US1_0
| US1_1 of f1_0 : US0
let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
v0
and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
let mutable result = None
#if FABLE_COMPILER_RUST && !WASM
let v1 : (unit -> unit) = method0(v0)
let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v1()" }
v2
#endif
#if FABLE_COMPILER_RUST && WASM
let v3 : (unit -> unit) = method0(v0)
let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v3()" }
v4
#endif
#if !FABLE_COMPILER && !F...
── fsharp - import ─────────────────────────────────────────────────────────────
type Mut0 = {mutable l0 : int32; mutable l1 : string}
and Mut1 = {mutable l0 : int32}
let rec closure1 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.Contains v0
v2
and closure0 () (v0 : string) : (string -> bool) =
closure1(v0)
and closure3 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.EndsWith v0
v2
and closure2 () (v0 : string) : (string -> bool) =
closure3(v0)
and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
let v3 : string = v2.PadLeft (v0, v1)
v3
and closure5 (v0 : int32) (v1 : char) : (string -> string) =
closure6(v0, v1)
and closure4 () (v0 : int32) : (char -> (string -> string)) =
closure5(v0)
and closure8 (v0 : int32) (v1 : string) : string =
let v2 : stri...
── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
let v2 : (System.Guid -> string) = _.ToString()
let v3 : string = v2 v0
let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
v5
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
let v3 : string = v2.Replace (v0, v1)
v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
closure3()
and closure2 (...
── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
| US0_0
| US0_1
| US0_2
and [[<Struct>]] US1 =
| US1_0 of f0_0 : US0
| US1_1 of f1_0 : US0
let rec closure0 () () : string =
let mutable result = None
#if FABLE_COMPILER_RUST && !WASM
let v0 : US0 = US0_1
let v1 : US1 = US1_1(v0)
let v2 : string = $"create_temp_directory_name target: {v1}"
let v3 : string = failwith<string> v2
v3
#endif
#if FABLE_COMPILER_RUST && WASM
let v4 : US0 = US0_2
let v5 : US1 = US1_1(v4)
let v6 : string = $"create_temp_directory_name target: {v5}"
let v7 : string = failwith<string> v6
v7
#endif
#if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM
let v8 : string = System.Reflection.Assembly.GetEntryAssembly()...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !WASM && !FABLE_COMPILER
module Date_time =
let new_guid_from_date_time x =
#if !INTERACTIVE
Date_time.new_guid_from_date_time x
#else
new_guid_from_date_time x
#endif
#endif
module Sm =
let concat x =
#if !INTERACTIVE
Sm.concat x
#else
concat x
#endif
let contains x =
#if !INTERACTIVE
Sm.contains x
#else
contains x
#endif
let ellipsis x =
#if !INTERACTIVE
Sm.ellipsis x
#else
ellipsis x
#endif
let ellipsis_end x =
#if !INTERACTIVE
Sm.ellipsis_end x
#else
ellipsis_end x
#endif
let ends_with x =
#if !INTERACTIVE
Sm.ends_with x
#else
ends_with x
#endif
let format_exception x =
#if !INTERACTIVE
Sm.format_...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Common =
#if !INTERACTIVE
open Lib
#endif
let nl = System.Environment.NewLine
let q = @""""
let inline cons head tail = head :: tail
/// ## memoize
let inline memoize fn =
let result = lazy fn ()
fun () -> result.Value
/// ## TraceLevel
type TraceLevel =
| Verbose
| Debug
| Info
| Warning
| Critical
let inline getLocals () = ""
let mutable traceEnabled = true
let mutable traceCount = 0
let mutable traceLevel = Verbose
let mutable traceDump = false
let testTraceLevel level =
traceEnabled && level >= traceLevel
/// ## traceRaw
let rec traceRaw level fn =
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module CommonFSharp =
open Common
/// ## getUnionCaseName
let inline getUnionCaseName<'T> (x: 'T) =
match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
| case, _ -> case.Name
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Threading =
open Common
/// ## newDisposableToken
let inline newDisposableToken (mergeToken:
System.Threading.CancellationToken option) =
let cts = new System.Threading.CancellationTokenSource ()
let cts =
match mergeToken with
| None -> cts
| Some mergeToken ->
System.Threading.CancellationTokenSource.CreateLinkedTokenSource
[[| cts.Token; mergeToken |]]
let disposable = new_disposable cts.Cancel
cts.Token, disposable
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Async =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## choice
let inline choice asyncs = async {
let e = Event<_> ()
use cts = new System.Threading.CancellationTokenSource ()
let fn =
asyncs
|> Seq.map (fun a -> async {
let! x = a
e.Trigger x
})
|> Async.Parallel
|> Async.Ignore
Async.Start (fn, cts.Token)
let! result = Async.AwaitEvent e.Publish
cts.Cancel ()
return result
}
/// ## map
let inline map fn a = async {
let! x = a
return fn x
}
/// ## catch
let inline catch a =
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module AsyncSeq =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## subscribeEvent
let inline subscribeEvent (event: IEvent<'H, 'A>) map =
let observable = System.Reactive.Linq.Observable.FromEventPattern<'H,
'A>(event.AddHandler, event.RemoveHandler)
System.Reactive.Linq.Observable.Select (observable, fun event -> map
event.EventArgs)
|> FSharp.Control.AsyncSeq.ofObservableBuffered
let subscribeToken (token : System.Threading.CancellationToken) =
let tcs = new System.Threading.Tasks.TaskCompletionSource ()
System.Action tcs.SetResult |> token.Register |> ignore
let start = System.DateTime.Now.Ticks
FSharp.Control.A...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Networking =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## testPortOpen
let inline testPortOpen port = async {
let! ct = Async.CancellationToken
use client = new System.Net.Sockets.TcpClient ()
try
do! client.ConnectAsync ("127.0.0.1", port, ct) |>
Async.awaitValueTaskUnit
return true
with ex ->
trace Verbose (fun () -> $"testPortOpen / ex: {ex |>
Sm.format_exception}") getLocals
return false
}
let inline testPortOpenTimeout timeout port = async {
let! result =
testPortOpen port
|> Async.runWithTimeoutAsync timeout
return
matc...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Runtime =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## isWindows
let isWindows =
fun () ->
System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
System.Runtime.InteropServices.OSPlatform.Windows
|> memoize
/// ## getExecutableSuffix
let inline getExecutableSuffix () =
if isWindows ()
then ".exe"
else ""
/// ## splitCommand
type private CommandParseStep =
| Start
| Path of quoted: bool
| Arguments
let splitCommand (command: string) =
let rec loop (path, args) chars step =
match chars, step with
| ('"' | '\'') ...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module FileSystem =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## Operators
module Operators =
let inline (</>) a b =
System.IO.Path.Combine (a, b)
open Operators
/// ## createTempDirectory
let inline createTempDirectory () =
let tempFolder = File_system.create_temp_directory_name ()
let result = System.IO.Directory.CreateDirectory tempFolder
if not result.Exists then
let getLocals () =
$"tempFolder: {tempFolder} / result: {({|
Exists = result.Exists
CreationTime = result.CreationTime
|})} {getLocals ()}"
trace Debug ...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Builder =
#if !INTERACTIVE
open Lib
#endif
open Common
open FileSystem.Operators
/// ## buildProject
let inline buildProject runtime outputDir path = async {
let fullPath = path |> System.IO.Path.GetFullPath
let fileDir = fullPath |> System.IO.Path.GetDirectoryName
let extension = fullPath |> System.IO.Path.GetExtension
let getLocals () = $"fullPath: {fullPath} / {getLocals ()}"
trace Debug (fun () -> "buildProject") getLocals
match extension with
| ".fsproj" -> ()
| _ -> failwith "Invalid project file"
let runtimes =
runtime
|> Option.map List.singleton
|> ...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Supervisor =
#if !INTERACTIVE
open Lib
#endif
open Common
open FileSystem.Operators
open Microsoft.AspNetCore.SignalR.Client
/// ## sendJson
let inline sendJson (port : int) (json : string) = async {
let! portOpen = Networking.testPortOpen port
if portOpen then
try
let connection =
HubConnectionBuilder().WithUrl($"http://127.0.0.1:{port}").Build()
do! connection.StartAsync () |> Async.AwaitTask
let! result =
connection.InvokeAsync<string>("ClientToServerMsg", json) |> Async.AwaitTask
do! connection.StopAsync () |> Async.AwaitTask
trace Debug (fun () -> $"se...
── fsharp ──────────────────────────────────────────────────────────────────────
#if !INTERACTIVE
open Lib
#endif
── fsharp ──────────────────────────────────────────────────────────────────────
open Common
open FileSystem.Operators
── fsharp ──────────────────────────────────────────────────────────────────────
open System
open System.Collections.Generic
open System.IO
open System.Text
open System.Threading
// open FSharp.Compiler
// open FSharp.Compiler.Interactive.Shell
// open FSharp.Compiler.Diagnostics
// open FSharp.Compiler.EditorServices
── fsharp ──────────────────────────────────────────────────────────────────────
let inline mapErrors (severity, errors, lastTopLevelIndex) allCode =
let allCodeLineLength =
allCode |> Sm.split "\n" |> Array.length
errors
|> List.map (fun (_, error) ->
match error with
| Supervisor.FatalError message ->
(
severity, message, 0, ("", (0, 0), (0, 0))
)
|> List.singleton
| Supervisor.TracedError data ->
data.trace
|> List.truncate 5
|> List.append [[ data.message ]]
|> List.map (fun message ->
(
severity, message, 0, ("", (0, 0), (0, 0))
)
)
| Supervisor.PackageErrors data
| Supervisor.TokenizerErrors data
| Supervisor.ParserErrors data
| Supervisor.TypeErrors data ->
data.errors
|> List.filter (fun ((rangeStart, _), _) ->
trace Debug (fun () -> $"Eval.mapErrors / rangeStart.line:
{rangeStart.line} / lastTopLevelIndex: {lastTopLevelIndex} / allCodeLineLength:
{allCodeLineLength} / filtered: {rangeStart.line > allCodeLineLength}")
getLocals
rangeStart.line > allCodeLineLength
)
|> List.map (fun ((rangeStart, rangeEnd), message) ->
(
severity,
message,
0,
(
(data.uri |> System.IO.Path.GetFileName),
(
(match lastTopLevelIndex with
| Some i when rangeStart.line >= i +
allCodeLineLength + 3 ->
rangeStart.line - allCodeLineLength - 2
| _ -> rangeStart.line - allCodeLineLength),
(match lastTopLevelIndex with
| Some i when rangeStart.line >= i +
allCodeLineLength + 3 ->
rangeStart.character - 4
| _ -> rangeStart.character)
),
(
(match lastTopLevelIndex with
| Some i when rangeStart.line >= i +
allCodeLineLength + 3 ->
rangeEnd.line - allCodeLineLength - 2
| _ -> rangeEnd.line - allCodeLineLength),
(match lastTopLevelIndex with
| Some i when rangeStart.line >= i +
allCodeLineLength + 3 ->
rangeEnd.character - 4
| _ -> rangeEnd.character)
)
)
)
)
)
|> List.collect id
|> List.toArray
── fsharp ──────────────────────────────────────────────────────────────────────
let spiralExDir = Path.GetTempPath () </> "!spiral-ex"
let maxTermCountPath = spiralExDir </> "max_term_count.txt"
let mutable allCode = ""
── fsharp ──────────────────────────────────────────────────────────────────────
let log2 (text : string) =
if traceLevel = TraceLevel.Verbose then
try
let tmpPath = Path.GetTempPath ()
let logDir = Path.Combine (tmpPath, "_log_spiral_kernel")
Directory.CreateDirectory logDir |> ignore
let dateTimeStr = DateTime.Now.ToString "yyyy-MM-dd HH-mm-ss-fff"
let logFile = Path.Combine (logDir,
$"log_{dateTimeStr}_{Random().Next()}.txt")
let dateTimeStr = DateTime.Now.ToString "yyyy-MM-dd HH:mm:ss.fff"
let fileName = "SpiralScriptHelpers"
File.AppendAllText (logFile, $"{dateTimeStr} {fileName}
{text}{Environment.NewLine}") |> ignore
with ex ->
trace Debug (fun () -> $"V.log / ex: {ex |> Sm.format_exception}")
getLocals
── fsharp ──────────────────────────────────────────────────────────────────────
let log (text : string) =
if traceLevel = TraceLevel.Verbose then
try
let tmpPath = Path.GetTempPath ()
let logDir = Path.Combine (tmpPath, "_log_spiral_kernel")
Directory.CreateDirectory logDir |> ignore
let logFile = Path.Combine (logDir, "log.txt")
let dateTimeStr = DateTime.Now.ToString "yyyy-MM-dd HH:mm:ss.fff"
let fileName = "SpiralScriptHelpers"
File.AppendAllText (logFile, $"{dateTimeStr} {fileName}
{text}{Environment.NewLine}") |> ignore
with ex ->
trace Debug (fun () -> $"SpiralScriptHelpers.log / ex: {ex |>
Sm.format_exception}") getLocals
log2 text
── fsharp ──────────────────────────────────────────────────────────────────────
let assemblyName = Reflection.Assembly.GetEntryAssembly().GetName().Name
let inline startTokenRangeWatcher () =
if [[ "dotnet-repl" ]] |> List.contains assemblyName |> not then
let tmpSpiralDir = Path.GetTempPath () </> "!dotnet-interactive-spiral"
let tmpCodeDir = tmpSpiralDir </> "code"
let tmpTokensDir = tmpSpiralDir </> "tokens"
[[ tmpSpiralDir; tmpCodeDir; tmpTokensDir ]]
|> List.iter (fun dir -> if Directory.Exists dir |> not then
Directory.CreateDirectory dir |> ignore)
let stream, disposable = FileSystem.watchDirectory (fun _ -> false)
tmpCodeDir
try
let port = Supervisor.getCompilerPort () + 2
let existingFilesChild =
tmpCodeDir
|> System.IO.Directory.GetFiles
|> Array.map (fun codePath -> async {
try
let tokensPath = tmpTokensDir </> (codePath |>
System.IO.Path.GetFileName)
if File.Exists tokensPath |> not then
let! tokens = codePath |>
Supervisor.getFileTokenRange port None
match tokens with
| Some tokens ->
do!
tokens
|> FSharp.Json.Json.serialize
|> FileSystem.writeAllTextAsync tokensPath
| None ->
log $"Eval.watchDirectory / GetFiles / tokens:
None / {getLocals ()}"
with ex ->
log $"Eval.watchDirectory / GetFiles / ex: {ex |>
Sm.format_exception} / {getLocals ()}"
})
|> Async.Sequential
|> Async.Ignore
let streamAsyncChild =
stream
|> FSharp.Control.AsyncSeq.iterAsyncParallel (fun (ticks, event)
-> async {
try
let getLocals () = $"ticks: {ticks} / event: {event} /
{getLocals ()}"
match event with
| FileSystem.FileSystemChange.Changed (path, _) ->
let codePath = tmpCodeDir </> path
do!
codePath
|> FileSystem.waitForFileAccess (Some (
System.IO.FileAccess.Read,
System.IO.FileShare.Read
))
|> Async.runWithTimeoutAsync 1000
|> Async.Ignore
let! tokens = codePath |>
Supervisor.getFileTokenRange port None
match tokens with
| Some tokens ->
do!
tokens
|> FSharp.Json.Json.serialize
|> FileSystem.writeAllTextAsync
(tmpTokensDir </> path)
| None ->
log $"Eval.watchDirectory / iterAsyncParallel /
tokens: None / {getLocals ()}"
| _ -> ()
with ex ->
log $"Eval.watchDirectory / iterAsyncParallel / ex: {ex
|> Sm.format_exception} / {getLocals ()}"
})
async {
do! Async.Sleep 3000
existingFilesChild |> Async.StartImmediate
streamAsyncChild |> Async.Start
}
|> Async.Start
with ex ->
log $"Eval / ex: {ex |> Sm.format_exception}"
disposable
else new_disposable (fun () -> ())
── fsharp ──────────────────────────────────────────────────────────────────────
let inline eval
(fsi_eval:
string
-> System.Threading.CancellationToken
-> Choice<'a,Exception> * (TraceLevel * string * int * (string * (int *
int) * (int * int))) array)
(cancellationToken: Option<System.Threading.CancellationToken>)
(code: string)
=
log $"Eval / code: %A{code}"
let rawCellCode =
if code |> Sm.trim <> "// // trace"
then code |> Sm.replace "\r\n" "\n"
else
if traceLevel = Info
then traceLevel <- Verbose
else traceLevel <- Info
traceDump <- traceLevel = Verbose
"inl main () = ()"
let lines = rawCellCode |> Sm.split "\n"
if lines |> Array.exists (fun line -> line |> Sm.starts_with "#r " && line
|> Sm.ends_with "\"") then
let cancellationToken = defaultArg cancellationToken
System.Threading.CancellationToken.None
let ch, errors = fsi_eval code cancellationToken
match ch with
| Choice1Of2 v -> Ok(v), errors
| Choice2Of2 ex -> Error(ex), errors
else
try
let lastBlock =
lines
|> Array.tryFindBack (fun line ->
line |> String.length > 0
&& line.[[0]] <> ' '
)
let hasMain =
lastBlock
|> Option.exists (fun line ->
line |> Sm.starts_with "inl main "
|| line |> Sm.starts_with "let main "
)
let cellCode, lastTopLevelIndex =
if hasMain
then rawCellCode, None
else
let lastTopLevelIndex, _ =
(lines |> Array.indexed, (None, false))
||> Array.foldBack (fun (i, line) (lastTopLevelIndex,
finished) ->
trace Debug (fun () -> $"i: {i} / line: '{line}' /
lastTopLevelIndex: {lastTopLevelIndex} / finished: {finished}") getLocals
match line with
| _ when finished -> lastTopLevelIndex, true
| "" -> lastTopLevelIndex, false
| line when
line |> Sm.starts_with " "
|| line |> Sm.starts_with "// " ->
lastTopLevelIndex, false
| line when
line |> Sm.starts_with "open "
|| line |> Sm.starts_with "prototype "
|| line |> Sm.starts_with "instance "
|| line |> Sm.starts_with "type "
|| line |> Sm.starts_with "union "
|| line |> Sm.starts_with "nominal " ->
lastTopLevelIndex, true
| line when
line |> Sm.starts_with "inl "
|| line |> Sm.starts_with "let " ->
let m =
System.Text.RegularExpressions.Regex.Match (
line,
@"^(inl|let) +([[~\(\w]][[\w\d']]*(?:|
*[[~\w]][[\w\d']]*\)|, *[[~\w]][[\w\d']]*)) +[[:=]]"
)
trace Debug (fun () -> $"m: '{m}' /
m.Groups.Count: {m.Groups.Count}") getLocals
if m.Groups.Count = 3
then Some i, false
else lastTopLevelIndex, true
| _ -> Some i, false
)
let code =
match lastTopLevelIndex with
| Some lastTopLevelIndex ->
lines
|> Array.mapi (fun i line ->
match i with
| i when i < lastTopLevelIndex -> line
| i when i = lastTopLevelIndex -> $"\nlet main
() =\n {line}"
| _ when line |> Sm.trim = "" -> ""
| _ -> $" {line}"
)
|> Sm.concat "\n"
| None -> $"{rawCellCode}\n\ninl main () = ()\n"
code, lastTopLevelIndex
let newAllCode = $"{allCode}\n\n{cellCode}"
let rustArgs =
lines
|> Array.tryPick (fun line ->
if line |> Sm.starts_with "// // rust="
then line |> Sm.split "=" |> Array.tryItem 1
else None
)
let timeout =
lines
|> Array.tryPick (fun line ->
if line |> Sm.starts_with "// // timeout="
then line |> Sm.split "=" |> Array.tryItem 1 |> Option.map
int
else None
)
|> Option.defaultValue (60000 * 60)
let printCode =
lines
|> Array.tryPick (fun line ->
if line |> Sm.starts_with "// // print_code="
then line |> Sm.split "=" |> Array.tryItem 1 |> Option.map
((=) "true")
else None
)
|> Option.defaultValue true
let maxTermCount =
lines
|> Array.tryPick (fun line ->
if line |> Sm.starts_with "// // max_term_count="
then line |> Sm.split "=" |> Array.tryItem 1 |> Option.map
int
else None
)
async {
try
let! mainPath, disposable = newAllCode |>
Supervisor.persistCode
use _ = disposable
match maxTermCount with
| Some maxTermCount ->
do! maxTermCount |> string |>
FileSystem.writeAllTextAsync maxTermCountPath
| None -> ()
let port = Supervisor.getCompilerPort ()
let! codeChoice =
mainPath
|> Supervisor.buildFile timeout port cancellationToken
|> Async.catch
|> Async.runWithTimeoutAsync timeout
match maxTermCount with
| Some _ -> do! FileSystem.deleteFileAsync maxTermCountPath
|> Async.Ignore
| None -> ()
let code =
match codeChoice with
| Some (Ok code) -> Some code
| Some (Error ex) ->
log $"Eval / errors: {ex |> Sm.format_exception}"
None
| _ -> None
match code with
| Some (Some code, spiralErrors) ->
let spiralErrors =
mapErrors (Warning, spiralErrors, lastTopLevelIndex)
allCode
let inline _trace (fn : unit -> string) =
if traceLevel = Info
then fn () |> System.Console.WriteLine
else trace Info (fun () ->
$"SpiralScriptHelpers.Eval / {fn ()}") getLocals
if printCode
then _trace (fun () -> if rustArgs |> Option.isSome then
$"\n.fsx:\n{code}" else code)
let! rustResult =
if rustArgs |> Option.isNone || lastTopLevelIndex =
None
then None |> Async.init
else
async {
// let hash = $"repl_{code |>
Crypto.hashText}"
let hash = $"spiral_eval"
let! fsprojPath = code |>
Builder.persistCodeProject [["Fable.Core"]] [[]] hash
let projectDir = fsprojPath |>
Path.GetDirectoryName
let outDir = projectDir </> $"target/{hash}"
let libLinkTargetPath = projectDir </>
"target/fable-library-rust"
let libLinkPath = outDir </>
$"fable_modules/fable-library-rust"
if Directory.Exists libLinkTargetPath |> not
then libLinkTargetPath |>
Directory.CreateDirectory |> ignore
libLinkPath |> Path.GetDirectoryName |>
Directory.CreateDirectory |> ignore
let libLinkPathInfo = DirectoryInfo
libLinkPath
if libLinkPathInfo.Exists &&
libLinkPathInfo.LinkTarget = null then
Directory.Delete (libLinkPath, true)
if libLinkPath |> Directory.Exists |> not
then
Directory.CreateSymbolicLink
(libLinkPath, libLinkTargetPath)
|> ignore
let! exitCode, result =
Runtime.executeWithOptionsAsync
{
Command = $@"dotnet fable
{fsprojPath} --optimize --lang rs --extension .rs --outDir {outDir}"
CancellationToken =
cancellationToken
WorkingDirectory = None
OnLine = None
}
if exitCode <> 0
then return Some (Error result)
else
let rsPath = outDir </> $"{hash}.rs"
let! rsCode = rsPath |>
FileSystem.readAllTextAsync
let mainCode = "pub fn main() ->
Result<(), String> { Ok(()) }"
let cached = rsCode |> Sm.contains
mainCode
let rsCode =
if cached
then rsCode
else rsCode |> Sm.replace "),);"
"));"
if printCode
then _trace (fun () ->
$"\n.rs:\n{rsCode}")
if not cached
then do!
$"{rsCode}\n\n{mainCode}\n"
|> FileSystem.writeAllTextAsync
rsPath
let cargoTomlPath = outDir </>
$"Cargo.toml"
let cargoTomlContent = $"""[[package]]
name = "{hash}"
version = "0.0.1"
edition = "2021"
[[workspace]]
[[dependencies]]
fable_library_rust = {{ path = "fable_modules/fable-library-rust", optional =
true, default-features = false }}
clap = {{}}
num-complex = {{}}
pyo3 = "~0.21.0-beta.0"
[[features]]
default = [["fable_library_rust/default",
"fable_library_rust/static_do_bindings"]]
[[[[bin]]]]
name = "{hash}"
path = "{hash}.rs"
"""
do! cargoTomlContent |>
FileSystem.writeAllTextExists cargoTomlPath
let! exitCode, result =
Runtime.executeWithOptionsAsync
{
Command = $@"cargo run
--release --manifest-path {cargoTomlPath}"
CancellationToken =
cancellationToken
WorkingDirectory = None
OnLine = None
}
if exitCode = 0 then
try
let result =
result
|> Sm.split "\n"
|> Array.skipWhile (fun line
->
line |> Sm.contains
@"[[optimized]] target" |> not
)
|> Array.skip 2
|> Sm.concat "\n"
return Some (Ok result)
with ex ->
return $"ex:
{ex}\nresult:\n{result}" |> Error |> Some
else
return Some (Error result)
}
let cancellationToken = defaultArg cancellationToken
System.Threading.CancellationToken.None
let fsxResult =
if rustArgs |> Option.isSome
then None
else
try
let ch, errors = fsi_eval code
cancellationToken
let errors =
errors
|> Array.map (fun (e1, e2, e3, _) ->
(e1, e2, e3, ("", (0, 0), (0, 0)))
)
Some (ch, errors)
with ex ->
trace Critical (fun () ->
$"SpiralScriptHelpers.Eval / ex: {ex |> Sm.format_exception}") getLocals
None
match fsxResult, rustResult with
| Some (ch, errors), None ->
let errors = errors |> Array.append spiralErrors
match ch with
| Choice1Of2 v ->
allCode <- newAllCode
return Ok(v), errors
| Choice2Of2 ex -> return Error ex, errors
| _, Some result ->
let result, errors =
match result with
| Ok result -> result, [[||]]
| Error error ->
"",
[[|
(
TraceLevel.Critical, error, 0, ("",
(0, 0), (0, 0))
)
|]]
let header = if printCode then ".rs output:\n" else
""
let ch, errors2 = fsi_eval
$"\"\"\"{header}{result}\n\"\"\"" cancellationToken
let errors =
errors
|> Array.append spiralErrors
|> Array.append errors2
match ch with
| Choice1Of2 v ->
allCode <- newAllCode
return Ok(v), errors
| Choice2Of2 ex ->
return Error ex, errors
| _ ->
let ch, errors = fsi_eval "()" cancellationToken
match ch with
| Choice1Of2 v ->
allCode <- newAllCode
return Ok(v), errors
| Choice2Of2 ex ->
return Error ex, errors
| Some (None, errors) when errors |> List.isEmpty |> not ->
return errors.[[0]] |> fst |> Exception |> Error,
mapErrors (TraceLevel.Critical, errors,
lastTopLevelIndex) allCode
| _ ->
return Error (Exception "Spiral error or timeout"),
[[|
(
TraceLevel.Critical, "Diag: Spiral error or
timeout", 0, ("", (0, 0), (0, 0))
)
|]]
with ex ->
log $"Eval / ex: {ex |> Sm.format_exception}"
return Error (Exception $"Spiral error or timeout (4_) / ex:
{ex |> Sm.format_exception}"),
[[|
(
TraceLevel.Critical, $"Diag: Spiral error or timeout
(4) / ex: {ex |> Sm.format_exception}", 0, ("", (0, 0), (0, 0))
)
|]]
}
|> Async.runWithTimeoutStrict timeout
|> Option.defaultValue (
Error (Exception "Spiral error or timeout (2)"),
[[|
(
TraceLevel.Critical, "Diag: Spiral error or timeout
(2)", 0, ("", (0, 0), (0, 0))
)
|]]
)
with ex ->
log $"Eval / ex: {ex |> Sm.format_exception}"
Error (Exception $"Spiral error or timeout (3) / ex: {ex |>
Sm.format_exception}"),
[[|
(
TraceLevel.Critical, $"Diag: Spiral error or timeout (3) /
ex: {ex |> Sm.format_exception}", 0, ("", (0, 0), (0, 0))
)
|]]
[NbConvertApp] Converting notebook Eval.dib.ipynb to html
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
validate(nb)
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
return _pygments_highlight(
[NbConvertApp] Writing 373356 bytes to Eval.dib.html
00:00:00 #1 [Debug] writeDibCode / output: Fs / path: Eval.dib
00:00:00 #2 [Debug] parseDibCode / output: Fs / file: Eval.dib
In [ ]:
{ . "$ScriptDir/../lib/fsharp/build.ps1" -sequential 1 } | Invoke-Block
00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60
00:00:00 #2 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 Async.dib" -Retries 3"
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:00:02 #3 [Verbose] >
00:00:02 #4 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:02 #5 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:02 #6 [Verbose] > │ # Async (Polyglot) │
00:00:02 #7 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:02 #8 [Verbose] >
00:00:02 #9 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:02 #10 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib
00:00:02 #11 [Verbose] > #!import ../../lib/fsharp/Testing.dib
00:00:02 #12 [Verbose] >
00:00:02 #13 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:02 #14 [Verbose] > #r
00:00:02 #15 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
00:00:02 #16 [Verbose] > spNetCore.Html.Abstractions.dll"
00:00:02 #17 [Verbose] > #r
00:00:02 #18 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:02 #19 [Verbose] > otNet.Interactive.dll"
00:00:02 #20 [Verbose] > #r
00:00:02 #21 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:02 #22 [Verbose] > otNet.Interactive.FSharp.dll"
00:00:02 #23 [Verbose] > #r
00:00:02 #24 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:02 #25 [Verbose] > otNet.Interactive.Formatting.dll"
00:00:02 #26 [Verbose] > open System
00:00:02 #27 [Verbose] > open System.IO
00:00:02 #28 [Verbose] > open System.Text
00:00:02 #29 [Verbose] > open Microsoft.DotNet.Interactive.Formatting
00:00:05 #30 [Verbose] >
00:00:05 #31 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:05 #32 [Verbose] > #r
00:00:05 #33 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:05 #34 [Verbose] > otNet.Interactive.FSharp.dll"
00:00:05 #35 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
00:00:05 #36 [Verbose] > #r
00:00:05 #37 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:05 #38 [Verbose] > otNet.Interactive.dll"
00:00:05 #39 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel
00:00:05 #40 [Verbose] >
00:00:05 #41 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:05 #42 [Verbose] > //// test
00:00:05 #43 [Verbose] >
00:00:05 #44 [Verbose] > Formatter.ListExpansionLimit <- 100
00:00:06 #45 [Verbose] >
00:00:06 #46 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:06 #47 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
00:00:06 #48 [Verbose] >
00:00:06 #49 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:06 #50 [Verbose] > //// test
00:00:06 #51 [Verbose] >
00:00:06 #52 [Verbose] > type AssertExceptionFormatter (ex) =
00:00:06 #53 [Verbose] > member _.Text =
00:00:06 #54 [Verbose] > ex.ToString()
00:00:06 #55 [Verbose] > .Replace("32m", "<span style=\"color: green;\">")
00:00:06 #56 [Verbose] > .Replace("36m", "</span>")
00:00:06 #57 [Verbose] > .Replace("31m", "<span style=\"color: red;\">")
00:00:06 #58 [Verbose] > .Replace("\n", "<br/>\n")
00:00:06 #59 [Verbose] >
00:00:06 #60 [Verbose] >
00:00:06 #61 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :
00:00:06 #62 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")
00:00:06 #63 [Verbose] >
00:00:06 #64 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:06 #65 [Verbose] > //// test
00:00:06 #66 [Verbose] >
00:00:06 #67 [Verbose] > let inline __expect fn log expected actual =
00:00:06 #68 [Verbose] > if log then printfn $"{actual.ToDisplayString ()}"
00:00:06 #69 [Verbose] > try
00:00:06 #70 [Verbose] > "Testing.__expect" |> fn actual expected
00:00:06 #71 [Verbose] > with :? Expecto.AssertException as ex ->
00:00:06 #72 [Verbose] > AssertExceptionFormatter(ex).Display () |> ignore
00:00:06 #73 [Verbose] > failwith (ex.GetType().FullName)
00:00:06 #74 [Verbose] >
00:00:06 #75 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log
00:00:06 #76 [Verbose] > expected actual
00:00:06 #77 [Verbose] > let inline _contains expected actual = __contains true expected actual
00:00:06 #78 [Verbose] >
00:00:06 #79 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
00:00:06 #80 [Verbose] > expected actual
00:00:06 #81 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual
00:00:06 #82 [Verbose] >
00:00:06 #83 [Verbose] > let inline __isGreaterThan log expected actual = __expect
00:00:06 #84 [Verbose] > Expecto.Expect.isGreaterThan log ex...
00:00:07 #85 [Verbose] >
00:00:07 #86 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:07 #87 [Verbose] > //// test
00:00:07 #88 [Verbose] >
00:00:07 #89 [Verbose] > let inline __isBetween log a b actual =
00:00:07 #90 [Verbose] > let inline isBetween actual (a, b) _ =
00:00:07 #91 [Verbose] > __isGreaterThanOrEqual log a actual
00:00:07 #92 [Verbose] > __isLessThanOrEqual log b actual
00:00:07 #93 [Verbose] > __expect isBetween log (a, b) actual
00:00:07 #94 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual
00:00:07 #95 [Verbose] >
00:00:07 #96 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:07 #97 [Verbose] > #!import ../../lib/spiral/common.fsx
00:00:07 #98 [Verbose] > #!import ../../lib/spiral/sm.fsx
00:00:07 #99 [Verbose] > #!import ../../lib/spiral/date_time.fsx
00:00:07 #100 [Verbose] > #!import ../../lib/spiral/file_system.fsx
00:00:07 #101 [Verbose] > #!import ../../lib/spiral/lib.fsx
00:00:07 #102 [Verbose] > #!import ../../lib/fsharp/Common.fs
00:00:07 #103 [Verbose] >
00:00:07 #104 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:07 #105 [Verbose] > type [[<Struct>]] US0 =
00:00:07 #106 [Verbose] > | US0_0
00:00:07 #107 [Verbose] > | US0_1
00:00:07 #108 [Verbose] > and [[<Struct>]] US1 =
00:00:07 #109 [Verbose] > | US1_0
00:00:07 #110 [Verbose] > | US1_1 of f1_0 : US0
00:00:07 #111 [Verbose] > let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
00:00:07 #112 [Verbose] > v0
00:00:07 #113 [Verbose] > and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
00:00:07 #114 [Verbose] > let mutable result = None
00:00:07 #115 [Verbose] > #if FABLE_COMPILER_RUST && !WASM
00:00:07 #116 [Verbose] > let v1 : (unit -> unit) = method0(v0)
00:00:07 #117 [Verbose] > let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
00:00:07 #118 [Verbose] > () = Fable.Core.RustInterop.emitRustExpr () "v1()" }
00:00:07 #119 [Verbose] > v2
00:00:07 #120 [Verbose] > #endif
00:00:07 #121 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:00:07 #122 [Verbose] > let v3 : (unit -> unit) = method0(v0)
00:00:07 #123 [Verbose] > let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
00:00:07 #124 [Verbose] > () = Fable.Core.RustInterop.emitRustExpr () "v3()" }
00:00:07 #125 [Verbose] > v4
00:00:07 #126 [Verbose] > #endif
00:00:07 #127 [Verbose] > #if !FABLE_COMPILER && !F...
00:00:07 #128 [Verbose] >
00:00:07 #129 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:07 #130 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}
00:00:07 #131 [Verbose] > and Mut1 = {mutable l0 : int32}
00:00:07 #132 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =
00:00:07 #133 [Verbose] > let v2 : bool = v1.Contains v0
00:00:07 #134 [Verbose] > v2
00:00:07 #135 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =
00:00:07 #136 [Verbose] > closure1(v0)
00:00:07 #137 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =
00:00:07 #138 [Verbose] > let v2 : bool = v1.EndsWith v0
00:00:07 #139 [Verbose] > v2
00:00:07 #140 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =
00:00:07 #141 [Verbose] > closure3(v0)
00:00:07 #142 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
00:00:07 #143 [Verbose] > let v3 : string = v2.PadLeft (v0, v1)
00:00:07 #144 [Verbose] > v3
00:00:07 #145 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =
00:00:07 #146 [Verbose] > closure6(v0, v1)
00:00:07 #147 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =
00:00:07 #148 [Verbose] > closure5(v0)
00:00:07 #149 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =
00:00:07 #150 [Verbose] > let v2 : stri...
00:00:08 #151 [Verbose] >
00:00:08 #152 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:08 #153 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
00:00:08 #154 [Verbose] > let v2 : (System.Guid -> string) = _.ToString()
00:00:08 #155 [Verbose] > let v3 : string = v2 v0
00:00:08 #156 [Verbose] > let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
00:00:08 #157 [Verbose] > let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
00:00:08 #158 [Verbose] > v5
00:00:08 #159 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
00:00:08 #160 [Verbose] > closure1(v0)
00:00:08 #161 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =
00:00:08 #162 [Verbose] > let v3 : string = v2.Replace (v0, v1)
00:00:08 #163 [Verbose] > v3
00:00:08 #164 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =
00:00:08 #165 [Verbose] > closure5(v0, v1)
00:00:08 #166 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =
00:00:08 #167 [Verbose] > closure4(v0)
00:00:08 #168 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =
00:00:08 #169 [Verbose] > closure3()
00:00:08 #170 [Verbose] > and closure2 (...
00:00:08 #171 [Verbose] >
00:00:08 #172 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:08 #173 [Verbose] > type [[<Struct>]] US0 =
00:00:08 #174 [Verbose] > | US0_0
00:00:08 #175 [Verbose] > | US0_1
00:00:08 #176 [Verbose] > | US0_2
00:00:08 #177 [Verbose] > and [[<Struct>]] US1 =
00:00:08 #178 [Verbose] > | US1_0 of f0_0 : US0
00:00:08 #179 [Verbose] > | US1_1 of f1_0 : US0
00:00:08 #180 [Verbose] > let rec closure0 () () : string =
00:00:08 #181 [Verbose] > let mutable result = None
00:00:08 #182 [Verbose] > #if FABLE_COMPILER_RUST && !WASM
00:00:08 #183 [Verbose] > let v0 : US0 = US0_1
00:00:08 #184 [Verbose] > let v1 : US1 = US1_1(v0)
00:00:08 #185 [Verbose] > let v2 : string = $"create_temp_directory_name target: {v1}"
00:00:08 #186 [Verbose] > let v3 : string = failwith<string> v2
00:00:08 #187 [Verbose] > v3
00:00:08 #188 [Verbose] > #endif
00:00:08 #189 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:00:08 #190 [Verbose] > let v4 : US0 = US0_2
00:00:08 #191 [Verbose] > let v5 : US1 = US1_1(v4)
00:00:08 #192 [Verbose] > let v6 : string = $"create_temp_directory_name target: {v5}"
00:00:08 #193 [Verbose] > let v7 : string = failwith<string> v6
00:00:08 #194 [Verbose] > v7
00:00:08 #195 [Verbose] > #endif
00:00:08 #196 [Verbose] > #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM
00:00:08 #197 [Verbose] > let v8 : string = System.Reflection.Assembly.GetEntryAssembly()...
00:00:08 #198 [Verbose] >
00:00:08 #199 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:08 #200 [Verbose] > #if !WASM && !FABLE_COMPILER
00:00:08 #201 [Verbose] > module Date_time =
00:00:08 #202 [Verbose] > let new_guid_from_date_time x =
00:00:08 #203 [Verbose] > #if !INTERACTIVE
00:00:08 #204 [Verbose] > Date_time.new_guid_from_date_time x
00:00:08 #205 [Verbose] > #else
00:00:08 #206 [Verbose] > new_guid_from_date_time x
00:00:08 #207 [Verbose] > #endif
00:00:08 #208 [Verbose] > #endif
00:00:08 #209 [Verbose] >
00:00:08 #210 [Verbose] > module Sm =
00:00:08 #211 [Verbose] > let concat x =
00:00:08 #212 [Verbose] > #if !INTERACTIVE
00:00:08 #213 [Verbose] > Sm.concat x
00:00:08 #214 [Verbose] > #else
00:00:08 #215 [Verbose] > concat x
00:00:08 #216 [Verbose] > #endif
00:00:08 #217 [Verbose] >
00:00:08 #218 [Verbose] > let contains x =
00:00:08 #219 [Verbose] > #if !INTERACTIVE
00:00:08 #220 [Verbose] > Sm.contains x
00:00:08 #221 [Verbose] > #else
00:00:08 #222 [Verbose] > contains x
00:00:08 #223 [Verbose] > #endif
00:00:08 #224 [Verbose] >
00:00:08 #225 [Verbose] > let ellipsis x =
00:00:08 #226 [Verbose] > #if !INTERACTIVE
00:00:08 #227 [Verbose] > Sm.ellipsis x
00:00:08 #228 [Verbose] > #else
00:00:08 #229 [Verbose] > ellipsis x
00:00:08 #230 [Verbose] > #endif
00:00:08 #231 [Verbose] >
00:00:08 #232 [Verbose] > let ellipsis_end x =
00:00:08 #233 [Verbose] > #if !INTERACTIVE
00:00:08 #234 [Verbose] > Sm.ellipsis_end x
00:00:08 #235 [Verbose] > #else
00:00:08 #236 [Verbose] > ellipsis_end x
00:00:08 #237 [Verbose] > #endif
00:00:08 #238 [Verbose] >
00:00:08 #239 [Verbose] > let ends_with x =
00:00:08 #240 [Verbose] > #if !INTERACTIVE
00:00:08 #241 [Verbose] > Sm.ends_with x
00:00:08 #242 [Verbose] > #else
00:00:08 #243 [Verbose] > ends_with x
00:00:08 #244 [Verbose] > #endif
00:00:08 #245 [Verbose] >
00:00:08 #246 [Verbose] > let format_exception x =
00:00:08 #247 [Verbose] > #if !INTERACTIVE
00:00:08 #248 [Verbose] > Sm.format_...
00:00:08 #249 [Verbose] >
00:00:08 #250 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:08 #251 [Verbose] > #if !INTERACTIVE
00:00:08 #252 [Verbose] > namespace Polyglot
00:00:08 #253 [Verbose] > #endif
00:00:08 #254 [Verbose] >
00:00:08 #255 [Verbose] > module Common =
00:00:08 #256 [Verbose] >
00:00:08 #257 [Verbose] > #if !INTERACTIVE
00:00:08 #258 [Verbose] > open Lib
00:00:08 #259 [Verbose] > #endif
00:00:08 #260 [Verbose] >
00:00:08 #261 [Verbose] > let nl = System.Environment.NewLine
00:00:08 #262 [Verbose] > let q = @""""
00:00:08 #263 [Verbose] >
00:00:08 #264 [Verbose] > let inline cons head tail = head :: tail
00:00:08 #265 [Verbose] >
00:00:08 #266 [Verbose] > /// ## memoize
00:00:08 #267 [Verbose] >
00:00:08 #268 [Verbose] > let inline memoize fn =
00:00:08 #269 [Verbose] > let result = lazy fn ()
00:00:08 #270 [Verbose] > fun () -> result.Value
00:00:08 #271 [Verbose] >
00:00:08 #272 [Verbose] > /// ## TraceLevel
00:00:08 #273 [Verbose] >
00:00:08 #274 [Verbose] > type TraceLevel =
00:00:08 #275 [Verbose] > | Verbose
00:00:08 #276 [Verbose] > | Debug
00:00:08 #277 [Verbose] > | Info
00:00:08 #278 [Verbose] > | Warning
00:00:08 #279 [Verbose] > | Critical
00:00:08 #280 [Verbose] >
00:00:08 #281 [Verbose] > let inline getLocals () = ""
00:00:08 #282 [Verbose] >
00:00:08 #283 [Verbose] > let mutable traceEnabled = true
00:00:08 #284 [Verbose] > let mutable traceCount = 0
00:00:08 #285 [Verbose] > let mutable traceLevel = Verbose
00:00:08 #286 [Verbose] > let mutable traceDump = false
00:00:08 #287 [Verbose] >
00:00:08 #288 [Verbose] > let testTraceLevel level =
00:00:08 #289 [Verbose] > traceEnabled && level >= traceLevel
00:00:08 #290 [Verbose] >
00:00:08 #291 [Verbose] > /// ## traceRaw
00:00:08 #292 [Verbose] >
00:00:08 #293 [Verbose] > let rec traceRaw level fn =
00:00:08 #294 [Verbose] > ...
00:00:08 #295 [Verbose] >
00:00:08 #296 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:08 #297 [Verbose] > #if !INTERACTIVE
00:00:08 #298 [Verbose] > open Lib
00:00:08 #299 [Verbose] > #endif
00:00:08 #300 [Verbose] >
00:00:08 #301 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:08 #302 [Verbose] > open Common
00:00:08 #303 [Verbose] >
00:00:08 #304 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:08 #305 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:08 #306 [Verbose] > │ ## choice │
00:00:08 #307 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:08 #308 [Verbose] >
00:00:08 #309 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:08 #310 [Verbose] > let inline choice asyncs = async {
00:00:08 #311 [Verbose] > let e = Event<_> ()
00:00:08 #312 [Verbose] > use cts = new System.Threading.CancellationTokenSource ()
00:00:08 #313 [Verbose] > let fn =
00:00:08 #314 [Verbose] > asyncs
00:00:08 #315 [Verbose] > |> Seq.map (fun a -> async {
00:00:08 #316 [Verbose] > let! x = a
00:00:08 #317 [Verbose] > e.Trigger x
00:00:08 #318 [Verbose] > })
00:00:08 #319 [Verbose] > |> Async.Parallel
00:00:08 #320 [Verbose] > |> Async.Ignore
00:00:08 #321 [Verbose] > Async.Start (fn, cts.Token)
00:00:08 #322 [Verbose] > let! result = Async.AwaitEvent e.Publish
00:00:08 #323 [Verbose] > cts.Cancel ()
00:00:08 #324 [Verbose] > return result
00:00:08 #325 [Verbose] > }
00:00:08 #326 [Verbose] >
00:00:08 #327 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:08 #328 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:08 #329 [Verbose] > │ ## map │
00:00:08 #330 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:08 #331 [Verbose] >
00:00:08 #332 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:08 #333 [Verbose] > let inline map fn a = async {
00:00:08 #334 [Verbose] > let! x = a
00:00:08 #335 [Verbose] > return fn x
00:00:08 #336 [Verbose] > }
00:00:08 #337 [Verbose] >
00:00:08 #338 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:08 #339 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:08 #340 [Verbose] > │ ## catch │
00:00:08 #341 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:08 #342 [Verbose] >
00:00:08 #343 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:08 #344 [Verbose] > let inline catch a =
00:00:08 #345 [Verbose] > a
00:00:08 #346 [Verbose] > |> Async.Catch
00:00:08 #347 [Verbose] > |> map (function
00:00:08 #348 [Verbose] > | Choice1Of2 result -> Ok result
00:00:08 #349 [Verbose] > | Choice2Of2 ex -> Error ex
00:00:08 #350 [Verbose] > )
00:00:08 #351 [Verbose] >
00:00:08 #352 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:08 #353 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:08 #354 [Verbose] > │ ## runWithTimeoutAsync │
00:00:08 #355 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:08 #356 [Verbose] >
00:00:08 #357 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:08 #358 [Verbose] > let inline runWithTimeoutAsync_ (timeout : int) fn =
00:00:08 #359 [Verbose] > let getLocals () = $"timeout: {timeout} / {getLocals ()}"
00:00:08 #360 [Verbose] >
00:00:08 #361 [Verbose] > let timeoutTask = async {
00:00:08 #362 [Verbose] > do! Async.Sleep timeout
00:00:08 #363 [Verbose] > trace Debug (fun () -> "runWithTimeoutAsync") getLocals
00:00:08 #364 [Verbose] > return None
00:00:08 #365 [Verbose] > }
00:00:08 #366 [Verbose] >
00:00:08 #367 [Verbose] > let task = async {
00:00:08 #368 [Verbose] > try
00:00:08 #369 [Verbose] > let! result = fn
00:00:08 #370 [Verbose] > return Some result
00:00:08 #371 [Verbose] > with
00:00:08 #372 [Verbose] > | :? System.AggregateException as ex when
00:00:08 #373 [Verbose] > ex.InnerExceptions
00:00:08 #374 [Verbose] > |> Seq.exists (function :?
00:00:08 #375 [Verbose] > System.Threading.Tasks.TaskCanceledException -> true | _ -> false)
00:00:08 #376 [Verbose] > ->
00:00:08 #377 [Verbose] > let getLocals () = $"ex: {ex |> Sm.format_exception} / {getLocals
00:00:08 #378 [Verbose] > ()}"
00:00:08 #379 [Verbose] > trace Warning (fun () -> "runWithTimeoutAsync") getLocals
00:00:08 #380 [Verbose] > return None
00:00:08 #381 [Verbose] > | ex ->
00:00:08 #382 [Verbose] > trace Critical (fun () -> $"runWithTimeoutAsync** / ex: {ex |>
00:00:08 #383 [Verbose] > Sm.format_exception}") getLocals
00:00:08 #384 [Verbose] > return None
00:00:08 #385 [Verbose] > }
00:00:08 #386 [Verbose] >
00:00:08 #387 [Verbose] > [[ timeoutTask; task ]]
00:00:08 #388 [Verbose] > |> choice
00:00:08 #389 [Verbose] >
00:00:08 #390 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:08 #391 [Verbose] > let inline runWithTimeout_ timeout fn =
00:00:08 #392 [Verbose] > fn
00:00:08 #393 [Verbose] > |> runWithTimeoutAsync_ timeout
00:00:08 #394 [Verbose] > |> Async.RunSynchronously
00:00:08 #395 [Verbose] >
00:00:08 #396 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:08 #397 [Verbose] > //// test
00:00:08 #398 [Verbose] >
00:00:08 #399 [Verbose] > Async.Sleep 120
00:00:08 #400 [Verbose] > |> runWithTimeout_ 10
00:00:08 #401 [Verbose] > |> _assertEqual None
00:00:09 #402 [Verbose] >
00:00:09 #403 [Verbose] > ╭─[ 141.62ms - stdout ]────────────────────────────────────────────────────────╮
00:00:09 #404 [Verbose] > │ 00:00:00 #1 [Debug] runWithTimeoutAsync / timeout: 10 │
00:00:09 #405 [Verbose] > │ <null> │
00:00:09 #406 [Verbose] > │ │
00:00:09 #407 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:09 #408 [Verbose] >
00:00:09 #409 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:09 #410 [Verbose] > //// test
00:00:09 #411 [Verbose] >
00:00:09 #412 [Verbose] > Async.Sleep 10
00:00:09 #413 [Verbose] > |> runWithTimeout_ 60
00:00:09 #414 [Verbose] > |> _assertEqual (Some ())
00:00:09 #415 [Verbose] >
00:00:09 #416 [Verbose] > ╭─[ 104.44ms - stdout ]────────────────────────────────────────────────────────╮
00:00:09 #417 [Verbose] > │ FSharpOption<Unit> │
00:00:09 #418 [Verbose] > │ Value: <null> │
00:00:09 #419 [Verbose] > │ │
00:00:09 #420 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:09 #421 [Verbose] >
00:00:09 #422 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:09 #423 [Verbose] > //// test
00:00:09 #424 [Verbose] >
00:00:09 #425 [Verbose] > async {
00:00:09 #426 [Verbose] > raise (exn "error")
00:00:09 #427 [Verbose] > }
00:00:09 #428 [Verbose] > |> runWithTimeout_ 60
00:00:09 #429 [Verbose] > |> _assertEqual None
00:00:09 #430 [Verbose] >
00:00:09 #431 [Verbose] > ╭─[ 81.80ms - stdout ]─────────────────────────────────────────────────────────╮
00:00:09 #432 [Verbose] > │ 00:00:00 #2 [Critical] runWithTimeoutAsync** / ex: System.Exception: error / │
00:00:09 #433 [Verbose] > │ timeout: 60 │
00:00:09 #434 [Verbose] > │ <null> │
00:00:09 #435 [Verbose] > │ │
00:00:09 #436 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:09 #437 [Verbose] >
00:00:09 #438 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:09 #439 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:09 #440 [Verbose] > │ ## runWithTimeoutChildAsync │
00:00:09 #441 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:09 #442 [Verbose] >
00:00:09 #443 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:09 #444 [Verbose] > let inline runWithTimeoutChildAsync (timeout : int) fn = async {
00:00:09 #445 [Verbose] > let getLocals () = $"timeout: {timeout} / {getLocals ()}"
00:00:09 #446 [Verbose] > let! child = Async.StartChild (fn, timeout)
00:00:09 #447 [Verbose] > return!
00:00:09 #448 [Verbose] > child
00:00:09 #449 [Verbose] > |> catch
00:00:09 #450 [Verbose] > |> map (function
00:00:09 #451 [Verbose] > | Ok result -> Some result
00:00:09 #452 [Verbose] > | Error (:? System.TimeoutException as ex) ->
00:00:09 #453 [Verbose] > trace Debug (fun () -> $"runWithTimeoutChildAsync") getLocals
00:00:09 #454 [Verbose] > None
00:00:09 #455 [Verbose] > | Error ex ->
00:00:09 #456 [Verbose] > trace Critical (fun () -> $"runWithTimeoutChildAsync** / ex: {ex
00:00:09 #457 [Verbose] > |> Sm.format_exception}") getLocals
00:00:09 #458 [Verbose] > None
00:00:09 #459 [Verbose] > )
00:00:09 #460 [Verbose] > }
00:00:09 #461 [Verbose] >
00:00:09 #462 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:09 #463 [Verbose] > let inline runWithTimeoutChild timeout fn =
00:00:09 #464 [Verbose] > fn
00:00:09 #465 [Verbose] > |> runWithTimeoutChildAsync timeout
00:00:09 #466 [Verbose] > |> Async.RunSynchronously
00:00:09 #467 [Verbose] >
00:00:09 #468 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:09 #469 [Verbose] > let inline runWithTimeoutAsync timeout fn =
00:00:09 #470 [Verbose] > runWithTimeoutChildAsync timeout fn
00:00:09 #471 [Verbose] >
00:00:09 #472 [Verbose] > let inline runWithTimeout timeout fn =
00:00:09 #473 [Verbose] > runWithTimeoutChild timeout fn
00:00:09 #474 [Verbose] >
00:00:09 #475 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:09 #476 [Verbose] > //// test
00:00:09 #477 [Verbose] >
00:00:09 #478 [Verbose] > Async.Sleep 60
00:00:09 #479 [Verbose] > |> runWithTimeoutChild 10
00:00:09 #480 [Verbose] > |> _assertEqual None
00:00:09 #481 [Verbose] >
00:00:09 #482 [Verbose] > ╭─[ 94.69ms - stdout ]─────────────────────────────────────────────────────────╮
00:00:09 #483 [Verbose] > │ 00:00:00 #3 [Debug] runWithTimeoutChildAsync / timeout: 10 │
00:00:09 #484 [Verbose] > │ <null> │
00:00:09 #485 [Verbose] > │ │
00:00:09 #486 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:09 #487 [Verbose] >
00:00:09 #488 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:09 #489 [Verbose] > //// test
00:00:09 #490 [Verbose] >
00:00:09 #491 [Verbose] > Async.Sleep 10
00:00:09 #492 [Verbose] > |> runWithTimeoutChild 60
00:00:09 #493 [Verbose] > |> _assertEqual (Some ())
00:00:09 #494 [Verbose] >
00:00:09 #495 [Verbose] > ╭─[ 111.15ms - stdout ]────────────────────────────────────────────────────────╮
00:00:09 #496 [Verbose] > │ FSharpOption<Unit> │
00:00:09 #497 [Verbose] > │ Value: <null> │
00:00:09 #498 [Verbose] > │ │
00:00:09 #499 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:09 #500 [Verbose] >
00:00:09 #501 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:09 #502 [Verbose] > //// test
00:00:09 #503 [Verbose] >
00:00:09 #504 [Verbose] > async {
00:00:09 #505 [Verbose] > raise (exn "error")
00:00:09 #506 [Verbose] > }
00:00:09 #507 [Verbose] > |> runWithTimeoutChild 60
00:00:09 #508 [Verbose] > |> _assertEqual None
00:00:09 #509 [Verbose] >
00:00:09 #510 [Verbose] > ╭─[ 65.98ms - stdout ]─────────────────────────────────────────────────────────╮
00:00:09 #511 [Verbose] > │ 00:00:00 #4 [Critical] runWithTimeoutChildAsync** / ex: System.Exception: │
00:00:09 #512 [Verbose] > │ error / timeout: 60 │
00:00:09 #513 [Verbose] > │ <null> │
00:00:09 #514 [Verbose] > │ │
00:00:09 #515 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:09 #516 [Verbose] >
00:00:09 #517 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:09 #518 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:09 #519 [Verbose] > │ ## runWithTimeoutStrict │
00:00:09 #520 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:09 #521 [Verbose] >
00:00:09 #522 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:09 #523 [Verbose] > let inline runWithTimeoutStrict (timeout : int) fn =
00:00:09 #524 [Verbose] > let getLocals () = $"timeout: {timeout} / {getLocals ()}"
00:00:09 #525 [Verbose] >
00:00:09 #526 [Verbose] > let timeoutTask = async {
00:00:09 #527 [Verbose] > do! Async.Sleep timeout
00:00:09 #528 [Verbose] > return None, getLocals
00:00:09 #529 [Verbose] > }
00:00:09 #530 [Verbose] >
00:00:09 #531 [Verbose] > let task = async {
00:00:09 #532 [Verbose] > try
00:00:09 #533 [Verbose] > return Async.RunSynchronously (fn, timeout) |> Some, getLocals
00:00:09 #534 [Verbose] > with
00:00:09 #535 [Verbose] > | :? System.TimeoutException as ex ->
00:00:09 #536 [Verbose] > let getLocals () = $"ex: {ex |> Sm.format_exception} / {getLocals
00:00:09 #537 [Verbose] > ()}"
00:00:09 #538 [Verbose] > return None, getLocals
00:00:09 #539 [Verbose] > | ex ->
00:00:09 #540 [Verbose] > trace Critical (fun () -> $"runWithTimeoutStrict / ex: {ex |>
00:00:09 #541 [Verbose] > Sm.format_exception}") getLocals
00:00:09 #542 [Verbose] > return raise ex
00:00:09 #543 [Verbose] > }
00:00:09 #544 [Verbose] >
00:00:09 #545 [Verbose] > try
00:00:09 #546 [Verbose] > [[| timeoutTask; task |]]
00:00:09 #547 [Verbose] > |> Array.map Async.StartAsTask
00:00:09 #548 [Verbose] > |> System.Threading.Tasks.Task.WhenAny
00:00:09 #549 [Verbose] > |> fun task ->
00:00:09 #550 [Verbose] > match task.Result.Result with
00:00:09 #551 [Verbose] > | None, getLocals ->
00:00:09 #552 [Verbose] > trace Debug (fun () -> "runWithTimeoutStrict") getLocals
00:00:09 #553 [Verbose] > None
00:00:09 #554 [Verbose] > | result, _ -> result
00:00:09 #555 [Verbose] > with
00:00:09 #556 [Verbose] > | :? System.AggregateException as ex when
00:00:09 #557 [Verbose] > ex.InnerExceptions
00:00:09 #558 [Verbose] > |> Seq.exists (function :? System.Threading.Tasks.TaskCanceledException
00:00:09 #559 [Verbose] > -> true | _ -> false)
00:00:09 #560 [Verbose] > ->
00:00:09 #561 [Verbose] > let getLocals () = $"ex: {ex |> Sm.format_exception} / {getLocals ()}"
00:00:09 #562 [Verbose] > trace Warning (fun () -> "runWithTimeoutStrict") getLocals
00:00:09 #563 [Verbose] > None
00:00:09 #564 [Verbose] > | ex ->
00:00:09 #565 [Verbose] > let getLocals () = $"ex: {ex |> Sm.format_exception} / {getLocals ()}"
00:00:09 #566 [Verbose] > trace Critical (fun () -> "runWithTimeoutStrict**") getLocals
00:00:09 #567 [Verbose] > None
00:00:09 #568 [Verbose] >
00:00:09 #569 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:09 #570 [Verbose] > //// test
00:00:09 #571 [Verbose] >
00:00:09 #572 [Verbose] > Async.Sleep 60
00:00:09 #573 [Verbose] > |> runWithTimeoutStrict 10
00:00:09 #574 [Verbose] > |> _assertEqual None
00:00:09 #575 [Verbose] >
00:00:09 #576 [Verbose] > ╭─[ 89.59ms - stdout ]─────────────────────────────────────────────────────────╮
00:00:09 #577 [Verbose] > │ 00:00:00 #5 [Debug] runWithTimeoutStrict / timeout: 10 │
00:00:09 #578 [Verbose] > │ <null> │
00:00:09 #579 [Verbose] > │ │
00:00:09 #580 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:09 #581 [Verbose] >
00:00:09 #582 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:09 #583 [Verbose] > //// test
00:00:09 #584 [Verbose] >
00:00:09 #585 [Verbose] > Async.Sleep 10
00:00:09 #586 [Verbose] > |> runWithTimeoutStrict 60
00:00:09 #587 [Verbose] > |> _assertEqual (Some ())
00:00:09 #588 [Verbose] >
00:00:09 #589 [Verbose] > ╭─[ 88.98ms - stdout ]─────────────────────────────────────────────────────────╮
00:00:09 #590 [Verbose] > │ FSharpOption<Unit> │
00:00:09 #591 [Verbose] > │ Value: <null> │
00:00:09 #592 [Verbose] > │ │
00:00:09 #593 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:09 #594 [Verbose] >
00:00:09 #595 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:09 #596 [Verbose] > //// test
00:00:09 #597 [Verbose] >
00:00:09 #598 [Verbose] > async {
00:00:09 #599 [Verbose] > raise (exn "error")
00:00:09 #600 [Verbose] > }
00:00:09 #601 [Verbose] > |> runWithTimeoutStrict 60
00:00:09 #602 [Verbose] > |> _assertEqual None
00:00:10 #603 [Verbose] >
00:00:10 #604 [Verbose] > ╭─[ 83.74ms - stdout ]─────────────────────────────────────────────────────────╮
00:00:10 #605 [Verbose] > │ 00:00:01 #6 [Critical] runWithTimeoutStrict / ex: System.Exception: error / │
00:00:10 #606 [Verbose] > │ timeout: 60 │
00:00:10 #607 [Verbose] > │ 00:00:01 #7 [Critical] runWithTimeoutStrict** / ex: │
00:00:10 #608 [Verbose] > │ System.AggregateException: One or more errors occurred. (error) / timeout: │
00:00:10 #609 [Verbose] > │ 60 │
00:00:10 #610 [Verbose] > │ <null> │
00:00:10 #611 [Verbose] > │ │
00:00:10 #612 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #613 [Verbose] >
00:00:10 #614 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:10 #615 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:10 #616 [Verbose] > │ ## awaitValueTask │
00:00:10 #617 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #618 [Verbose] >
00:00:10 #619 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:10 #620 [Verbose] > let inline awaitValueTaskUnit (task : System.Threading.Tasks.ValueTask) =
00:00:10 #621 [Verbose] > task.AsTask () |> Async.AwaitTask
00:00:10 #622 [Verbose] >
00:00:10 #623 [Verbose] > let inline awaitValueTask (task : System.Threading.Tasks.ValueTask<_>) =
00:00:10 #624 [Verbose] > task.AsTask () |> Async.AwaitTask
00:00:10 #625 [Verbose] >
00:00:10 #626 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:10 #627 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:10 #628 [Verbose] > │ ## init │
00:00:10 #629 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #630 [Verbose] >
00:00:10 #631 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:10 #632 [Verbose] > let inline init x = async {
00:00:10 #633 [Verbose] > return x
00:00:10 #634 [Verbose] > }
00:00:10 #635 [Verbose] >
00:00:10 #636 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:10 #637 [Verbose] > //// test
00:00:10 #638 [Verbose] >
00:00:10 #639 [Verbose] > init 1
00:00:10 #640 [Verbose] > |> Async.RunSynchronously
00:00:10 #641 [Verbose] > |> _assertEqual 1
00:00:10 #642 [Verbose] >
00:00:10 #643 [Verbose] > ╭─[ 27.40ms - stdout ]─────────────────────────────────────────────────────────╮
00:00:10 #644 [Verbose] > │ 1 │
00:00:10 #645 [Verbose] > │ │
00:00:10 #646 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #647 [Verbose] >
00:00:10 #648 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:10 #649 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:10 #650 [Verbose] > │ ## mergeCancellationTokenWithDefaultAsync │
00:00:10 #651 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #652 [Verbose] >
00:00:10 #653 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:10 #654 [Verbose] > let inline mergeCancellationTokenWithDefaultAsync (token :
00:00:10 #655 [Verbose] > System.Threading.CancellationToken) = async {
00:00:10 #656 [Verbose] > let! ct = Async.CancellationToken
00:00:10 #657 [Verbose] > let dct = Async.DefaultCancellationToken
00:00:10 #658 [Verbose] > let cts = System.Threading.CancellationTokenSource.CreateLinkedTokenSource
00:00:10 #659 [Verbose] > [[| ct; dct; token |]]
00:00:10 #660 [Verbose] > return cts.Token
00:00:10 #661 [Verbose] > }
00:00:10 #662 [Verbose] >
00:00:10 #663 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:10 #664 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:10 #665 [Verbose] > │ ## withCancellationToken │
00:00:10 #666 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #667 [Verbose] >
00:00:10 #668 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:10 #669 [Verbose] > let inline withCancellationToken (ct : System.Threading.CancellationToken) fn =
00:00:10 #670 [Verbose] > Async.StartImmediateAsTask (fn, ct)
00:00:10 #671 [Verbose] > |> Async.AwaitTask
00:00:10 #672 [Verbose] >
00:00:10 #673 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:10 #674 [Verbose] > //// test
00:00:10 #675 [Verbose] >
00:00:10 #676 [Verbose] > let cts = new System.Threading.CancellationTokenSource ()
00:00:10 #677 [Verbose] >
00:00:10 #678 [Verbose] > async {
00:00:10 #679 [Verbose] > let run = async {
00:00:10 #680 [Verbose] > do! Async.Sleep 100
00:00:10 #681 [Verbose] > return 1
00:00:10 #682 [Verbose] > }
00:00:10 #683 [Verbose] >
00:00:10 #684 [Verbose] > let! child =
00:00:10 #685 [Verbose] > run
00:00:10 #686 [Verbose] > |> withCancellationToken cts.Token
00:00:10 #687 [Verbose] > |> catch
00:00:10 #688 [Verbose] > |> Async.StartChild
00:00:10 #689 [Verbose] >
00:00:10 #690 [Verbose] > do! Async.Sleep 50
00:00:10 #691 [Verbose] > cts.Cancel ()
00:00:10 #692 [Verbose] > return! child
00:00:10 #693 [Verbose] > }
00:00:10 #694 [Verbose] > |> Async.RunSynchronously
00:00:10 #695 [Verbose] > |> Result.mapError _.Message
00:00:10 #696 [Verbose] > |> _assertEqual (Error ("A task was canceled."))
00:00:10 #697 [Verbose] >
00:00:10 #698 [Verbose] > ╭─[ 182.15ms - stdout ]────────────────────────────────────────────────────────╮
00:00:10 #699 [Verbose] > │ FSharpResult<Int32,String> │
00:00:10 #700 [Verbose] > │ ResultValue: 0 │
00:00:10 #701 [Verbose] > │ ErrorValue: A task was canceled. │
00:00:10 #702 [Verbose] > │ │
00:00:10 #703 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #704 [Verbose] >
00:00:10 #705 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:10 #706 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:10 #707 [Verbose] > │ ## withTraceLevel │
00:00:10 #708 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #709 [Verbose] >
00:00:10 #710 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:10 #711 [Verbose] > let inline withTraceLevel level fn = async {
00:00:10 #712 [Verbose] > let oldTraceLevel = traceLevel
00:00:10 #713 [Verbose] > try
00:00:10 #714 [Verbose] > traceLevel <- level
00:00:10 #715 [Verbose] > return! fn
00:00:10 #716 [Verbose] > finally
00:00:10 #717 [Verbose] > traceLevel <- oldTraceLevel
00:00:10 #718 [Verbose] > }
00:00:11 #719 [Verbose] > [NbConvertApp] Converting notebook Async.dib.ipynb to html
00:00:11 #720 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:11 #721 [Verbose] > validate(nb)
00:00:12 #722 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:12 #723 [Verbose] > return _pygments_highlight(
00:00:12 #724 [Verbose] > [NbConvertApp] Writing 326835 bytes to Async.dib.html
00:00:13 #725 [Debug] executeAsync / exitCode: 0 / output.Length: 26627
00:00:13 #726 [Debug] main / executeCommand / exitCode: 0
00:00:13 #727 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 AsyncSeq.dib" -Retries 3"
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:00:15 #728 [Verbose] >
00:00:15 #729 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:15 #730 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:15 #731 [Verbose] > │ # AsyncSeq (Polyglot) │
00:00:15 #732 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:15 #733 [Verbose] >
00:00:15 #734 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:15 #735 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib
00:00:15 #736 [Verbose] > #!import ../../lib/fsharp/Testing.dib
00:00:15 #737 [Verbose] >
00:00:15 #738 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:15 #739 [Verbose] > #r
00:00:15 #740 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
00:00:15 #741 [Verbose] > spNetCore.Html.Abstractions.dll"
00:00:15 #742 [Verbose] > #r
00:00:15 #743 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:15 #744 [Verbose] > otNet.Interactive.dll"
00:00:15 #745 [Verbose] > #r
00:00:15 #746 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:15 #747 [Verbose] > otNet.Interactive.FSharp.dll"
00:00:15 #748 [Verbose] > #r
00:00:15 #749 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:15 #750 [Verbose] > otNet.Interactive.Formatting.dll"
00:00:15 #751 [Verbose] > open System
00:00:15 #752 [Verbose] > open System.IO
00:00:15 #753 [Verbose] > open System.Text
00:00:15 #754 [Verbose] > open Microsoft.DotNet.Interactive.Formatting
00:00:18 #755 [Verbose] >
00:00:18 #756 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:18 #757 [Verbose] > #r
00:00:18 #758 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:18 #759 [Verbose] > otNet.Interactive.FSharp.dll"
00:00:18 #760 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
00:00:18 #761 [Verbose] > #r
00:00:18 #762 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:18 #763 [Verbose] > otNet.Interactive.dll"
00:00:18 #764 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel
00:00:19 #765 [Verbose] >
00:00:19 #766 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:19 #767 [Verbose] > //// test
00:00:19 #768 [Verbose] >
00:00:19 #769 [Verbose] > Formatter.ListExpansionLimit <- 100
00:00:19 #770 [Verbose] >
00:00:19 #771 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:19 #772 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
00:00:19 #773 [Verbose] >
00:00:19 #774 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:19 #775 [Verbose] > //// test
00:00:19 #776 [Verbose] >
00:00:19 #777 [Verbose] > type AssertExceptionFormatter (ex) =
00:00:19 #778 [Verbose] > member _.Text =
00:00:19 #779 [Verbose] > ex.ToString()
00:00:19 #780 [Verbose] > .Replace("32m", "<span style=\"color: green;\">")
00:00:19 #781 [Verbose] > .Replace("36m", "</span>")
00:00:19 #782 [Verbose] > .Replace("31m", "<span style=\"color: red;\">")
00:00:19 #783 [Verbose] > .Replace("\n", "<br/>\n")
00:00:19 #784 [Verbose] >
00:00:19 #785 [Verbose] >
00:00:19 #786 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :
00:00:19 #787 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")
00:00:20 #788 [Verbose] >
00:00:20 #789 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:20 #790 [Verbose] > //// test
00:00:20 #791 [Verbose] >
00:00:20 #792 [Verbose] > let inline __expect fn log expected actual =
00:00:20 #793 [Verbose] > if log then printfn $"{actual.ToDisplayString ()}"
00:00:20 #794 [Verbose] > try
00:00:20 #795 [Verbose] > "Testing.__expect" |> fn actual expected
00:00:20 #796 [Verbose] > with :? Expecto.AssertException as ex ->
00:00:20 #797 [Verbose] > AssertExceptionFormatter(ex).Display () |> ignore
00:00:20 #798 [Verbose] > failwith (ex.GetType().FullName)
00:00:20 #799 [Verbose] >
00:00:20 #800 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log
00:00:20 #801 [Verbose] > expected actual
00:00:20 #802 [Verbose] > let inline _contains expected actual = __contains true expected actual
00:00:20 #803 [Verbose] >
00:00:20 #804 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
00:00:20 #805 [Verbose] > expected actual
00:00:20 #806 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual
00:00:20 #807 [Verbose] >
00:00:20 #808 [Verbose] > let inline __isGreaterThan log expected actual = __expect
00:00:20 #809 [Verbose] > Expecto.Expect.isGreaterThan log ex...
00:00:20 #810 [Verbose] >
00:00:20 #811 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:20 #812 [Verbose] > //// test
00:00:20 #813 [Verbose] >
00:00:20 #814 [Verbose] > let inline __isBetween log a b actual =
00:00:20 #815 [Verbose] > let inline isBetween actual (a, b) _ =
00:00:20 #816 [Verbose] > __isGreaterThanOrEqual log a actual
00:00:20 #817 [Verbose] > __isLessThanOrEqual log b actual
00:00:20 #818 [Verbose] > __expect isBetween log (a, b) actual
00:00:20 #819 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual
00:00:20 #820 [Verbose] >
00:00:20 #821 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:20 #822 [Verbose] > #r
00:00:20 #823 [Verbose] > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
00:00:20 #824 [Verbose] > dard2.1/FSharp.Control.AsyncSeq.dll"
00:00:20 #825 [Verbose] > #r
00:00:20 #826 [Verbose] > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
00:00:20 #827 [Verbose] > 0/System.Reactive.dll"
00:00:20 #828 [Verbose] > #r
00:00:20 #829 [Verbose] > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib
00:00:20 #830 [Verbose] > netstandard2.0/System.Reactive.Linq.dll"
00:00:20 #831 [Verbose] >
00:00:20 #832 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:20 #833 [Verbose] > #!import ../../lib/spiral/common.fsx
00:00:20 #834 [Verbose] > #!import ../../lib/spiral/sm.fsx
00:00:20 #835 [Verbose] > #!import ../../lib/spiral/date_time.fsx
00:00:20 #836 [Verbose] > #!import ../../lib/spiral/file_system.fsx
00:00:20 #837 [Verbose] > #!import ../../lib/spiral/lib.fsx
00:00:20 #838 [Verbose] > #!import ../../lib/fsharp/Common.fs
00:00:20 #839 [Verbose] > #!import ../../lib/fsharp/Async.fs
00:00:20 #840 [Verbose] >
00:00:20 #841 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:20 #842 [Verbose] > type [[<Struct>]] US0 =
00:00:20 #843 [Verbose] > | US0_0
00:00:20 #844 [Verbose] > | US0_1
00:00:20 #845 [Verbose] > and [[<Struct>]] US1 =
00:00:20 #846 [Verbose] > | US1_0
00:00:20 #847 [Verbose] > | US1_1 of f1_0 : US0
00:00:20 #848 [Verbose] > let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
00:00:20 #849 [Verbose] > v0
00:00:20 #850 [Verbose] > and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
00:00:20 #851 [Verbose] > let mutable result = None
00:00:20 #852 [Verbose] > #if FABLE_COMPILER_RUST && !WASM
00:00:20 #853 [Verbose] > let v1 : (unit -> unit) = method0(v0)
00:00:20 #854 [Verbose] > let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
00:00:20 #855 [Verbose] > () = Fable.Core.RustInterop.emitRustExpr () "v1()" }
00:00:20 #856 [Verbose] > v2
00:00:20 #857 [Verbose] > #endif
00:00:20 #858 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:00:20 #859 [Verbose] > let v3 : (unit -> unit) = method0(v0)
00:00:20 #860 [Verbose] > let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
00:00:20 #861 [Verbose] > () = Fable.Core.RustInterop.emitRustExpr () "v3()" }
00:00:20 #862 [Verbose] > v4
00:00:20 #863 [Verbose] > #endif
00:00:20 #864 [Verbose] > #if !FABLE_COMPILER && !F...
00:00:20 #865 [Verbose] >
00:00:20 #866 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:20 #867 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}
00:00:20 #868 [Verbose] > and Mut1 = {mutable l0 : int32}
00:00:20 #869 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =
00:00:20 #870 [Verbose] > let v2 : bool = v1.Contains v0
00:00:20 #871 [Verbose] > v2
00:00:20 #872 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =
00:00:20 #873 [Verbose] > closure1(v0)
00:00:20 #874 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =
00:00:20 #875 [Verbose] > let v2 : bool = v1.EndsWith v0
00:00:20 #876 [Verbose] > v2
00:00:20 #877 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =
00:00:20 #878 [Verbose] > closure3(v0)
00:00:20 #879 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
00:00:20 #880 [Verbose] > let v3 : string = v2.PadLeft (v0, v1)
00:00:20 #881 [Verbose] > v3
00:00:20 #882 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =
00:00:20 #883 [Verbose] > closure6(v0, v1)
00:00:20 #884 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =
00:00:20 #885 [Verbose] > closure5(v0)
00:00:20 #886 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =
00:00:20 #887 [Verbose] > let v2 : stri...
00:00:21 #888 [Verbose] >
00:00:21 #889 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:21 #890 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
00:00:21 #891 [Verbose] > let v2 : (System.Guid -> string) = _.ToString()
00:00:21 #892 [Verbose] > let v3 : string = v2 v0
00:00:21 #893 [Verbose] > let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
00:00:21 #894 [Verbose] > let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
00:00:21 #895 [Verbose] > v5
00:00:21 #896 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
00:00:21 #897 [Verbose] > closure1(v0)
00:00:21 #898 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =
00:00:21 #899 [Verbose] > let v3 : string = v2.Replace (v0, v1)
00:00:21 #900 [Verbose] > v3
00:00:21 #901 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =
00:00:21 #902 [Verbose] > closure5(v0, v1)
00:00:21 #903 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =
00:00:21 #904 [Verbose] > closure4(v0)
00:00:21 #905 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =
00:00:21 #906 [Verbose] > closure3()
00:00:21 #907 [Verbose] > and closure2 (...
00:00:21 #908 [Verbose] >
00:00:21 #909 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:21 #910 [Verbose] > type [[<Struct>]] US0 =
00:00:21 #911 [Verbose] > | US0_0
00:00:21 #912 [Verbose] > | US0_1
00:00:21 #913 [Verbose] > | US0_2
00:00:21 #914 [Verbose] > and [[<Struct>]] US1 =
00:00:21 #915 [Verbose] > | US1_0 of f0_0 : US0
00:00:21 #916 [Verbose] > | US1_1 of f1_0 : US0
00:00:21 #917 [Verbose] > let rec closure0 () () : string =
00:00:21 #918 [Verbose] > let mutable result = None
00:00:21 #919 [Verbose] > #if FABLE_COMPILER_RUST && !WASM
00:00:21 #920 [Verbose] > let v0 : US0 = US0_1
00:00:21 #921 [Verbose] > let v1 : US1 = US1_1(v0)
00:00:21 #922 [Verbose] > let v2 : string = $"create_temp_directory_name target: {v1}"
00:00:21 #923 [Verbose] > let v3 : string = failwith<string> v2
00:00:21 #924 [Verbose] > v3
00:00:21 #925 [Verbose] > #endif
00:00:21 #926 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:00:21 #927 [Verbose] > let v4 : US0 = US0_2
00:00:21 #928 [Verbose] > let v5 : US1 = US1_1(v4)
00:00:21 #929 [Verbose] > let v6 : string = $"create_temp_directory_name target: {v5}"
00:00:21 #930 [Verbose] > let v7 : string = failwith<string> v6
00:00:21 #931 [Verbose] > v7
00:00:21 #932 [Verbose] > #endif
00:00:21 #933 [Verbose] > #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM
00:00:21 #934 [Verbose] > let v8 : string = System.Reflection.Assembly.GetEntryAssembly()...
00:00:21 #935 [Verbose] >
00:00:21 #936 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:21 #937 [Verbose] > #if !WASM && !FABLE_COMPILER
00:00:21 #938 [Verbose] > module Date_time =
00:00:21 #939 [Verbose] > let new_guid_from_date_time x =
00:00:21 #940 [Verbose] > #if !INTERACTIVE
00:00:21 #941 [Verbose] > Date_time.new_guid_from_date_time x
00:00:21 #942 [Verbose] > #else
00:00:21 #943 [Verbose] > new_guid_from_date_time x
00:00:21 #944 [Verbose] > #endif
00:00:21 #945 [Verbose] > #endif
00:00:21 #946 [Verbose] >
00:00:21 #947 [Verbose] > module Sm =
00:00:21 #948 [Verbose] > let concat x =
00:00:21 #949 [Verbose] > #if !INTERACTIVE
00:00:21 #950 [Verbose] > Sm.concat x
00:00:21 #951 [Verbose] > #else
00:00:21 #952 [Verbose] > concat x
00:00:21 #953 [Verbose] > #endif
00:00:21 #954 [Verbose] >
00:00:21 #955 [Verbose] > let contains x =
00:00:21 #956 [Verbose] > #if !INTERACTIVE
00:00:21 #957 [Verbose] > Sm.contains x
00:00:21 #958 [Verbose] > #else
00:00:21 #959 [Verbose] > contains x
00:00:21 #960 [Verbose] > #endif
00:00:21 #961 [Verbose] >
00:00:21 #962 [Verbose] > let ellipsis x =
00:00:21 #963 [Verbose] > #if !INTERACTIVE
00:00:21 #964 [Verbose] > Sm.ellipsis x
00:00:21 #965 [Verbose] > #else
00:00:21 #966 [Verbose] > ellipsis x
00:00:21 #967 [Verbose] > #endif
00:00:21 #968 [Verbose] >
00:00:21 #969 [Verbose] > let ellipsis_end x =
00:00:21 #970 [Verbose] > #if !INTERACTIVE
00:00:21 #971 [Verbose] > Sm.ellipsis_end x
00:00:21 #972 [Verbose] > #else
00:00:21 #973 [Verbose] > ellipsis_end x
00:00:21 #974 [Verbose] > #endif
00:00:21 #975 [Verbose] >
00:00:21 #976 [Verbose] > let ends_with x =
00:00:21 #977 [Verbose] > #if !INTERACTIVE
00:00:21 #978 [Verbose] > Sm.ends_with x
00:00:21 #979 [Verbose] > #else
00:00:21 #980 [Verbose] > ends_with x
00:00:21 #981 [Verbose] > #endif
00:00:21 #982 [Verbose] >
00:00:21 #983 [Verbose] > let format_exception x =
00:00:21 #984 [Verbose] > #if !INTERACTIVE
00:00:21 #985 [Verbose] > Sm.format_...
00:00:21 #986 [Verbose] >
00:00:21 #987 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:21 #988 [Verbose] > #if !INTERACTIVE
00:00:21 #989 [Verbose] > namespace Polyglot
00:00:21 #990 [Verbose] > #endif
00:00:21 #991 [Verbose] >
00:00:21 #992 [Verbose] > module Common =
00:00:21 #993 [Verbose] >
00:00:21 #994 [Verbose] > #if !INTERACTIVE
00:00:21 #995 [Verbose] > open Lib
00:00:21 #996 [Verbose] > #endif
00:00:21 #997 [Verbose] >
00:00:21 #998 [Verbose] > let nl = System.Environment.NewLine
00:00:21 #999 [Verbose] > let q = @""""
00:00:21 #1000 [Verbose] >
00:00:21 #1001 [Verbose] > let inline cons head tail = head :: tail
00:00:21 #1002 [Verbose] >
00:00:21 #1003 [Verbose] > /// ## memoize
00:00:21 #1004 [Verbose] >
00:00:21 #1005 [Verbose] > let inline memoize fn =
00:00:21 #1006 [Verbose] > let result = lazy fn ()
00:00:21 #1007 [Verbose] > fun () -> result.Value
00:00:21 #1008 [Verbose] >
00:00:21 #1009 [Verbose] > /// ## TraceLevel
00:00:21 #1010 [Verbose] >
00:00:21 #1011 [Verbose] > type TraceLevel =
00:00:21 #1012 [Verbose] > | Verbose
00:00:21 #1013 [Verbose] > | Debug
00:00:21 #1014 [Verbose] > | Info
00:00:21 #1015 [Verbose] > | Warning
00:00:21 #1016 [Verbose] > | Critical
00:00:21 #1017 [Verbose] >
00:00:21 #1018 [Verbose] > let inline getLocals () = ""
00:00:21 #1019 [Verbose] >
00:00:21 #1020 [Verbose] > let mutable traceEnabled = true
00:00:21 #1021 [Verbose] > let mutable traceCount = 0
00:00:21 #1022 [Verbose] > let mutable traceLevel = Verbose
00:00:21 #1023 [Verbose] > let mutable traceDump = false
00:00:21 #1024 [Verbose] >
00:00:21 #1025 [Verbose] > let testTraceLevel level =
00:00:21 #1026 [Verbose] > traceEnabled && level >= traceLevel
00:00:21 #1027 [Verbose] >
00:00:21 #1028 [Verbose] > /// ## traceRaw
00:00:21 #1029 [Verbose] >
00:00:21 #1030 [Verbose] > let rec traceRaw level fn =
00:00:21 #1031 [Verbose] > ...
00:00:21 #1032 [Verbose] >
00:00:21 #1033 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:21 #1034 [Verbose] > #if !INTERACTIVE
00:00:21 #1035 [Verbose] > namespace Polyglot
00:00:21 #1036 [Verbose] > #endif
00:00:21 #1037 [Verbose] >
00:00:21 #1038 [Verbose] > module Async =
00:00:21 #1039 [Verbose] >
00:00:21 #1040 [Verbose] > #if !INTERACTIVE
00:00:21 #1041 [Verbose] > open Lib
00:00:21 #1042 [Verbose] > #endif
00:00:21 #1043 [Verbose] >
00:00:21 #1044 [Verbose] > open Common
00:00:21 #1045 [Verbose] >
00:00:21 #1046 [Verbose] > /// ## choice
00:00:21 #1047 [Verbose] >
00:00:21 #1048 [Verbose] > let inline choice asyncs = async {
00:00:21 #1049 [Verbose] > let e = Event<_> ()
00:00:21 #1050 [Verbose] > use cts = new System.Threading.CancellationTokenSource ()
00:00:21 #1051 [Verbose] > let fn =
00:00:21 #1052 [Verbose] > asyncs
00:00:21 #1053 [Verbose] > |> Seq.map (fun a -> async {
00:00:21 #1054 [Verbose] > let! x = a
00:00:21 #1055 [Verbose] > e.Trigger x
00:00:21 #1056 [Verbose] > })
00:00:21 #1057 [Verbose] > |> Async.Parallel
00:00:21 #1058 [Verbose] > |> Async.Ignore
00:00:21 #1059 [Verbose] > Async.Start (fn, cts.Token)
00:00:21 #1060 [Verbose] > let! result = Async.AwaitEvent e.Publish
00:00:21 #1061 [Verbose] > cts.Cancel ()
00:00:21 #1062 [Verbose] > return result
00:00:21 #1063 [Verbose] > }
00:00:21 #1064 [Verbose] >
00:00:21 #1065 [Verbose] > /// ## map
00:00:21 #1066 [Verbose] >
00:00:21 #1067 [Verbose] > let inline map fn a = async {
00:00:21 #1068 [Verbose] > let! x = a
00:00:21 #1069 [Verbose] > return fn x
00:00:21 #1070 [Verbose] > }
00:00:21 #1071 [Verbose] >
00:00:21 #1072 [Verbose] > /// ## catch
00:00:21 #1073 [Verbose] >
00:00:21 #1074 [Verbose] > let inline catch a =
00:00:21 #1075 [Verbose] > ...
00:00:22 #1076 [Verbose] >
00:00:22 #1077 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:22 #1078 [Verbose] > #if !INTERACTIVE
00:00:22 #1079 [Verbose] > open Lib
00:00:22 #1080 [Verbose] > #endif
00:00:22 #1081 [Verbose] >
00:00:22 #1082 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:22 #1083 [Verbose] > open Common
00:00:22 #1084 [Verbose] >
00:00:22 #1085 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:22 #1086 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:22 #1087 [Verbose] > │ ## subscribeEvent │
00:00:22 #1088 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:22 #1089 [Verbose] >
00:00:22 #1090 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:22 #1091 [Verbose] > let inline subscribeEvent (event: IEvent<'H, 'A>) map =
00:00:22 #1092 [Verbose] > let observable = System.Reactive.Linq.Observable.FromEventPattern<'H,
00:00:22 #1093 [Verbose] > 'A>(event.AddHandler, event.RemoveHandler)
00:00:22 #1094 [Verbose] > System.Reactive.Linq.Observable.Select (observable, fun event -> map
00:00:22 #1095 [Verbose] > event.EventArgs)
00:00:22 #1096 [Verbose] > |> FSharp.Control.AsyncSeq.ofObservableBuffered
00:00:22 #1097 [Verbose] >
00:00:22 #1098 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:22 #1099 [Verbose] > //// test
00:00:22 #1100 [Verbose] >
00:00:22 #1101 [Verbose] > type TestEvent () as self =
00:00:22 #1102 [Verbose] > member val Calls = [[]] with get, set
00:00:22 #1103 [Verbose] > member val Event = Event<ErrorEventHandler, ErrorEventArgs> () with get
00:00:22 #1104 [Verbose] >
00:00:22 #1105 [Verbose] > member _.AddCall text =
00:00:22 #1106 [Verbose] > self.Calls <- self.Calls @ [[ text ]]
00:00:22 #1107 [Verbose] >
00:00:22 #1108 [Verbose] > member _.EventInterface =
00:00:22 #1109 [Verbose] > { new IEvent<ErrorEventHandler, ErrorEventArgs> with
00:00:22 #1110 [Verbose] > member _.AddHandler handler =
00:00:22 #1111 [Verbose] > self.AddCall "AddHandler"
00:00:22 #1112 [Verbose] > self.Event.Publish.AddHandler handler
00:00:22 #1113 [Verbose] >
00:00:22 #1114 [Verbose] > member _.RemoveHandler handler =
00:00:22 #1115 [Verbose] > self.AddCall "RemoveHandler"
00:00:22 #1116 [Verbose] > self.Event.Publish.RemoveHandler handler
00:00:22 #1117 [Verbose] >
00:00:22 #1118 [Verbose] > member _.Subscribe observer =
00:00:22 #1119 [Verbose] > self.AddCall "IObservable.Subscribe"
00:00:22 #1120 [Verbose] > let disposable = self.Event.Publish.Subscribe observer
00:00:22 #1121 [Verbose] > new_disposable (fun () ->
00:00:22 #1122 [Verbose] > self.AddCall "IObservable.Dispose"
00:00:22 #1123 [Verbose] > disposable.Dispose ()
00:00:22 #1124 [Verbose] > )
00:00:22 #1125 [Verbose] > }
00:00:22 #1126 [Verbose] >
00:00:22 #1127 [Verbose] > member _.Subscribe () =
00:00:22 #1128 [Verbose] > subscribeEvent
00:00:22 #1129 [Verbose] > self.EventInterface
00:00:22 #1130 [Verbose] > (fun args ->
00:00:22 #1131 [Verbose] > let result = args.GetException () |> Sm.format_exception
00:00:22 #1132 [Verbose] > self.AddCall $"TestEvent.Subscribe({result})"
00:00:22 #1133 [Verbose] > result
00:00:22 #1134 [Verbose] > )
00:00:22 #1135 [Verbose] >
00:00:22 #1136 [Verbose] > member _.Iter subscription =
00:00:22 #1137 [Verbose] > subscription
00:00:22 #1138 [Verbose] > |> FSharp.Control.AsyncSeq.iteriAsync (fun i error -> async {
00:00:22 #1139 [Verbose] > self.AddCall $"TestEvent.Iter({i}: {error})"
00:00:22 #1140 [Verbose] > })
00:00:22 #1141 [Verbose] >
00:00:22 #1142 [Verbose] > member _.WaitCall text = async {
00:00:22 #1143 [Verbose] > while self.Calls |> List.last <> text do
00:00:22 #1144 [Verbose] > do! Async.SwitchToThreadPool ()
00:00:22 #1145 [Verbose] > }
00:00:22 #1146 [Verbose] >
00:00:22 #1147 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:22 #1148 [Verbose] > //// test
00:00:22 #1149 [Verbose] >
00:00:22 #1150 [Verbose] > let testEvent = TestEvent ()
00:00:22 #1151 [Verbose] >
00:00:22 #1152 [Verbose] > async {
00:00:22 #1153 [Verbose] > testEvent.AddCall "1"
00:00:22 #1154 [Verbose] > let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild
00:00:22 #1155 [Verbose] > do! testEvent.WaitCall "AddHandler"
00:00:22 #1156 [Verbose] > testEvent.AddCall "2"
00:00:22 #1157 [Verbose] > do! child
00:00:22 #1158 [Verbose] > testEvent.AddCall "3"
00:00:22 #1159 [Verbose] > }
00:00:22 #1160 [Verbose] > |> Async.runWithTimeout 300
00:00:22 #1161 [Verbose] > |> _assertEqual None
00:00:22 #1162 [Verbose] >
00:00:22 #1163 [Verbose] > testEvent.Calls
00:00:22 #1164 [Verbose] > |> Seq.toList
00:00:22 #1165 [Verbose] > |> _assertEqual [[ "1"; "AddHandler"; "2"; "RemoveHandler" ]]
00:00:23 #1166 [Verbose] >
00:00:23 #1167 [Verbose] > ╭─[ 491.80ms - stdout ]────────────────────────────────────────────────────────╮
00:00:23 #1168 [Verbose] > │ 00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 300 │
00:00:23 #1169 [Verbose] > │ <null> │
00:00:23 #1170 [Verbose] > │ [ 1, AddHandler, 2, RemoveHandler ] │
00:00:23 #1171 [Verbose] > │ │
00:00:23 #1172 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:23 #1173 [Verbose] >
00:00:23 #1174 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:23 #1175 [Verbose] > //// test
00:00:23 #1176 [Verbose] >
00:00:23 #1177 [Verbose] > let testEvent = TestEvent ()
00:00:23 #1178 [Verbose] >
00:00:23 #1179 [Verbose] > async {
00:00:23 #1180 [Verbose] > testEvent.AddCall "1"
00:00:23 #1181 [Verbose] > let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild
00:00:23 #1182 [Verbose] > do! testEvent.WaitCall "AddHandler"
00:00:23 #1183 [Verbose] > testEvent.AddCall "2"
00:00:23 #1184 [Verbose] > use _ = testEvent.EventInterface.Subscribe (fun args ->
00:00:23 #1185 [Verbose] > testEvent.AddCall $"testEvent.EventInterface.Subscribe({args})"
00:00:23 #1186 [Verbose] > )
00:00:23 #1187 [Verbose] > testEvent.AddCall "3"
00:00:23 #1188 [Verbose] > do! child
00:00:23 #1189 [Verbose] > testEvent.AddCall "4"
00:00:23 #1190 [Verbose] > }
00:00:23 #1191 [Verbose] > |> Async.runWithTimeout 300
00:00:23 #1192 [Verbose] > |> _assertEqual None
00:00:23 #1193 [Verbose] >
00:00:23 #1194 [Verbose] > testEvent.Calls
00:00:23 #1195 [Verbose] > |> _assertEqual [[ "1"; "AddHandler"; "2"; "IObservable.Subscribe"; "3";
00:00:23 #1196 [Verbose] > "RemoveHandler"; "IObservable.Dispose" ]]
00:00:23 #1197 [Verbose] >
00:00:23 #1198 [Verbose] > ╭─[ 399.22ms - stdout ]────────────────────────────────────────────────────────╮
00:00:23 #1199 [Verbose] > │ 00:00:00 #2 [Debug] runWithTimeoutChildAsync / timeout: 300 │
00:00:23 #1200 [Verbose] > │ <null> │
00:00:23 #1201 [Verbose] > │ [ 1, AddHandler, 2, IObservable.Subscribe, 3, RemoveHandler, │
00:00:23 #1202 [Verbose] > │ IObservable.Dispose ] │
00:00:23 #1203 [Verbose] > │ │
00:00:23 #1204 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:23 #1205 [Verbose] >
00:00:23 #1206 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:23 #1207 [Verbose] > //// test
00:00:23 #1208 [Verbose] >
00:00:23 #1209 [Verbose] > let testEvent = TestEvent ()
00:00:23 #1210 [Verbose] >
00:00:23 #1211 [Verbose] > async {
00:00:23 #1212 [Verbose] > testEvent.AddCall "1"
00:00:23 #1213 [Verbose] > let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild
00:00:23 #1214 [Verbose] > do! testEvent.WaitCall "AddHandler"
00:00:23 #1215 [Verbose] > testEvent.AddCall "2"
00:00:23 #1216 [Verbose] > use _ = testEvent.EventInterface.Subscribe (fun args ->
00:00:23 #1217 [Verbose] > async {
00:00:23 #1218 [Verbose] > do! testEvent.WaitCall "TestEvent.Iter(0: System.Exception: error)"
00:00:23 #1219 [Verbose] > testEvent.AddCall
00:00:23 #1220 [Verbose] > $"testEvent.EventInterface.Subscribe({args.GetException () |>
00:00:23 #1221 [Verbose] > Sm.format_exception})"
00:00:23 #1222 [Verbose] > }
00:00:23 #1223 [Verbose] > |> Async.RunSynchronously
00:00:23 #1224 [Verbose] > )
00:00:23 #1225 [Verbose] > testEvent.AddCall "3"
00:00:23 #1226 [Verbose] > testEvent.Event.Trigger (null, ErrorEventArgs (Exception "error"))
00:00:23 #1227 [Verbose] > testEvent.AddCall "4"
00:00:23 #1228 [Verbose] > do! child
00:00:23 #1229 [Verbose] > testEvent.AddCall "5"
00:00:23 #1230 [Verbose] > }
00:00:23 #1231 [Verbose] > |> Async.runWithTimeout 300
00:00:23 #1232 [Verbose] > |> _assertEqual None
00:00:23 #1233 [Verbose] >
00:00:23 #1234 [Verbose] > testEvent.Calls
00:00:23 #1235 [Verbose] > |> _assertEqual [[
00:00:23 #1236 [Verbose] > "1"
00:00:23 #1237 [Verbose] > "AddHandler"
00:00:23 #1238 [Verbose] > "2"
00:00:23 #1239 [Verbose] > "IObservable.Subscribe"
00:00:23 #1240 [Verbose] > "3"
00:00:23 #1241 [Verbose] > "TestEvent.Subscribe(System.Exception: error)"
00:00:23 #1242 [Verbose] > "TestEvent.Iter(0: System.Exception: error)"
00:00:23 #1243 [Verbose] > "testEvent.EventInterface.Subscribe(System.Exception: error)"
00:00:23 #1244 [Verbose] > "4"
00:00:23 #1245 [Verbose] > "RemoveHandler"
00:00:23 #1246 [Verbose] > "IObservable.Dispose"
00:00:23 #1247 [Verbose] > ]]
00:00:23 #1248 [Verbose] >
00:00:23 #1249 [Verbose] > ╭─[ 430.26ms - stdout ]────────────────────────────────────────────────────────╮
00:00:23 #1250 [Verbose] > │ 00:00:00 #3 [Debug] runWithTimeoutChildAsync / timeout: 300 │
00:00:23 #1251 [Verbose] > │ <null> │
00:00:23 #1252 [Verbose] > │ [ 1, AddHandler, 2, IObservable.Subscribe, 3, │
00:00:23 #1253 [Verbose] > │ TestEvent.Subscribe(System.Exception: error), TestEvent.Iter(0: │
00:00:23 #1254 [Verbose] > │ System.Exception: error), │
00:00:23 #1255 [Verbose] > │ testEvent.EventInterface.Subscribe(System.Exception: error), 4, │
00:00:23 #1256 [Verbose] > │ RemoveHandler, IObservable.Dispose ] │
00:00:23 #1257 [Verbose] > │ │
00:00:23 #1258 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:23 #1259 [Verbose] >
00:00:23 #1260 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:23 #1261 [Verbose] > let subscribeToken (token : System.Threading.CancellationToken) =
00:00:23 #1262 [Verbose] > let tcs = new System.Threading.Tasks.TaskCompletionSource ()
00:00:23 #1263 [Verbose] > System.Action tcs.SetResult |> token.Register |> ignore
00:00:23 #1264 [Verbose] > let start = System.DateTime.Now.Ticks
00:00:23 #1265 [Verbose] > FSharp.Control.AsyncSeq.unfoldAsync
00:00:23 #1266 [Verbose] > (fun () -> async {
00:00:23 #1267 [Verbose] > do! tcs.Task |> Async.AwaitTask
00:00:23 #1268 [Verbose] > return Some (System.DateTime.Now.Ticks - start, ())
00:00:23 #1269 [Verbose] > })
00:00:23 #1270 [Verbose] > ()
00:00:24 #1271 [Verbose] >
00:00:24 #1272 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:24 #1273 [Verbose] > //// test
00:00:24 #1274 [Verbose] >
00:00:24 #1275 [Verbose] > let cts = new System.Threading.CancellationTokenSource ()
00:00:24 #1276 [Verbose] >
00:00:24 #1277 [Verbose] > async {
00:00:24 #1278 [Verbose] > let! child =
00:00:24 #1279 [Verbose] > cts.Token
00:00:24 #1280 [Verbose] > |> subscribeToken
00:00:24 #1281 [Verbose] > |> FSharp.Control.AsyncSeq.tryFirst
00:00:24 #1282 [Verbose] > |> Async.StartChild
00:00:24 #1283 [Verbose] >
00:00:24 #1284 [Verbose] > do! Async.Sleep 100
00:00:24 #1285 [Verbose] > cts.Cancel ()
00:00:24 #1286 [Verbose] > return! child
00:00:24 #1287 [Verbose] > }
00:00:24 #1288 [Verbose] > |> Async.RunSynchronously
00:00:24 #1289 [Verbose] > |> Option.get
00:00:24 #1290 [Verbose] > |> _isGreaterThan 900000
00:00:24 #1291 [Verbose] >
00:00:24 #1292 [Verbose] > ╭─[ 182.18ms - stdout ]────────────────────────────────────────────────────────╮
00:00:24 #1293 [Verbose] > │ 1124014 │
00:00:24 #1294 [Verbose] > │ │
00:00:24 #1295 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:25 #1296 [Verbose] > [NbConvertApp] Converting notebook AsyncSeq.dib.ipynb to html
00:00:25 #1297 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:25 #1298 [Verbose] > validate(nb)
00:00:26 #1299 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:26 #1300 [Verbose] > return _pygments_highlight(
00:00:26 #1301 [Verbose] > [NbConvertApp] Writing 302545 bytes to AsyncSeq.dib.html
00:00:27 #1302 [Debug] executeAsync / exitCode: 0 / output.Length: 18930
00:00:27 #1303 [Debug] main / executeCommand / exitCode: 0
00:00:27 #1304 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 Common.dib" -Retries 3"
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:00:29 #1305 [Verbose] >
00:00:29 #1306 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:29 #1307 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:29 #1308 [Verbose] > │ # Common (Polyglot) │
00:00:29 #1309 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:29 #1310 [Verbose] >
00:00:29 #1311 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:29 #1312 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib
00:00:29 #1313 [Verbose] > #!import ../../lib/fsharp/Testing.dib
00:00:29 #1314 [Verbose] >
00:00:29 #1315 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:29 #1316 [Verbose] > #r
00:00:29 #1317 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
00:00:29 #1318 [Verbose] > spNetCore.Html.Abstractions.dll"
00:00:29 #1319 [Verbose] > #r
00:00:29 #1320 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:29 #1321 [Verbose] > otNet.Interactive.dll"
00:00:29 #1322 [Verbose] > #r
00:00:29 #1323 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:29 #1324 [Verbose] > otNet.Interactive.FSharp.dll"
00:00:29 #1325 [Verbose] > #r
00:00:29 #1326 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:29 #1327 [Verbose] > otNet.Interactive.Formatting.dll"
00:00:29 #1328 [Verbose] > open System
00:00:29 #1329 [Verbose] > open System.IO
00:00:29 #1330 [Verbose] > open System.Text
00:00:29 #1331 [Verbose] > open Microsoft.DotNet.Interactive.Formatting
00:00:32 #1332 [Verbose] >
00:00:32 #1333 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:32 #1334 [Verbose] > #r
00:00:32 #1335 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:32 #1336 [Verbose] > otNet.Interactive.FSharp.dll"
00:00:32 #1337 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
00:00:32 #1338 [Verbose] > #r
00:00:32 #1339 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:32 #1340 [Verbose] > otNet.Interactive.dll"
00:00:32 #1341 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel
00:00:32 #1342 [Verbose] >
00:00:32 #1343 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:32 #1344 [Verbose] > //// test
00:00:32 #1345 [Verbose] >
00:00:32 #1346 [Verbose] > Formatter.ListExpansionLimit <- 100
00:00:33 #1347 [Verbose] >
00:00:33 #1348 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:33 #1349 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
00:00:33 #1350 [Verbose] >
00:00:33 #1351 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:33 #1352 [Verbose] > //// test
00:00:33 #1353 [Verbose] >
00:00:33 #1354 [Verbose] > type AssertExceptionFormatter (ex) =
00:00:33 #1355 [Verbose] > member _.Text =
00:00:33 #1356 [Verbose] > ex.ToString()
00:00:33 #1357 [Verbose] > .Replace("32m", "<span style=\"color: green;\">")
00:00:33 #1358 [Verbose] > .Replace("36m", "</span>")
00:00:33 #1359 [Verbose] > .Replace("31m", "<span style=\"color: red;\">")
00:00:33 #1360 [Verbose] > .Replace("\n", "<br/>\n")
00:00:33 #1361 [Verbose] >
00:00:33 #1362 [Verbose] >
00:00:33 #1363 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :
00:00:33 #1364 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")
00:00:33 #1365 [Verbose] >
00:00:33 #1366 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:33 #1367 [Verbose] > //// test
00:00:33 #1368 [Verbose] >
00:00:33 #1369 [Verbose] > let inline __expect fn log expected actual =
00:00:33 #1370 [Verbose] > if log then printfn $"{actual.ToDisplayString ()}"
00:00:33 #1371 [Verbose] > try
00:00:33 #1372 [Verbose] > "Testing.__expect" |> fn actual expected
00:00:33 #1373 [Verbose] > with :? Expecto.AssertException as ex ->
00:00:33 #1374 [Verbose] > AssertExceptionFormatter(ex).Display () |> ignore
00:00:33 #1375 [Verbose] > failwith (ex.GetType().FullName)
00:00:33 #1376 [Verbose] >
00:00:33 #1377 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log
00:00:33 #1378 [Verbose] > expected actual
00:00:33 #1379 [Verbose] > let inline _contains expected actual = __contains true expected actual
00:00:33 #1380 [Verbose] >
00:00:33 #1381 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
00:00:33 #1382 [Verbose] > expected actual
00:00:33 #1383 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual
00:00:33 #1384 [Verbose] >
00:00:33 #1385 [Verbose] > let inline __isGreaterThan log expected actual = __expect
00:00:33 #1386 [Verbose] > Expecto.Expect.isGreaterThan log ex...
00:00:34 #1387 [Verbose] >
00:00:34 #1388 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:34 #1389 [Verbose] > //// test
00:00:34 #1390 [Verbose] >
00:00:34 #1391 [Verbose] > let inline __isBetween log a b actual =
00:00:34 #1392 [Verbose] > let inline isBetween actual (a, b) _ =
00:00:34 #1393 [Verbose] > __isGreaterThanOrEqual log a actual
00:00:34 #1394 [Verbose] > __isLessThanOrEqual log b actual
00:00:34 #1395 [Verbose] > __expect isBetween log (a, b) actual
00:00:34 #1396 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual
00:00:34 #1397 [Verbose] >
00:00:34 #1398 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:34 #1399 [Verbose] > #!import ../../lib/spiral/common.fsx
00:00:34 #1400 [Verbose] > #!import ../../lib/spiral/sm.fsx
00:00:34 #1401 [Verbose] > #!import ../../lib/spiral/date_time.fsx
00:00:34 #1402 [Verbose] > #!import ../../lib/spiral/file_system.fsx
00:00:34 #1403 [Verbose] > #!import ../../lib/spiral/lib.fsx
00:00:34 #1404 [Verbose] >
00:00:34 #1405 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:34 #1406 [Verbose] > type [[<Struct>]] US0 =
00:00:34 #1407 [Verbose] > | US0_0
00:00:34 #1408 [Verbose] > | US0_1
00:00:34 #1409 [Verbose] > and [[<Struct>]] US1 =
00:00:34 #1410 [Verbose] > | US1_0
00:00:34 #1411 [Verbose] > | US1_1 of f1_0 : US0
00:00:34 #1412 [Verbose] > let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
00:00:34 #1413 [Verbose] > v0
00:00:34 #1414 [Verbose] > and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
00:00:34 #1415 [Verbose] > let mutable result = None
00:00:34 #1416 [Verbose] > #if FABLE_COMPILER_RUST && !WASM
00:00:34 #1417 [Verbose] > let v1 : (unit -> unit) = method0(v0)
00:00:34 #1418 [Verbose] > let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
00:00:34 #1419 [Verbose] > () = Fable.Core.RustInterop.emitRustExpr () "v1()" }
00:00:34 #1420 [Verbose] > v2
00:00:34 #1421 [Verbose] > #endif
00:00:34 #1422 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:00:34 #1423 [Verbose] > let v3 : (unit -> unit) = method0(v0)
00:00:34 #1424 [Verbose] > let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
00:00:34 #1425 [Verbose] > () = Fable.Core.RustInterop.emitRustExpr () "v3()" }
00:00:34 #1426 [Verbose] > v4
00:00:34 #1427 [Verbose] > #endif
00:00:34 #1428 [Verbose] > #if !FABLE_COMPILER && !F...
00:00:34 #1429 [Verbose] >
00:00:34 #1430 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:34 #1431 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}
00:00:34 #1432 [Verbose] > and Mut1 = {mutable l0 : int32}
00:00:34 #1433 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =
00:00:34 #1434 [Verbose] > let v2 : bool = v1.Contains v0
00:00:34 #1435 [Verbose] > v2
00:00:34 #1436 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =
00:00:34 #1437 [Verbose] > closure1(v0)
00:00:34 #1438 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =
00:00:34 #1439 [Verbose] > let v2 : bool = v1.EndsWith v0
00:00:34 #1440 [Verbose] > v2
00:00:34 #1441 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =
00:00:34 #1442 [Verbose] > closure3(v0)
00:00:34 #1443 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
00:00:34 #1444 [Verbose] > let v3 : string = v2.PadLeft (v0, v1)
00:00:34 #1445 [Verbose] > v3
00:00:34 #1446 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =
00:00:34 #1447 [Verbose] > closure6(v0, v1)
00:00:34 #1448 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =
00:00:34 #1449 [Verbose] > closure5(v0)
00:00:34 #1450 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =
00:00:34 #1451 [Verbose] > let v2 : stri...
00:00:35 #1452 [Verbose] >
00:00:35 #1453 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:35 #1454 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
00:00:35 #1455 [Verbose] > let v2 : (System.Guid -> string) = _.ToString()
00:00:35 #1456 [Verbose] > let v3 : string = v2 v0
00:00:35 #1457 [Verbose] > let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
00:00:35 #1458 [Verbose] > let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
00:00:35 #1459 [Verbose] > v5
00:00:35 #1460 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
00:00:35 #1461 [Verbose] > closure1(v0)
00:00:35 #1462 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =
00:00:35 #1463 [Verbose] > let v3 : string = v2.Replace (v0, v1)
00:00:35 #1464 [Verbose] > v3
00:00:35 #1465 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =
00:00:35 #1466 [Verbose] > closure5(v0, v1)
00:00:35 #1467 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =
00:00:35 #1468 [Verbose] > closure4(v0)
00:00:35 #1469 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =
00:00:35 #1470 [Verbose] > closure3()
00:00:35 #1471 [Verbose] > and closure2 (...
00:00:35 #1472 [Verbose] >
00:00:35 #1473 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:35 #1474 [Verbose] > type [[<Struct>]] US0 =
00:00:35 #1475 [Verbose] > | US0_0
00:00:35 #1476 [Verbose] > | US0_1
00:00:35 #1477 [Verbose] > | US0_2
00:00:35 #1478 [Verbose] > and [[<Struct>]] US1 =
00:00:35 #1479 [Verbose] > | US1_0 of f0_0 : US0
00:00:35 #1480 [Verbose] > | US1_1 of f1_0 : US0
00:00:35 #1481 [Verbose] > let rec closure0 () () : string =
00:00:35 #1482 [Verbose] > let mutable result = None
00:00:35 #1483 [Verbose] > #if FABLE_COMPILER_RUST && !WASM
00:00:35 #1484 [Verbose] > let v0 : US0 = US0_1
00:00:35 #1485 [Verbose] > let v1 : US1 = US1_1(v0)
00:00:35 #1486 [Verbose] > let v2 : string = $"create_temp_directory_name target: {v1}"
00:00:35 #1487 [Verbose] > let v3 : string = failwith<string> v2
00:00:35 #1488 [Verbose] > v3
00:00:35 #1489 [Verbose] > #endif
00:00:35 #1490 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:00:35 #1491 [Verbose] > let v4 : US0 = US0_2
00:00:35 #1492 [Verbose] > let v5 : US1 = US1_1(v4)
00:00:35 #1493 [Verbose] > let v6 : string = $"create_temp_directory_name target: {v5}"
00:00:35 #1494 [Verbose] > let v7 : string = failwith<string> v6
00:00:35 #1495 [Verbose] > v7
00:00:35 #1496 [Verbose] > #endif
00:00:35 #1497 [Verbose] > #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM
00:00:35 #1498 [Verbose] > let v8 : string = System.Reflection.Assembly.GetEntryAssembly()...
00:00:35 #1499 [Verbose] >
00:00:35 #1500 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:35 #1501 [Verbose] > #if !WASM && !FABLE_COMPILER
00:00:35 #1502 [Verbose] > module Date_time =
00:00:35 #1503 [Verbose] > let new_guid_from_date_time x =
00:00:35 #1504 [Verbose] > #if !INTERACTIVE
00:00:35 #1505 [Verbose] > Date_time.new_guid_from_date_time x
00:00:35 #1506 [Verbose] > #else
00:00:35 #1507 [Verbose] > new_guid_from_date_time x
00:00:35 #1508 [Verbose] > #endif
00:00:35 #1509 [Verbose] > #endif
00:00:35 #1510 [Verbose] >
00:00:35 #1511 [Verbose] > module Sm =
00:00:35 #1512 [Verbose] > let concat x =
00:00:35 #1513 [Verbose] > #if !INTERACTIVE
00:00:35 #1514 [Verbose] > Sm.concat x
00:00:35 #1515 [Verbose] > #else
00:00:35 #1516 [Verbose] > concat x
00:00:35 #1517 [Verbose] > #endif
00:00:35 #1518 [Verbose] >
00:00:35 #1519 [Verbose] > let contains x =
00:00:35 #1520 [Verbose] > #if !INTERACTIVE
00:00:35 #1521 [Verbose] > Sm.contains x
00:00:35 #1522 [Verbose] > #else
00:00:35 #1523 [Verbose] > contains x
00:00:35 #1524 [Verbose] > #endif
00:00:35 #1525 [Verbose] >
00:00:35 #1526 [Verbose] > let ellipsis x =
00:00:35 #1527 [Verbose] > #if !INTERACTIVE
00:00:35 #1528 [Verbose] > Sm.ellipsis x
00:00:35 #1529 [Verbose] > #else
00:00:35 #1530 [Verbose] > ellipsis x
00:00:35 #1531 [Verbose] > #endif
00:00:35 #1532 [Verbose] >
00:00:35 #1533 [Verbose] > let ellipsis_end x =
00:00:35 #1534 [Verbose] > #if !INTERACTIVE
00:00:35 #1535 [Verbose] > Sm.ellipsis_end x
00:00:35 #1536 [Verbose] > #else
00:00:35 #1537 [Verbose] > ellipsis_end x
00:00:35 #1538 [Verbose] > #endif
00:00:35 #1539 [Verbose] >
00:00:35 #1540 [Verbose] > let ends_with x =
00:00:35 #1541 [Verbose] > #if !INTERACTIVE
00:00:35 #1542 [Verbose] > Sm.ends_with x
00:00:35 #1543 [Verbose] > #else
00:00:35 #1544 [Verbose] > ends_with x
00:00:35 #1545 [Verbose] > #endif
00:00:35 #1546 [Verbose] >
00:00:35 #1547 [Verbose] > let format_exception x =
00:00:35 #1548 [Verbose] > #if !INTERACTIVE
00:00:35 #1549 [Verbose] > Sm.format_...
00:00:35 #1550 [Verbose] >
00:00:35 #1551 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:35 #1552 [Verbose] > #if !INTERACTIVE
00:00:35 #1553 [Verbose] > open Lib
00:00:35 #1554 [Verbose] > #endif
00:00:35 #1555 [Verbose] >
00:00:35 #1556 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:35 #1557 [Verbose] > let nl = System.Environment.NewLine
00:00:35 #1558 [Verbose] > let q = @""""
00:00:35 #1559 [Verbose] >
00:00:35 #1560 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:35 #1561 [Verbose] > let inline cons head tail = head :: tail
00:00:35 #1562 [Verbose] >
00:00:35 #1563 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:35 #1564 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:35 #1565 [Verbose] > │ ## memoize │
00:00:35 #1566 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:35 #1567 [Verbose] >
00:00:35 #1568 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:35 #1569 [Verbose] > let inline memoize fn =
00:00:35 #1570 [Verbose] > let result = lazy fn ()
00:00:35 #1571 [Verbose] > fun () -> result.Value
00:00:35 #1572 [Verbose] >
00:00:35 #1573 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:35 #1574 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:35 #1575 [Verbose] > │ ## TraceLevel │
00:00:35 #1576 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:35 #1577 [Verbose] >
00:00:35 #1578 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:35 #1579 [Verbose] > type TraceLevel =
00:00:35 #1580 [Verbose] > | Verbose
00:00:35 #1581 [Verbose] > | Debug
00:00:35 #1582 [Verbose] > | Info
00:00:35 #1583 [Verbose] > | Warning
00:00:35 #1584 [Verbose] > | Critical
00:00:35 #1585 [Verbose] >
00:00:35 #1586 [Verbose] > let inline getLocals () = ""
00:00:35 #1587 [Verbose] >
00:00:35 #1588 [Verbose] > let mutable traceEnabled = true
00:00:35 #1589 [Verbose] > let mutable traceCount = 0
00:00:35 #1590 [Verbose] > let mutable traceLevel = Verbose
00:00:35 #1591 [Verbose] > let mutable traceDump = false
00:00:35 #1592 [Verbose] >
00:00:35 #1593 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:35 #1594 [Verbose] > let testTraceLevel level =
00:00:35 #1595 [Verbose] > traceEnabled && level >= traceLevel
00:00:35 #1596 [Verbose] >
00:00:35 #1597 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:35 #1598 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:35 #1599 [Verbose] > │ ## traceRaw │
00:00:35 #1600 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:35 #1601 [Verbose] >
00:00:35 #1602 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:35 #1603 [Verbose] > let rec traceRaw level fn =
00:00:35 #1604 [Verbose] > if level |> testTraceLevel then
00:00:35 #1605 [Verbose] > traceCount <- traceCount + 1
00:00:35 #1606 [Verbose] >
00:00:35 #1607 [Verbose] > let text = $"%s{fn ()}"
00:00:35 #1608 [Verbose] > #if FABLE_COMPILER_RUST
00:00:35 #1609 [Verbose] > Fable.Core.RustInterop.emitRustExpr () @"println!(""{}"", text)"
00:00:35 #1610 [Verbose] > #else
00:00:35 #1611 [Verbose] > System.Console.WriteLine text
00:00:35 #1612 [Verbose] > #endif
00:00:35 #1613 [Verbose] >
00:00:35 #1614 [Verbose] > #if !WASM && !FABLE_COMPILER
00:00:35 #1615 [Verbose] > if traceDump then
00:00:35 #1616 [Verbose] > try
00:00:35 #1617 [Verbose] > let tmpPath = System.IO.Path.GetTempPath ()
00:00:35 #1618 [Verbose] > let logDir = System.IO.Path.Combine (tmpPath, "!polyglot")
00:00:35 #1619 [Verbose] > System.IO.Directory.CreateDirectory logDir |> ignore
00:00:35 #1620 [Verbose] > let logFile = System.IO.Path.Combine (logDir,
00:00:35 #1621 [Verbose] > $"{Date_time.new_guid_from_date_time System.DateTime.Now}.txt")
00:00:35 #1622 [Verbose] > System.IO.File.WriteAllTextAsync (logFile, text) |>
00:00:35 #1623 [Verbose] > Async.AwaitTask |> Async.RunSynchronously
00:00:35 #1624 [Verbose] > with ex ->
00:00:35 #1625 [Verbose] > traceRaw Critical (fun () -> $"trace / ex: {ex |>
00:00:35 #1626 [Verbose] > Sm.format_exception}")
00:00:35 #1627 [Verbose] > #endif
00:00:35 #1628 [Verbose] >
00:00:35 #1629 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:35 #1630 [Verbose] > //// test
00:00:35 #1631 [Verbose] >
00:00:35 #1632 [Verbose] > traceRaw Debug (fun () -> "test")
00:00:35 #1633 [Verbose] >
00:00:35 #1634 [Verbose] > ╭─[ 13.17ms - stdout ]─────────────────────────────────────────────────────────╮
00:00:35 #1635 [Verbose] > │ test │
00:00:35 #1636 [Verbose] > │ │
00:00:35 #1637 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:35 #1638 [Verbose] >
00:00:35 #1639 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:35 #1640 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:35 #1641 [Verbose] > │ ## trace │
00:00:35 #1642 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:35 #1643 [Verbose] >
00:00:35 #1644 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:35 #1645 [Verbose] > let private replStart =
00:00:35 #1646 [Verbose] > #if INTERACTIVE || !FABLE_COMPILER
00:00:35 #1647 [Verbose] > fun () ->
00:00:35 #1648 [Verbose] > if System.Reflection.Assembly.GetEntryAssembly().GetName().Name <>
00:00:35 #1649 [Verbose] > "Microsoft.DotNet.Interactive.App"
00:00:35 #1650 [Verbose] > then Some System.DateTime.Now.Ticks
00:00:35 #1651 [Verbose] > else None
00:00:35 #1652 [Verbose] > |> memoize
00:00:35 #1653 [Verbose] > #else
00:00:35 #1654 [Verbose] > fun () -> None : int64 option
00:00:35 #1655 [Verbose] > #endif
00:00:35 #1656 [Verbose] >
00:00:35 #1657 [Verbose] > let trace level fn getLocals =
00:00:35 #1658 [Verbose] > fun () ->
00:00:35 #1659 [Verbose] > let time =
00:00:35 #1660 [Verbose] > #if WASM
00:00:35 #1661 [Verbose] > ""
00:00:35 #1662 [Verbose] > #else
00:00:35 #1663 [Verbose] > match replStart () with
00:00:35 #1664 [Verbose] > | Some replStart ->
00:00:35 #1665 [Verbose] > let t = System.DateTime.Now.Ticks - replStart |> System.TimeSpan
00:00:35 #1666 [Verbose] > System.DateTime (1, 1, 1, t.Hours, t.Minutes, t.Seconds,
00:00:35 #1667 [Verbose] > t.Milliseconds)
00:00:35 #1668 [Verbose] > | None -> System.DateTime.Now
00:00:35 #1669 [Verbose] > |> fun dateTime ->
00:00:35 #1670 [Verbose] > #if FABLE_COMPILER_RUST
00:00:35 #1671 [Verbose] > "hh:mm:ss"
00:00:35 #1672 [Verbose] > #else
00:00:35 #1673 [Verbose] > "HH:mm:ss"
00:00:35 #1674 [Verbose] > #endif
00:00:35 #1675 [Verbose] > |> dateTime.ToString
00:00:35 #1676 [Verbose] > #endif
00:00:35 #1677 [Verbose] > $"{time} #{traceCount} [[%A{level}]] %s{fn ()} / %s{getLocals ()}"
00:00:35 #1678 [Verbose] > |> Sm.trim_start [[||]]
00:00:35 #1679 [Verbose] > |> Sm.trim_end [[| ' '; '/' |]]
00:00:35 #1680 [Verbose] > |> traceRaw level
00:00:35 #1681 [Verbose] >
00:00:35 #1682 [Verbose] > let inline withTrace enabled fn =
00:00:35 #1683 [Verbose] > let oldTraceEnabled = traceEnabled
00:00:35 #1684 [Verbose] > try
00:00:35 #1685 [Verbose] > traceEnabled <- enabled
00:00:35 #1686 [Verbose] > fn ()
00:00:35 #1687 [Verbose] > finally
00:00:35 #1688 [Verbose] > traceEnabled <- oldTraceEnabled
00:00:35 #1689 [Verbose] >
00:00:35 #1690 [Verbose] > let inline withTraceEnabled fn =
00:00:35 #1691 [Verbose] > withTrace true fn
00:00:35 #1692 [Verbose] >
00:00:35 #1693 [Verbose] > let inline withTraceDisabled fn =
00:00:35 #1694 [Verbose] > withTrace false fn
00:00:35 #1695 [Verbose] >
00:00:35 #1696 [Verbose] > let inline withTraceLevel level fn =
00:00:35 #1697 [Verbose] > let oldTraceLevel = traceLevel
00:00:35 #1698 [Verbose] > try
00:00:35 #1699 [Verbose] > traceLevel <- level
00:00:35 #1700 [Verbose] > fn ()
00:00:35 #1701 [Verbose] > finally
00:00:35 #1702 [Verbose] > traceLevel <- oldTraceLevel
00:00:35 #1703 [Verbose] >
00:00:35 #1704 [Verbose] > let inline withTraceDump dump fn =
00:00:35 #1705 [Verbose] > let oldTraceDump = traceDump
00:00:35 #1706 [Verbose] > try
00:00:35 #1707 [Verbose] > traceDump <- dump
00:00:35 #1708 [Verbose] > fn ()
00:00:35 #1709 [Verbose] > finally
00:00:35 #1710 [Verbose] > traceDump <- oldTraceDump
00:00:35 #1711 [Verbose] >
00:00:35 #1712 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:35 #1713 [Verbose] > //// test
00:00:35 #1714 [Verbose] >
00:00:35 #1715 [Verbose] > trace Debug (fun () -> "test") getLocals
00:00:35 #1716 [Verbose] >
00:00:35 #1717 [Verbose] > ╭─[ 28.09ms - stdout ]─────────────────────────────────────────────────────────╮
00:00:35 #1718 [Verbose] > │ 00:00:00 #2 [Debug] test │
00:00:35 #1719 [Verbose] > │ │
00:00:35 #1720 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:37 #1721 [Verbose] > [NbConvertApp] Converting notebook Common.dib.ipynb to html
00:00:37 #1722 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:37 #1723 [Verbose] > validate(nb)
00:00:37 #1724 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:37 #1725 [Verbose] > return _pygments_highlight(
00:00:38 #1726 [Verbose] > [NbConvertApp] Writing 294731 bytes to Common.dib.html
00:00:38 #1727 [Debug] executeAsync / exitCode: 0 / output.Length: 14648
00:00:38 #1728 [Debug] main / executeCommand / exitCode: 0
00:00:38 #1729 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 CommonFSharp.dib" -Retries 3"
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:00:41 #1730 [Verbose] >
00:00:41 #1731 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:41 #1732 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:41 #1733 [Verbose] > │ # CommonFSharp (Polyglot) │
00:00:41 #1734 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:41 #1735 [Verbose] >
00:00:41 #1736 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:41 #1737 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib
00:00:41 #1738 [Verbose] > #!import ../../lib/fsharp/Testing.dib
00:00:41 #1739 [Verbose] >
00:00:41 #1740 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:41 #1741 [Verbose] > #r
00:00:41 #1742 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
00:00:41 #1743 [Verbose] > spNetCore.Html.Abstractions.dll"
00:00:41 #1744 [Verbose] > #r
00:00:41 #1745 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:41 #1746 [Verbose] > otNet.Interactive.dll"
00:00:41 #1747 [Verbose] > #r
00:00:41 #1748 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:41 #1749 [Verbose] > otNet.Interactive.FSharp.dll"
00:00:41 #1750 [Verbose] > #r
00:00:41 #1751 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:41 #1752 [Verbose] > otNet.Interactive.Formatting.dll"
00:00:41 #1753 [Verbose] > open System
00:00:41 #1754 [Verbose] > open System.IO
00:00:41 #1755 [Verbose] > open System.Text
00:00:41 #1756 [Verbose] > open Microsoft.DotNet.Interactive.Formatting
00:00:44 #1757 [Verbose] >
00:00:44 #1758 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:44 #1759 [Verbose] > #r
00:00:44 #1760 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:44 #1761 [Verbose] > otNet.Interactive.FSharp.dll"
00:00:44 #1762 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
00:00:44 #1763 [Verbose] > #r
00:00:44 #1764 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:44 #1765 [Verbose] > otNet.Interactive.dll"
00:00:44 #1766 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel
00:00:44 #1767 [Verbose] >
00:00:44 #1768 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:44 #1769 [Verbose] > //// test
00:00:44 #1770 [Verbose] >
00:00:44 #1771 [Verbose] > Formatter.ListExpansionLimit <- 100
00:00:44 #1772 [Verbose] >
00:00:44 #1773 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:44 #1774 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
00:00:44 #1775 [Verbose] >
00:00:44 #1776 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:44 #1777 [Verbose] > //// test
00:00:44 #1778 [Verbose] >
00:00:44 #1779 [Verbose] > type AssertExceptionFormatter (ex) =
00:00:44 #1780 [Verbose] > member _.Text =
00:00:44 #1781 [Verbose] > ex.ToString()
00:00:44 #1782 [Verbose] > .Replace("32m", "<span style=\"color: green;\">")
00:00:44 #1783 [Verbose] > .Replace("36m", "</span>")
00:00:44 #1784 [Verbose] > .Replace("31m", "<span style=\"color: red;\">")
00:00:44 #1785 [Verbose] > .Replace("\n", "<br/>\n")
00:00:44 #1786 [Verbose] >
00:00:44 #1787 [Verbose] >
00:00:44 #1788 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :
00:00:44 #1789 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")
00:00:45 #1790 [Verbose] >
00:00:45 #1791 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:45 #1792 [Verbose] > //// test
00:00:45 #1793 [Verbose] >
00:00:45 #1794 [Verbose] > let inline __expect fn log expected actual =
00:00:45 #1795 [Verbose] > if log then printfn $"{actual.ToDisplayString ()}"
00:00:45 #1796 [Verbose] > try
00:00:45 #1797 [Verbose] > "Testing.__expect" |> fn actual expected
00:00:45 #1798 [Verbose] > with :? Expecto.AssertException as ex ->
00:00:45 #1799 [Verbose] > AssertExceptionFormatter(ex).Display () |> ignore
00:00:45 #1800 [Verbose] > failwith (ex.GetType().FullName)
00:00:45 #1801 [Verbose] >
00:00:45 #1802 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log
00:00:45 #1803 [Verbose] > expected actual
00:00:45 #1804 [Verbose] > let inline _contains expected actual = __contains true expected actual
00:00:45 #1805 [Verbose] >
00:00:45 #1806 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
00:00:45 #1807 [Verbose] > expected actual
00:00:45 #1808 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual
00:00:45 #1809 [Verbose] >
00:00:45 #1810 [Verbose] > let inline __isGreaterThan log expected actual = __expect
00:00:45 #1811 [Verbose] > Expecto.Expect.isGreaterThan log ex...
00:00:45 #1812 [Verbose] >
00:00:45 #1813 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:45 #1814 [Verbose] > //// test
00:00:45 #1815 [Verbose] >
00:00:45 #1816 [Verbose] > let inline __isBetween log a b actual =
00:00:45 #1817 [Verbose] > let inline isBetween actual (a, b) _ =
00:00:45 #1818 [Verbose] > __isGreaterThanOrEqual log a actual
00:00:45 #1819 [Verbose] > __isLessThanOrEqual log b actual
00:00:45 #1820 [Verbose] > __expect isBetween log (a, b) actual
00:00:45 #1821 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual
00:00:45 #1822 [Verbose] >
00:00:45 #1823 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:45 #1824 [Verbose] > #!import ../../lib/spiral/common.fsx
00:00:45 #1825 [Verbose] > #!import ../../lib/spiral/sm.fsx
00:00:45 #1826 [Verbose] > #!import ../../lib/spiral/date_time.fsx
00:00:45 #1827 [Verbose] > #!import ../../lib/spiral/file_system.fsx
00:00:45 #1828 [Verbose] > #!import ../../lib/spiral/lib.fsx
00:00:45 #1829 [Verbose] > #!import ../../lib/fsharp/Common.fs
00:00:45 #1830 [Verbose] >
00:00:45 #1831 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:45 #1832 [Verbose] > type [[<Struct>]] US0 =
00:00:45 #1833 [Verbose] > | US0_0
00:00:45 #1834 [Verbose] > | US0_1
00:00:45 #1835 [Verbose] > and [[<Struct>]] US1 =
00:00:45 #1836 [Verbose] > | US1_0
00:00:45 #1837 [Verbose] > | US1_1 of f1_0 : US0
00:00:45 #1838 [Verbose] > let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
00:00:45 #1839 [Verbose] > v0
00:00:45 #1840 [Verbose] > and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
00:00:45 #1841 [Verbose] > let mutable result = None
00:00:45 #1842 [Verbose] > #if FABLE_COMPILER_RUST && !WASM
00:00:45 #1843 [Verbose] > let v1 : (unit -> unit) = method0(v0)
00:00:45 #1844 [Verbose] > let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
00:00:45 #1845 [Verbose] > () = Fable.Core.RustInterop.emitRustExpr () "v1()" }
00:00:45 #1846 [Verbose] > v2
00:00:45 #1847 [Verbose] > #endif
00:00:45 #1848 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:00:45 #1849 [Verbose] > let v3 : (unit -> unit) = method0(v0)
00:00:45 #1850 [Verbose] > let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
00:00:45 #1851 [Verbose] > () = Fable.Core.RustInterop.emitRustExpr () "v3()" }
00:00:45 #1852 [Verbose] > v4
00:00:45 #1853 [Verbose] > #endif
00:00:45 #1854 [Verbose] > #if !FABLE_COMPILER && !F...
00:00:46 #1855 [Verbose] >
00:00:46 #1856 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:46 #1857 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}
00:00:46 #1858 [Verbose] > and Mut1 = {mutable l0 : int32}
00:00:46 #1859 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =
00:00:46 #1860 [Verbose] > let v2 : bool = v1.Contains v0
00:00:46 #1861 [Verbose] > v2
00:00:46 #1862 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =
00:00:46 #1863 [Verbose] > closure1(v0)
00:00:46 #1864 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =
00:00:46 #1865 [Verbose] > let v2 : bool = v1.EndsWith v0
00:00:46 #1866 [Verbose] > v2
00:00:46 #1867 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =
00:00:46 #1868 [Verbose] > closure3(v0)
00:00:46 #1869 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
00:00:46 #1870 [Verbose] > let v3 : string = v2.PadLeft (v0, v1)
00:00:46 #1871 [Verbose] > v3
00:00:46 #1872 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =
00:00:46 #1873 [Verbose] > closure6(v0, v1)
00:00:46 #1874 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =
00:00:46 #1875 [Verbose] > closure5(v0)
00:00:46 #1876 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =
00:00:46 #1877 [Verbose] > let v2 : stri...
00:00:46 #1878 [Verbose] >
00:00:46 #1879 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:46 #1880 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
00:00:46 #1881 [Verbose] > let v2 : (System.Guid -> string) = _.ToString()
00:00:46 #1882 [Verbose] > let v3 : string = v2 v0
00:00:46 #1883 [Verbose] > let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
00:00:46 #1884 [Verbose] > let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
00:00:46 #1885 [Verbose] > v5
00:00:46 #1886 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
00:00:46 #1887 [Verbose] > closure1(v0)
00:00:46 #1888 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =
00:00:46 #1889 [Verbose] > let v3 : string = v2.Replace (v0, v1)
00:00:46 #1890 [Verbose] > v3
00:00:46 #1891 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =
00:00:46 #1892 [Verbose] > closure5(v0, v1)
00:00:46 #1893 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =
00:00:46 #1894 [Verbose] > closure4(v0)
00:00:46 #1895 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =
00:00:46 #1896 [Verbose] > closure3()
00:00:46 #1897 [Verbose] > and closure2 (...
00:00:46 #1898 [Verbose] >
00:00:46 #1899 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:46 #1900 [Verbose] > type [[<Struct>]] US0 =
00:00:46 #1901 [Verbose] > | US0_0
00:00:46 #1902 [Verbose] > | US0_1
00:00:46 #1903 [Verbose] > | US0_2
00:00:46 #1904 [Verbose] > and [[<Struct>]] US1 =
00:00:46 #1905 [Verbose] > | US1_0 of f0_0 : US0
00:00:46 #1906 [Verbose] > | US1_1 of f1_0 : US0
00:00:46 #1907 [Verbose] > let rec closure0 () () : string =
00:00:46 #1908 [Verbose] > let mutable result = None
00:00:46 #1909 [Verbose] > #if FABLE_COMPILER_RUST && !WASM
00:00:46 #1910 [Verbose] > let v0 : US0 = US0_1
00:00:46 #1911 [Verbose] > let v1 : US1 = US1_1(v0)
00:00:46 #1912 [Verbose] > let v2 : string = $"create_temp_directory_name target: {v1}"
00:00:46 #1913 [Verbose] > let v3 : string = failwith<string> v2
00:00:46 #1914 [Verbose] > v3
00:00:46 #1915 [Verbose] > #endif
00:00:46 #1916 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:00:46 #1917 [Verbose] > let v4 : US0 = US0_2
00:00:46 #1918 [Verbose] > let v5 : US1 = US1_1(v4)
00:00:46 #1919 [Verbose] > let v6 : string = $"create_temp_directory_name target: {v5}"
00:00:46 #1920 [Verbose] > let v7 : string = failwith<string> v6
00:00:46 #1921 [Verbose] > v7
00:00:46 #1922 [Verbose] > #endif
00:00:46 #1923 [Verbose] > #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM
00:00:46 #1924 [Verbose] > let v8 : string = System.Reflection.Assembly.GetEntryAssembly()...
00:00:46 #1925 [Verbose] >
00:00:46 #1926 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:46 #1927 [Verbose] > #if !WASM && !FABLE_COMPILER
00:00:46 #1928 [Verbose] > module Date_time =
00:00:46 #1929 [Verbose] > let new_guid_from_date_time x =
00:00:46 #1930 [Verbose] > #if !INTERACTIVE
00:00:46 #1931 [Verbose] > Date_time.new_guid_from_date_time x
00:00:46 #1932 [Verbose] > #else
00:00:46 #1933 [Verbose] > new_guid_from_date_time x
00:00:46 #1934 [Verbose] > #endif
00:00:46 #1935 [Verbose] > #endif
00:00:46 #1936 [Verbose] >
00:00:46 #1937 [Verbose] > module Sm =
00:00:46 #1938 [Verbose] > let concat x =
00:00:46 #1939 [Verbose] > #if !INTERACTIVE
00:00:46 #1940 [Verbose] > Sm.concat x
00:00:46 #1941 [Verbose] > #else
00:00:46 #1942 [Verbose] > concat x
00:00:46 #1943 [Verbose] > #endif
00:00:46 #1944 [Verbose] >
00:00:46 #1945 [Verbose] > let contains x =
00:00:46 #1946 [Verbose] > #if !INTERACTIVE
00:00:46 #1947 [Verbose] > Sm.contains x
00:00:46 #1948 [Verbose] > #else
00:00:46 #1949 [Verbose] > contains x
00:00:46 #1950 [Verbose] > #endif
00:00:46 #1951 [Verbose] >
00:00:46 #1952 [Verbose] > let ellipsis x =
00:00:46 #1953 [Verbose] > #if !INTERACTIVE
00:00:46 #1954 [Verbose] > Sm.ellipsis x
00:00:46 #1955 [Verbose] > #else
00:00:46 #1956 [Verbose] > ellipsis x
00:00:46 #1957 [Verbose] > #endif
00:00:46 #1958 [Verbose] >
00:00:46 #1959 [Verbose] > let ellipsis_end x =
00:00:46 #1960 [Verbose] > #if !INTERACTIVE
00:00:46 #1961 [Verbose] > Sm.ellipsis_end x
00:00:46 #1962 [Verbose] > #else
00:00:46 #1963 [Verbose] > ellipsis_end x
00:00:46 #1964 [Verbose] > #endif
00:00:46 #1965 [Verbose] >
00:00:46 #1966 [Verbose] > let ends_with x =
00:00:46 #1967 [Verbose] > #if !INTERACTIVE
00:00:46 #1968 [Verbose] > Sm.ends_with x
00:00:46 #1969 [Verbose] > #else
00:00:46 #1970 [Verbose] > ends_with x
00:00:46 #1971 [Verbose] > #endif
00:00:46 #1972 [Verbose] >
00:00:46 #1973 [Verbose] > let format_exception x =
00:00:46 #1974 [Verbose] > #if !INTERACTIVE
00:00:46 #1975 [Verbose] > Sm.format_...
00:00:46 #1976 [Verbose] >
00:00:46 #1977 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:46 #1978 [Verbose] > #if !INTERACTIVE
00:00:46 #1979 [Verbose] > namespace Polyglot
00:00:46 #1980 [Verbose] > #endif
00:00:46 #1981 [Verbose] >
00:00:46 #1982 [Verbose] > module Common =
00:00:46 #1983 [Verbose] >
00:00:46 #1984 [Verbose] > #if !INTERACTIVE
00:00:46 #1985 [Verbose] > open Lib
00:00:46 #1986 [Verbose] > #endif
00:00:46 #1987 [Verbose] >
00:00:46 #1988 [Verbose] > let nl = System.Environment.NewLine
00:00:46 #1989 [Verbose] > let q = @""""
00:00:46 #1990 [Verbose] >
00:00:46 #1991 [Verbose] > let inline cons head tail = head :: tail
00:00:46 #1992 [Verbose] >
00:00:46 #1993 [Verbose] > /// ## memoize
00:00:46 #1994 [Verbose] >
00:00:46 #1995 [Verbose] > let inline memoize fn =
00:00:46 #1996 [Verbose] > let result = lazy fn ()
00:00:46 #1997 [Verbose] > fun () -> result.Value
00:00:46 #1998 [Verbose] >
00:00:46 #1999 [Verbose] > /// ## TraceLevel
00:00:46 #2000 [Verbose] >
00:00:46 #2001 [Verbose] > type TraceLevel =
00:00:46 #2002 [Verbose] > | Verbose
00:00:46 #2003 [Verbose] > | Debug
00:00:46 #2004 [Verbose] > | Info
00:00:46 #2005 [Verbose] > | Warning
00:00:46 #2006 [Verbose] > | Critical
00:00:46 #2007 [Verbose] >
00:00:46 #2008 [Verbose] > let inline getLocals () = ""
00:00:46 #2009 [Verbose] >
00:00:46 #2010 [Verbose] > let mutable traceEnabled = true
00:00:46 #2011 [Verbose] > let mutable traceCount = 0
00:00:46 #2012 [Verbose] > let mutable traceLevel = Verbose
00:00:46 #2013 [Verbose] > let mutable traceDump = false
00:00:46 #2014 [Verbose] >
00:00:46 #2015 [Verbose] > let testTraceLevel level =
00:00:46 #2016 [Verbose] > traceEnabled && level >= traceLevel
00:00:46 #2017 [Verbose] >
00:00:46 #2018 [Verbose] > /// ## traceRaw
00:00:46 #2019 [Verbose] >
00:00:46 #2020 [Verbose] > let rec traceRaw level fn =
00:00:46 #2021 [Verbose] > ...
00:00:47 #2022 [Verbose] >
00:00:47 #2023 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:47 #2024 [Verbose] > open Common
00:00:47 #2025 [Verbose] >
00:00:47 #2026 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:47 #2027 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:47 #2028 [Verbose] > │ ## getUnionCaseName │
00:00:47 #2029 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:47 #2030 [Verbose] >
00:00:47 #2031 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:47 #2032 [Verbose] > let inline getUnionCaseName<'T> (x: 'T) =
00:00:47 #2033 [Verbose] > match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
00:00:47 #2034 [Verbose] > | case, _ -> case.Name
00:00:47 #2035 [Verbose] >
00:00:47 #2036 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:47 #2037 [Verbose] > //// test
00:00:47 #2038 [Verbose] >
00:00:47 #2039 [Verbose] > TraceLevel.Critical
00:00:47 #2040 [Verbose] > |> getUnionCaseName
00:00:47 #2041 [Verbose] > |> _assertEqual (nameof TraceLevel.Critical)
00:00:47 #2042 [Verbose] >
00:00:47 #2043 [Verbose] > ╭─[ 50.33ms - stdout ]─────────────────────────────────────────────────────────╮
00:00:47 #2044 [Verbose] > │ Critical │
00:00:47 #2045 [Verbose] > │ │
00:00:47 #2046 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:48 #2047 [Verbose] > [NbConvertApp] Converting notebook CommonFSharp.dib.ipynb to html
00:00:48 #2048 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:48 #2049 [Verbose] > validate(nb)
00:00:49 #2050 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:49 #2051 [Verbose] > return _pygments_highlight(
00:00:49 #2052 [Verbose] > [NbConvertApp] Writing 275894 bytes to CommonFSharp.dib.html
00:00:50 #2053 [Debug] executeAsync / exitCode: 0 / output.Length: 10736
00:00:50 #2054 [Debug] main / executeCommand / exitCode: 0
00:00:50 #2055 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 Threading.dib -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:00:52 #2056 [Verbose] >
00:00:52 #2057 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:52 #2058 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:52 #2059 [Verbose] > │ # Threading (Polyglot) │
00:00:52 #2060 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:52 #2061 [Verbose] >
00:00:52 #2062 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:52 #2063 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib
00:00:52 #2064 [Verbose] > #!import ../../lib/fsharp/Testing.dib
00:00:52 #2065 [Verbose] >
00:00:52 #2066 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:52 #2067 [Verbose] > #r
00:00:52 #2068 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
00:00:52 #2069 [Verbose] > spNetCore.Html.Abstractions.dll"
00:00:52 #2070 [Verbose] > #r
00:00:52 #2071 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:52 #2072 [Verbose] > otNet.Interactive.dll"
00:00:52 #2073 [Verbose] > #r
00:00:52 #2074 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:52 #2075 [Verbose] > otNet.Interactive.FSharp.dll"
00:00:52 #2076 [Verbose] > #r
00:00:52 #2077 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:52 #2078 [Verbose] > otNet.Interactive.Formatting.dll"
00:00:52 #2079 [Verbose] > open System
00:00:52 #2080 [Verbose] > open System.IO
00:00:52 #2081 [Verbose] > open System.Text
00:00:52 #2082 [Verbose] > open Microsoft.DotNet.Interactive.Formatting
00:00:55 #2083 [Verbose] >
00:00:55 #2084 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:55 #2085 [Verbose] > #r
00:00:55 #2086 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:55 #2087 [Verbose] > otNet.Interactive.FSharp.dll"
00:00:55 #2088 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
00:00:55 #2089 [Verbose] > #r
00:00:55 #2090 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:55 #2091 [Verbose] > otNet.Interactive.dll"
00:00:55 #2092 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel
00:00:56 #2093 [Verbose] >
00:00:56 #2094 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:56 #2095 [Verbose] > //// test
00:00:56 #2096 [Verbose] >
00:00:56 #2097 [Verbose] > Formatter.ListExpansionLimit <- 100
00:00:56 #2098 [Verbose] >
00:00:56 #2099 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:56 #2100 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
00:00:56 #2101 [Verbose] >
00:00:56 #2102 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:56 #2103 [Verbose] > //// test
00:00:56 #2104 [Verbose] >
00:00:56 #2105 [Verbose] > type AssertExceptionFormatter (ex) =
00:00:56 #2106 [Verbose] > member _.Text =
00:00:56 #2107 [Verbose] > ex.ToString()
00:00:56 #2108 [Verbose] > .Replace("32m", "<span style=\"color: green;\">")
00:00:56 #2109 [Verbose] > .Replace("36m", "</span>")
00:00:56 #2110 [Verbose] > .Replace("31m", "<span style=\"color: red;\">")
00:00:56 #2111 [Verbose] > .Replace("\n", "<br/>\n")
00:00:56 #2112 [Verbose] >
00:00:56 #2113 [Verbose] >
00:00:56 #2114 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :
00:00:56 #2115 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")
00:00:57 #2116 [Verbose] >
00:00:57 #2117 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:57 #2118 [Verbose] > //// test
00:00:57 #2119 [Verbose] >
00:00:57 #2120 [Verbose] > let inline __expect fn log expected actual =
00:00:57 #2121 [Verbose] > if log then printfn $"{actual.ToDisplayString ()}"
00:00:57 #2122 [Verbose] > try
00:00:57 #2123 [Verbose] > "Testing.__expect" |> fn actual expected
00:00:57 #2124 [Verbose] > with :? Expecto.AssertException as ex ->
00:00:57 #2125 [Verbose] > AssertExceptionFormatter(ex).Display () |> ignore
00:00:57 #2126 [Verbose] > failwith (ex.GetType().FullName)
00:00:57 #2127 [Verbose] >
00:00:57 #2128 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log
00:00:57 #2129 [Verbose] > expected actual
00:00:57 #2130 [Verbose] > let inline _contains expected actual = __contains true expected actual
00:00:57 #2131 [Verbose] >
00:00:57 #2132 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
00:00:57 #2133 [Verbose] > expected actual
00:00:57 #2134 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual
00:00:57 #2135 [Verbose] >
00:00:57 #2136 [Verbose] > let inline __isGreaterThan log expected actual = __expect
00:00:57 #2137 [Verbose] > Expecto.Expect.isGreaterThan log ex...
00:00:57 #2138 [Verbose] >
00:00:57 #2139 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:57 #2140 [Verbose] > //// test
00:00:57 #2141 [Verbose] >
00:00:57 #2142 [Verbose] > let inline __isBetween log a b actual =
00:00:57 #2143 [Verbose] > let inline isBetween actual (a, b) _ =
00:00:57 #2144 [Verbose] > __isGreaterThanOrEqual log a actual
00:00:57 #2145 [Verbose] > __isLessThanOrEqual log b actual
00:00:57 #2146 [Verbose] > __expect isBetween log (a, b) actual
00:00:57 #2147 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual
00:00:57 #2148 [Verbose] >
00:00:57 #2149 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:57 #2150 [Verbose] > #!import ../../lib/spiral/common.fsx
00:00:57 #2151 [Verbose] > #!import ../../lib/spiral/sm.fsx
00:00:57 #2152 [Verbose] > #!import ../../lib/spiral/date_time.fsx
00:00:57 #2153 [Verbose] > #!import ../../lib/spiral/file_system.fsx
00:00:57 #2154 [Verbose] > #!import ../../lib/spiral/lib.fsx
00:00:57 #2155 [Verbose] > #!import ../../lib/fsharp/Common.fs
00:00:57 #2156 [Verbose] >
00:00:57 #2157 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:57 #2158 [Verbose] > type [[<Struct>]] US0 =
00:00:57 #2159 [Verbose] > | US0_0
00:00:57 #2160 [Verbose] > | US0_1
00:00:57 #2161 [Verbose] > and [[<Struct>]] US1 =
00:00:57 #2162 [Verbose] > | US1_0
00:00:57 #2163 [Verbose] > | US1_1 of f1_0 : US0
00:00:57 #2164 [Verbose] > let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
00:00:57 #2165 [Verbose] > v0
00:00:57 #2166 [Verbose] > and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
00:00:57 #2167 [Verbose] > let mutable result = None
00:00:57 #2168 [Verbose] > #if FABLE_COMPILER_RUST && !WASM
00:00:57 #2169 [Verbose] > let v1 : (unit -> unit) = method0(v0)
00:00:57 #2170 [Verbose] > let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
00:00:57 #2171 [Verbose] > () = Fable.Core.RustInterop.emitRustExpr () "v1()" }
00:00:57 #2172 [Verbose] > v2
00:00:57 #2173 [Verbose] > #endif
00:00:57 #2174 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:00:57 #2175 [Verbose] > let v3 : (unit -> unit) = method0(v0)
00:00:57 #2176 [Verbose] > let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
00:00:57 #2177 [Verbose] > () = Fable.Core.RustInterop.emitRustExpr () "v3()" }
00:00:57 #2178 [Verbose] > v4
00:00:57 #2179 [Verbose] > #endif
00:00:57 #2180 [Verbose] > #if !FABLE_COMPILER && !F...
00:00:58 #2181 [Verbose] >
00:00:58 #2182 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:58 #2183 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}
00:00:58 #2184 [Verbose] > and Mut1 = {mutable l0 : int32}
00:00:58 #2185 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =
00:00:58 #2186 [Verbose] > let v2 : bool = v1.Contains v0
00:00:58 #2187 [Verbose] > v2
00:00:58 #2188 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =
00:00:58 #2189 [Verbose] > closure1(v0)
00:00:58 #2190 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =
00:00:58 #2191 [Verbose] > let v2 : bool = v1.EndsWith v0
00:00:58 #2192 [Verbose] > v2
00:00:58 #2193 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =
00:00:58 #2194 [Verbose] > closure3(v0)
00:00:58 #2195 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
00:00:58 #2196 [Verbose] > let v3 : string = v2.PadLeft (v0, v1)
00:00:58 #2197 [Verbose] > v3
00:00:58 #2198 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =
00:00:58 #2199 [Verbose] > closure6(v0, v1)
00:00:58 #2200 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =
00:00:58 #2201 [Verbose] > closure5(v0)
00:00:58 #2202 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =
00:00:58 #2203 [Verbose] > let v2 : stri...
00:00:58 #2204 [Verbose] >
00:00:58 #2205 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:58 #2206 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
00:00:58 #2207 [Verbose] > let v2 : (System.Guid -> string) = _.ToString()
00:00:58 #2208 [Verbose] > let v3 : string = v2 v0
00:00:58 #2209 [Verbose] > let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
00:00:58 #2210 [Verbose] > let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
00:00:58 #2211 [Verbose] > v5
00:00:58 #2212 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
00:00:58 #2213 [Verbose] > closure1(v0)
00:00:58 #2214 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =
00:00:58 #2215 [Verbose] > let v3 : string = v2.Replace (v0, v1)
00:00:58 #2216 [Verbose] > v3
00:00:58 #2217 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =
00:00:58 #2218 [Verbose] > closure5(v0, v1)
00:00:58 #2219 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =
00:00:58 #2220 [Verbose] > closure4(v0)
00:00:58 #2221 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =
00:00:58 #2222 [Verbose] > closure3()
00:00:58 #2223 [Verbose] > and closure2 (...
00:00:58 #2224 [Verbose] >
00:00:58 #2225 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:58 #2226 [Verbose] > type [[<Struct>]] US0 =
00:00:58 #2227 [Verbose] > | US0_0
00:00:58 #2228 [Verbose] > | US0_1
00:00:58 #2229 [Verbose] > | US0_2
00:00:58 #2230 [Verbose] > and [[<Struct>]] US1 =
00:00:58 #2231 [Verbose] > | US1_0 of f0_0 : US0
00:00:58 #2232 [Verbose] > | US1_1 of f1_0 : US0
00:00:58 #2233 [Verbose] > let rec closure0 () () : string =
00:00:58 #2234 [Verbose] > let mutable result = None
00:00:58 #2235 [Verbose] > #if FABLE_COMPILER_RUST && !WASM
00:00:58 #2236 [Verbose] > let v0 : US0 = US0_1
00:00:58 #2237 [Verbose] > let v1 : US1 = US1_1(v0)
00:00:58 #2238 [Verbose] > let v2 : string = $"create_temp_directory_name target: {v1}"
00:00:58 #2239 [Verbose] > let v3 : string = failwith<string> v2
00:00:58 #2240 [Verbose] > v3
00:00:58 #2241 [Verbose] > #endif
00:00:58 #2242 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:00:58 #2243 [Verbose] > let v4 : US0 = US0_2
00:00:58 #2244 [Verbose] > let v5 : US1 = US1_1(v4)
00:00:58 #2245 [Verbose] > let v6 : string = $"create_temp_directory_name target: {v5}"
00:00:58 #2246 [Verbose] > let v7 : string = failwith<string> v6
00:00:58 #2247 [Verbose] > v7
00:00:58 #2248 [Verbose] > #endif
00:00:58 #2249 [Verbose] > #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM
00:00:58 #2250 [Verbose] > let v8 : string = System.Reflection.Assembly.GetEntryAssembly()...
00:00:59 #2251 [Verbose] >
00:00:59 #2252 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:59 #2253 [Verbose] > #if !WASM && !FABLE_COMPILER
00:00:59 #2254 [Verbose] > module Date_time =
00:00:59 #2255 [Verbose] > let new_guid_from_date_time x =
00:00:59 #2256 [Verbose] > #if !INTERACTIVE
00:00:59 #2257 [Verbose] > Date_time.new_guid_from_date_time x
00:00:59 #2258 [Verbose] > #else
00:00:59 #2259 [Verbose] > new_guid_from_date_time x
00:00:59 #2260 [Verbose] > #endif
00:00:59 #2261 [Verbose] > #endif
00:00:59 #2262 [Verbose] >
00:00:59 #2263 [Verbose] > module Sm =
00:00:59 #2264 [Verbose] > let concat x =
00:00:59 #2265 [Verbose] > #if !INTERACTIVE
00:00:59 #2266 [Verbose] > Sm.concat x
00:00:59 #2267 [Verbose] > #else
00:00:59 #2268 [Verbose] > concat x
00:00:59 #2269 [Verbose] > #endif
00:00:59 #2270 [Verbose] >
00:00:59 #2271 [Verbose] > let contains x =
00:00:59 #2272 [Verbose] > #if !INTERACTIVE
00:00:59 #2273 [Verbose] > Sm.contains x
00:00:59 #2274 [Verbose] > #else
00:00:59 #2275 [Verbose] > contains x
00:00:59 #2276 [Verbose] > #endif
00:00:59 #2277 [Verbose] >
00:00:59 #2278 [Verbose] > let ellipsis x =
00:00:59 #2279 [Verbose] > #if !INTERACTIVE
00:00:59 #2280 [Verbose] > Sm.ellipsis x
00:00:59 #2281 [Verbose] > #else
00:00:59 #2282 [Verbose] > ellipsis x
00:00:59 #2283 [Verbose] > #endif
00:00:59 #2284 [Verbose] >
00:00:59 #2285 [Verbose] > let ellipsis_end x =
00:00:59 #2286 [Verbose] > #if !INTERACTIVE
00:00:59 #2287 [Verbose] > Sm.ellipsis_end x
00:00:59 #2288 [Verbose] > #else
00:00:59 #2289 [Verbose] > ellipsis_end x
00:00:59 #2290 [Verbose] > #endif
00:00:59 #2291 [Verbose] >
00:00:59 #2292 [Verbose] > let ends_with x =
00:00:59 #2293 [Verbose] > #if !INTERACTIVE
00:00:59 #2294 [Verbose] > Sm.ends_with x
00:00:59 #2295 [Verbose] > #else
00:00:59 #2296 [Verbose] > ends_with x
00:00:59 #2297 [Verbose] > #endif
00:00:59 #2298 [Verbose] >
00:00:59 #2299 [Verbose] > let format_exception x =
00:00:59 #2300 [Verbose] > #if !INTERACTIVE
00:00:59 #2301 [Verbose] > Sm.format_...
00:00:59 #2302 [Verbose] >
00:00:59 #2303 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:59 #2304 [Verbose] > #if !INTERACTIVE
00:00:59 #2305 [Verbose] > namespace Polyglot
00:00:59 #2306 [Verbose] > #endif
00:00:59 #2307 [Verbose] >
00:00:59 #2308 [Verbose] > module Common =
00:00:59 #2309 [Verbose] >
00:00:59 #2310 [Verbose] > #if !INTERACTIVE
00:00:59 #2311 [Verbose] > open Lib
00:00:59 #2312 [Verbose] > #endif
00:00:59 #2313 [Verbose] >
00:00:59 #2314 [Verbose] > let nl = System.Environment.NewLine
00:00:59 #2315 [Verbose] > let q = @""""
00:00:59 #2316 [Verbose] >
00:00:59 #2317 [Verbose] > let inline cons head tail = head :: tail
00:00:59 #2318 [Verbose] >
00:00:59 #2319 [Verbose] > /// ## memoize
00:00:59 #2320 [Verbose] >
00:00:59 #2321 [Verbose] > let inline memoize fn =
00:00:59 #2322 [Verbose] > let result = lazy fn ()
00:00:59 #2323 [Verbose] > fun () -> result.Value
00:00:59 #2324 [Verbose] >
00:00:59 #2325 [Verbose] > /// ## TraceLevel
00:00:59 #2326 [Verbose] >
00:00:59 #2327 [Verbose] > type TraceLevel =
00:00:59 #2328 [Verbose] > | Verbose
00:00:59 #2329 [Verbose] > | Debug
00:00:59 #2330 [Verbose] > | Info
00:00:59 #2331 [Verbose] > | Warning
00:00:59 #2332 [Verbose] > | Critical
00:00:59 #2333 [Verbose] >
00:00:59 #2334 [Verbose] > let inline getLocals () = ""
00:00:59 #2335 [Verbose] >
00:00:59 #2336 [Verbose] > let mutable traceEnabled = true
00:00:59 #2337 [Verbose] > let mutable traceCount = 0
00:00:59 #2338 [Verbose] > let mutable traceLevel = Verbose
00:00:59 #2339 [Verbose] > let mutable traceDump = false
00:00:59 #2340 [Verbose] >
00:00:59 #2341 [Verbose] > let testTraceLevel level =
00:00:59 #2342 [Verbose] > traceEnabled && level >= traceLevel
00:00:59 #2343 [Verbose] >
00:00:59 #2344 [Verbose] > /// ## traceRaw
00:00:59 #2345 [Verbose] >
00:00:59 #2346 [Verbose] > let rec traceRaw level fn =
00:00:59 #2347 [Verbose] > ...
00:00:59 #2348 [Verbose] >
00:00:59 #2349 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:59 #2350 [Verbose] > open Common
00:00:59 #2351 [Verbose] >
00:00:59 #2352 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:59 #2353 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:59 #2354 [Verbose] > │ ## newDisposableToken │
00:00:59 #2355 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:59 #2356 [Verbose] >
00:00:59 #2357 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:59 #2358 [Verbose] > let inline newDisposableToken (mergeToken: System.Threading.CancellationToken
00:00:59 #2359 [Verbose] > option) =
00:00:59 #2360 [Verbose] > let cts = new System.Threading.CancellationTokenSource ()
00:00:59 #2361 [Verbose] > let cts =
00:00:59 #2362 [Verbose] > match mergeToken with
00:00:59 #2363 [Verbose] > | None -> cts
00:00:59 #2364 [Verbose] > | Some mergeToken ->
00:00:59 #2365 [Verbose] > System.Threading.CancellationTokenSource.CreateLinkedTokenSource [[|
00:00:59 #2366 [Verbose] > cts.Token; mergeToken |]]
00:00:59 #2367 [Verbose] > let disposable = new_disposable cts.Cancel
00:00:59 #2368 [Verbose] > cts.Token, disposable
00:00:59 #2369 [Verbose] >
00:00:59 #2370 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:59 #2371 [Verbose] > //// test
00:00:59 #2372 [Verbose] >
00:00:59 #2373 [Verbose] > let mutable counter = 0
00:00:59 #2374 [Verbose] >
00:00:59 #2375 [Verbose] > let inline run fn =
00:00:59 #2376 [Verbose] > let token, disposable = newDisposableToken None
00:00:59 #2377 [Verbose] > use _ = disposable
00:00:59 #2378 [Verbose] > fn token
00:00:59 #2379 [Verbose] > async {
00:00:59 #2380 [Verbose] > fn token
00:00:59 #2381 [Verbose] > }
00:00:59 #2382 [Verbose] > |> Async.Start
00:00:59 #2383 [Verbose] >
00:00:59 #2384 [Verbose] > let inline fn (token : System.Threading.CancellationToken) =
00:00:59 #2385 [Verbose] > counter <- counter + (if token.IsCancellationRequested then 10 else 1)
00:00:59 #2386 [Verbose] >
00:00:59 #2387 [Verbose] > async {
00:00:59 #2388 [Verbose] > run fn
00:00:59 #2389 [Verbose] > do! Async.Sleep 10
00:00:59 #2390 [Verbose] > return counter
00:00:59 #2391 [Verbose] > }
00:00:59 #2392 [Verbose] > |> Async.RunSynchronously
00:00:59 #2393 [Verbose] > |> _assertEqual 11
00:00:59 #2394 [Verbose] >
00:00:59 #2395 [Verbose] > ╭─[ 168.18ms - stdout ]────────────────────────────────────────────────────────╮
00:00:59 #2396 [Verbose] > │ 11 │
00:00:59 #2397 [Verbose] > │ │
00:00:59 #2398 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:01 #2399 [Verbose] > [NbConvertApp] Converting notebook Threading.dib.ipynb to html
00:01:01 #2400 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:01:01 #2401 [Verbose] > validate(nb)
00:01:01 #2402 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:01:01 #2403 [Verbose] > return _pygments_highlight(
00:01:01 #2404 [Verbose] > [NbConvertApp] Writing 278912 bytes to Threading.dib.html
00:01:02 #2405 [Debug] executeAsync / exitCode: 0 / output.Length: 11367
00:01:02 #2406 [Debug] main / executeCommand / exitCode: 0
00:01:02 #2407 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 Crypto.dib -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:01:05 #2408 [Verbose] >
00:01:05 #2409 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:05 #2410 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:05 #2411 [Verbose] > │ # Crypto (Polyglot) │
00:01:05 #2412 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:05 #2413 [Verbose] >
00:01:05 #2414 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:05 #2415 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib
00:01:05 #2416 [Verbose] > #!import ../../lib/fsharp/Testing.dib
00:01:05 #2417 [Verbose] >
00:01:05 #2418 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:05 #2419 [Verbose] > #r
00:01:05 #2420 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
00:01:05 #2421 [Verbose] > spNetCore.Html.Abstractions.dll"
00:01:05 #2422 [Verbose] > #r
00:01:05 #2423 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:05 #2424 [Verbose] > otNet.Interactive.dll"
00:01:05 #2425 [Verbose] > #r
00:01:05 #2426 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:05 #2427 [Verbose] > otNet.Interactive.FSharp.dll"
00:01:05 #2428 [Verbose] > #r
00:01:05 #2429 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:05 #2430 [Verbose] > otNet.Interactive.Formatting.dll"
00:01:05 #2431 [Verbose] > open System
00:01:05 #2432 [Verbose] > open System.IO
00:01:05 #2433 [Verbose] > open System.Text
00:01:05 #2434 [Verbose] > open Microsoft.DotNet.Interactive.Formatting
00:01:09 #2435 [Verbose] >
00:01:09 #2436 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:09 #2437 [Verbose] > #r
00:01:09 #2438 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:09 #2439 [Verbose] > otNet.Interactive.FSharp.dll"
00:01:09 #2440 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
00:01:09 #2441 [Verbose] > #r
00:01:09 #2442 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:09 #2443 [Verbose] > otNet.Interactive.dll"
00:01:09 #2444 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel
00:01:09 #2445 [Verbose] >
00:01:09 #2446 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:09 #2447 [Verbose] > //// test
00:01:09 #2448 [Verbose] >
00:01:09 #2449 [Verbose] > Formatter.ListExpansionLimit <- 100
00:01:10 #2450 [Verbose] >
00:01:10 #2451 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:10 #2452 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
00:01:10 #2453 [Verbose] >
00:01:10 #2454 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:10 #2455 [Verbose] > //// test
00:01:10 #2456 [Verbose] >
00:01:10 #2457 [Verbose] > type AssertExceptionFormatter (ex) =
00:01:10 #2458 [Verbose] > member _.Text =
00:01:10 #2459 [Verbose] > ex.ToString()
00:01:10 #2460 [Verbose] > .Replace("32m", "<span style=\"color: green;\">")
00:01:10 #2461 [Verbose] > .Replace("36m", "</span>")
00:01:10 #2462 [Verbose] > .Replace("31m", "<span style=\"color: red;\">")
00:01:10 #2463 [Verbose] > .Replace("\n", "<br/>\n")
00:01:10 #2464 [Verbose] >
00:01:10 #2465 [Verbose] >
00:01:10 #2466 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :
00:01:10 #2467 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")
00:01:11 #2468 [Verbose] >
00:01:11 #2469 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:11 #2470 [Verbose] > //// test
00:01:11 #2471 [Verbose] >
00:01:11 #2472 [Verbose] > let inline __expect fn log expected actual =
00:01:11 #2473 [Verbose] > if log then printfn $"{actual.ToDisplayString ()}"
00:01:11 #2474 [Verbose] > try
00:01:11 #2475 [Verbose] > "Testing.__expect" |> fn actual expected
00:01:11 #2476 [Verbose] > with :? Expecto.AssertException as ex ->
00:01:11 #2477 [Verbose] > AssertExceptionFormatter(ex).Display () |> ignore
00:01:11 #2478 [Verbose] > failwith (ex.GetType().FullName)
00:01:11 #2479 [Verbose] >
00:01:11 #2480 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log
00:01:11 #2481 [Verbose] > expected actual
00:01:11 #2482 [Verbose] > let inline _contains expected actual = __contains true expected actual
00:01:11 #2483 [Verbose] >
00:01:11 #2484 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
00:01:11 #2485 [Verbose] > expected actual
00:01:11 #2486 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual
00:01:11 #2487 [Verbose] >
00:01:11 #2488 [Verbose] > let inline __isGreaterThan log expected actual = __expect
00:01:11 #2489 [Verbose] > Expecto.Expect.isGreaterThan log ex...
00:01:11 #2490 [Verbose] >
00:01:11 #2491 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:11 #2492 [Verbose] > //// test
00:01:11 #2493 [Verbose] >
00:01:11 #2494 [Verbose] > let inline __isBetween log a b actual =
00:01:11 #2495 [Verbose] > let inline isBetween actual (a, b) _ =
00:01:11 #2496 [Verbose] > __isGreaterThanOrEqual log a actual
00:01:11 #2497 [Verbose] > __isLessThanOrEqual log b actual
00:01:11 #2498 [Verbose] > __expect isBetween log (a, b) actual
00:01:11 #2499 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual
00:01:11 #2500 [Verbose] >
00:01:11 #2501 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:11 #2502 [Verbose] > #!import ../../lib/spiral/common.fsx
00:01:11 #2503 [Verbose] > #!import ../../lib/spiral/sm.fsx
00:01:11 #2504 [Verbose] > #!import ../../lib/spiral/date_time.fsx
00:01:11 #2505 [Verbose] > #!import ../../lib/spiral/file_system.fsx
00:01:11 #2506 [Verbose] > #!import ../../lib/spiral/lib.fsx
00:01:11 #2507 [Verbose] > #!import ../../lib/fsharp/Common.fs
00:01:11 #2508 [Verbose] >
00:01:11 #2509 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:11 #2510 [Verbose] > type [[<Struct>]] US0 =
00:01:11 #2511 [Verbose] > | US0_0
00:01:11 #2512 [Verbose] > | US0_1
00:01:11 #2513 [Verbose] > and [[<Struct>]] US1 =
00:01:11 #2514 [Verbose] > | US1_0
00:01:11 #2515 [Verbose] > | US1_1 of f1_0 : US0
00:01:11 #2516 [Verbose] > let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
00:01:11 #2517 [Verbose] > v0
00:01:11 #2518 [Verbose] > and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
00:01:11 #2519 [Verbose] > let mutable result = None
00:01:11 #2520 [Verbose] > #if FABLE_COMPILER_RUST && !WASM
00:01:11 #2521 [Verbose] > let v1 : (unit -> unit) = method0(v0)
00:01:11 #2522 [Verbose] > let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
00:01:11 #2523 [Verbose] > () = Fable.Core.RustInterop.emitRustExpr () "v1()" }
00:01:11 #2524 [Verbose] > v2
00:01:11 #2525 [Verbose] > #endif
00:01:11 #2526 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:01:11 #2527 [Verbose] > let v3 : (unit -> unit) = method0(v0)
00:01:11 #2528 [Verbose] > let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
00:01:11 #2529 [Verbose] > () = Fable.Core.RustInterop.emitRustExpr () "v3()" }
00:01:11 #2530 [Verbose] > v4
00:01:11 #2531 [Verbose] > #endif
00:01:11 #2532 [Verbose] > #if !FABLE_COMPILER && !F...
00:01:12 #2533 [Verbose] >
00:01:12 #2534 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:12 #2535 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}
00:01:12 #2536 [Verbose] > and Mut1 = {mutable l0 : int32}
00:01:12 #2537 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =
00:01:12 #2538 [Verbose] > let v2 : bool = v1.Contains v0
00:01:12 #2539 [Verbose] > v2
00:01:12 #2540 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =
00:01:12 #2541 [Verbose] > closure1(v0)
00:01:12 #2542 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =
00:01:12 #2543 [Verbose] > let v2 : bool = v1.EndsWith v0
00:01:12 #2544 [Verbose] > v2
00:01:12 #2545 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =
00:01:12 #2546 [Verbose] > closure3(v0)
00:01:12 #2547 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
00:01:12 #2548 [Verbose] > let v3 : string = v2.PadLeft (v0, v1)
00:01:12 #2549 [Verbose] > v3
00:01:12 #2550 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =
00:01:12 #2551 [Verbose] > closure6(v0, v1)
00:01:12 #2552 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =
00:01:12 #2553 [Verbose] > closure5(v0)
00:01:12 #2554 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =
00:01:12 #2555 [Verbose] > let v2 : stri...
00:01:12 #2556 [Verbose] >
00:01:12 #2557 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:13 #2558 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
00:01:13 #2559 [Verbose] > let v2 : (System.Guid -> string) = _.ToString()
00:01:13 #2560 [Verbose] > let v3 : string = v2 v0
00:01:13 #2561 [Verbose] > let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
00:01:13 #2562 [Verbose] > let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
00:01:13 #2563 [Verbose] > v5
00:01:13 #2564 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
00:01:13 #2565 [Verbose] > closure1(v0)
00:01:13 #2566 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =
00:01:13 #2567 [Verbose] > let v3 : string = v2.Replace (v0, v1)
00:01:13 #2568 [Verbose] > v3
00:01:13 #2569 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =
00:01:13 #2570 [Verbose] > closure5(v0, v1)
00:01:13 #2571 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =
00:01:13 #2572 [Verbose] > closure4(v0)
00:01:13 #2573 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =
00:01:13 #2574 [Verbose] > closure3()
00:01:13 #2575 [Verbose] > and closure2 (...
00:01:13 #2576 [Verbose] >
00:01:13 #2577 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:13 #2578 [Verbose] > type [[<Struct>]] US0 =
00:01:13 #2579 [Verbose] > | US0_0
00:01:13 #2580 [Verbose] > | US0_1
00:01:13 #2581 [Verbose] > | US0_2
00:01:13 #2582 [Verbose] > and [[<Struct>]] US1 =
00:01:13 #2583 [Verbose] > | US1_0 of f0_0 : US0
00:01:13 #2584 [Verbose] > | US1_1 of f1_0 : US0
00:01:13 #2585 [Verbose] > let rec closure0 () () : string =
00:01:13 #2586 [Verbose] > let mutable result = None
00:01:13 #2587 [Verbose] > #if FABLE_COMPILER_RUST && !WASM
00:01:13 #2588 [Verbose] > let v0 : US0 = US0_1
00:01:13 #2589 [Verbose] > let v1 : US1 = US1_1(v0)
00:01:13 #2590 [Verbose] > let v2 : string = $"create_temp_directory_name target: {v1}"
00:01:13 #2591 [Verbose] > let v3 : string = failwith<string> v2
00:01:13 #2592 [Verbose] > v3
00:01:13 #2593 [Verbose] > #endif
00:01:13 #2594 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:01:13 #2595 [Verbose] > let v4 : US0 = US0_2
00:01:13 #2596 [Verbose] > let v5 : US1 = US1_1(v4)
00:01:13 #2597 [Verbose] > let v6 : string = $"create_temp_directory_name target: {v5}"
00:01:13 #2598 [Verbose] > let v7 : string = failwith<string> v6
00:01:13 #2599 [Verbose] > v7
00:01:13 #2600 [Verbose] > #endif
00:01:13 #2601 [Verbose] > #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM
00:01:13 #2602 [Verbose] > let v8 : string = System.Reflection.Assembly.GetEntryAssembly()...
00:01:13 #2603 [Verbose] >
00:01:13 #2604 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:13 #2605 [Verbose] > #if !WASM && !FABLE_COMPILER
00:01:13 #2606 [Verbose] > module Date_time =
00:01:13 #2607 [Verbose] > let new_guid_from_date_time x =
00:01:13 #2608 [Verbose] > #if !INTERACTIVE
00:01:13 #2609 [Verbose] > Date_time.new_guid_from_date_time x
00:01:13 #2610 [Verbose] > #else
00:01:13 #2611 [Verbose] > new_guid_from_date_time x
00:01:13 #2612 [Verbose] > #endif
00:01:13 #2613 [Verbose] > #endif
00:01:13 #2614 [Verbose] >
00:01:13 #2615 [Verbose] > module Sm =
00:01:13 #2616 [Verbose] > let concat x =
00:01:13 #2617 [Verbose] > #if !INTERACTIVE
00:01:13 #2618 [Verbose] > Sm.concat x
00:01:13 #2619 [Verbose] > #else
00:01:13 #2620 [Verbose] > concat x
00:01:13 #2621 [Verbose] > #endif
00:01:13 #2622 [Verbose] >
00:01:13 #2623 [Verbose] > let contains x =
00:01:13 #2624 [Verbose] > #if !INTERACTIVE
00:01:13 #2625 [Verbose] > Sm.contains x
00:01:13 #2626 [Verbose] > #else
00:01:13 #2627 [Verbose] > contains x
00:01:13 #2628 [Verbose] > #endif
00:01:13 #2629 [Verbose] >
00:01:13 #2630 [Verbose] > let ellipsis x =
00:01:13 #2631 [Verbose] > #if !INTERACTIVE
00:01:13 #2632 [Verbose] > Sm.ellipsis x
00:01:13 #2633 [Verbose] > #else
00:01:13 #2634 [Verbose] > ellipsis x
00:01:13 #2635 [Verbose] > #endif
00:01:13 #2636 [Verbose] >
00:01:13 #2637 [Verbose] > let ellipsis_end x =
00:01:13 #2638 [Verbose] > #if !INTERACTIVE
00:01:13 #2639 [Verbose] > Sm.ellipsis_end x
00:01:13 #2640 [Verbose] > #else
00:01:13 #2641 [Verbose] > ellipsis_end x
00:01:13 #2642 [Verbose] > #endif
00:01:13 #2643 [Verbose] >
00:01:13 #2644 [Verbose] > let ends_with x =
00:01:13 #2645 [Verbose] > #if !INTERACTIVE
00:01:13 #2646 [Verbose] > Sm.ends_with x
00:01:13 #2647 [Verbose] > #else
00:01:13 #2648 [Verbose] > ends_with x
00:01:13 #2649 [Verbose] > #endif
00:01:13 #2650 [Verbose] >
00:01:13 #2651 [Verbose] > let format_exception x =
00:01:13 #2652 [Verbose] > #if !INTERACTIVE
00:01:13 #2653 [Verbose] > Sm.format_...
00:01:13 #2654 [Verbose] >
00:01:13 #2655 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:13 #2656 [Verbose] > #if !INTERACTIVE
00:01:13 #2657 [Verbose] > namespace Polyglot
00:01:13 #2658 [Verbose] > #endif
00:01:13 #2659 [Verbose] >
00:01:13 #2660 [Verbose] > module Common =
00:01:13 #2661 [Verbose] >
00:01:13 #2662 [Verbose] > #if !INTERACTIVE
00:01:13 #2663 [Verbose] > open Lib
00:01:13 #2664 [Verbose] > #endif
00:01:13 #2665 [Verbose] >
00:01:13 #2666 [Verbose] > let nl = System.Environment.NewLine
00:01:13 #2667 [Verbose] > let q = @""""
00:01:13 #2668 [Verbose] >
00:01:13 #2669 [Verbose] > let inline cons head tail = head :: tail
00:01:13 #2670 [Verbose] >
00:01:13 #2671 [Verbose] > /// ## memoize
00:01:13 #2672 [Verbose] >
00:01:13 #2673 [Verbose] > let inline memoize fn =
00:01:13 #2674 [Verbose] > let result = lazy fn ()
00:01:13 #2675 [Verbose] > fun () -> result.Value
00:01:13 #2676 [Verbose] >
00:01:13 #2677 [Verbose] > /// ## TraceLevel
00:01:13 #2678 [Verbose] >
00:01:13 #2679 [Verbose] > type TraceLevel =
00:01:13 #2680 [Verbose] > | Verbose
00:01:13 #2681 [Verbose] > | Debug
00:01:13 #2682 [Verbose] > | Info
00:01:13 #2683 [Verbose] > | Warning
00:01:13 #2684 [Verbose] > | Critical
00:01:13 #2685 [Verbose] >
00:01:13 #2686 [Verbose] > let inline getLocals () = ""
00:01:13 #2687 [Verbose] >
00:01:13 #2688 [Verbose] > let mutable traceEnabled = true
00:01:13 #2689 [Verbose] > let mutable traceCount = 0
00:01:13 #2690 [Verbose] > let mutable traceLevel = Verbose
00:01:13 #2691 [Verbose] > let mutable traceDump = false
00:01:13 #2692 [Verbose] >
00:01:13 #2693 [Verbose] > let testTraceLevel level =
00:01:13 #2694 [Verbose] > traceEnabled && level >= traceLevel
00:01:13 #2695 [Verbose] >
00:01:13 #2696 [Verbose] > /// ## traceRaw
00:01:13 #2697 [Verbose] >
00:01:13 #2698 [Verbose] > let rec traceRaw level fn =
00:01:13 #2699 [Verbose] > ...
00:01:13 #2700 [Verbose] >
00:01:13 #2701 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:13 #2702 [Verbose] > open Common
00:01:13 #2703 [Verbose] >
00:01:13 #2704 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:13 #2705 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:13 #2706 [Verbose] > │ ## hashText │
00:01:13 #2707 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:13 #2708 [Verbose] >
00:01:13 #2709 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:13 #2710 [Verbose] > let hashText (input : string) =
00:01:13 #2711 [Verbose] > use sha256 = System.Security.Cryptography.SHA256.Create ()
00:01:13 #2712 [Verbose] > input
00:01:13 #2713 [Verbose] > |> System.Text.Encoding.UTF8.GetBytes
00:01:13 #2714 [Verbose] > |> sha256.ComputeHash
00:01:13 #2715 [Verbose] > |> Array.map (fun b -> b.ToString "x2")
00:01:13 #2716 [Verbose] > |> Sm.concat ""
00:01:13 #2717 [Verbose] >
00:01:13 #2718 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:13 #2719 [Verbose] > //// test
00:01:13 #2720 [Verbose] >
00:01:13 #2721 [Verbose] > ""
00:01:13 #2722 [Verbose] > |> hashText
00:01:13 #2723 [Verbose] > |> _assertEqual
00:01:13 #2724 [Verbose] > "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
00:01:13 #2725 [Verbose] >
00:01:13 #2726 [Verbose] > ╭─[ 54.77ms - stdout ]─────────────────────────────────────────────────────────╮
00:01:13 #2727 [Verbose] > │ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 │
00:01:13 #2728 [Verbose] > │ │
00:01:13 #2729 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:13 #2730 [Verbose] >
00:01:13 #2731 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:13 #2732 [Verbose] > //// test
00:01:13 #2733 [Verbose] >
00:01:13 #2734 [Verbose] > " "
00:01:13 #2735 [Verbose] > |> hashText
00:01:13 #2736 [Verbose] > |> _assertEqual
00:01:13 #2737 [Verbose] > "36a9e7f1c95b82ffb99743e0c5c4ce95d83c9a430aac59f84ef3cbfab6145068"
00:01:13 #2738 [Verbose] >
00:01:13 #2739 [Verbose] > ╭─[ 19.49ms - stdout ]─────────────────────────────────────────────────────────╮
00:01:13 #2740 [Verbose] > │ 36a9e7f1c95b82ffb99743e0c5c4ce95d83c9a430aac59f84ef3cbfab6145068 │
00:01:13 #2741 [Verbose] > │ │
00:01:13 #2742 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:15 #2743 [Verbose] > [NbConvertApp] Converting notebook Crypto.dib.ipynb to html
00:01:15 #2744 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:01:15 #2745 [Verbose] > validate(nb)
00:01:16 #2746 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:01:16 #2747 [Verbose] > return _pygments_highlight(
00:01:16 #2748 [Verbose] > [NbConvertApp] Writing 277730 bytes to Crypto.dib.html
00:01:16 #2749 [Debug] executeAsync / exitCode: 0 / output.Length: 11356
00:01:16 #2750 [Debug] main / executeCommand / exitCode: 0
00:01:16 #2751 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 FileSystem.dib -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:01:19 #2752 [Verbose] >
00:01:19 #2753 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:19 #2754 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:19 #2755 [Verbose] > │ # FileSystem (Polyglot) │
00:01:19 #2756 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:19 #2757 [Verbose] >
00:01:19 #2758 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:19 #2759 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib
00:01:19 #2760 [Verbose] > #!import ../../lib/fsharp/Testing.dib
00:01:19 #2761 [Verbose] >
00:01:19 #2762 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:19 #2763 [Verbose] > #r
00:01:19 #2764 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
00:01:19 #2765 [Verbose] > spNetCore.Html.Abstractions.dll"
00:01:19 #2766 [Verbose] > #r
00:01:19 #2767 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:19 #2768 [Verbose] > otNet.Interactive.dll"
00:01:19 #2769 [Verbose] > #r
00:01:19 #2770 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:19 #2771 [Verbose] > otNet.Interactive.FSharp.dll"
00:01:19 #2772 [Verbose] > #r
00:01:19 #2773 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:19 #2774 [Verbose] > otNet.Interactive.Formatting.dll"
00:01:19 #2775 [Verbose] > open System
00:01:19 #2776 [Verbose] > open System.IO
00:01:19 #2777 [Verbose] > open System.Text
00:01:19 #2778 [Verbose] > open Microsoft.DotNet.Interactive.Formatting
00:01:22 #2779 [Verbose] >
00:01:22 #2780 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:22 #2781 [Verbose] > #r
00:01:22 #2782 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:22 #2783 [Verbose] > otNet.Interactive.FSharp.dll"
00:01:22 #2784 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
00:01:22 #2785 [Verbose] > #r
00:01:22 #2786 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:22 #2787 [Verbose] > otNet.Interactive.dll"
00:01:22 #2788 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel
00:01:22 #2789 [Verbose] >
00:01:22 #2790 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:22 #2791 [Verbose] > //// test
00:01:22 #2792 [Verbose] >
00:01:22 #2793 [Verbose] > Formatter.ListExpansionLimit <- 100
00:01:23 #2794 [Verbose] >
00:01:23 #2795 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:23 #2796 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
00:01:23 #2797 [Verbose] >
00:01:23 #2798 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:23 #2799 [Verbose] > //// test
00:01:23 #2800 [Verbose] >
00:01:23 #2801 [Verbose] > type AssertExceptionFormatter (ex) =
00:01:23 #2802 [Verbose] > member _.Text =
00:01:23 #2803 [Verbose] > ex.ToString()
00:01:23 #2804 [Verbose] > .Replace("32m", "<span style=\"color: green;\">")
00:01:23 #2805 [Verbose] > .Replace("36m", "</span>")
00:01:23 #2806 [Verbose] > .Replace("31m", "<span style=\"color: red;\">")
00:01:23 #2807 [Verbose] > .Replace("\n", "<br/>\n")
00:01:23 #2808 [Verbose] >
00:01:23 #2809 [Verbose] >
00:01:23 #2810 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :
00:01:23 #2811 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")
00:01:24 #2812 [Verbose] >
00:01:24 #2813 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:24 #2814 [Verbose] > //// test
00:01:24 #2815 [Verbose] >
00:01:24 #2816 [Verbose] > let inline __expect fn log expected actual =
00:01:24 #2817 [Verbose] > if log then printfn $"{actual.ToDisplayString ()}"
00:01:24 #2818 [Verbose] > try
00:01:24 #2819 [Verbose] > "Testing.__expect" |> fn actual expected
00:01:24 #2820 [Verbose] > with :? Expecto.AssertException as ex ->
00:01:24 #2821 [Verbose] > AssertExceptionFormatter(ex).Display () |> ignore
00:01:24 #2822 [Verbose] > failwith (ex.GetType().FullName)
00:01:24 #2823 [Verbose] >
00:01:24 #2824 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log
00:01:24 #2825 [Verbose] > expected actual
00:01:24 #2826 [Verbose] > let inline _contains expected actual = __contains true expected actual
00:01:24 #2827 [Verbose] >
00:01:24 #2828 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
00:01:24 #2829 [Verbose] > expected actual
00:01:24 #2830 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual
00:01:24 #2831 [Verbose] >
00:01:24 #2832 [Verbose] > let inline __isGreaterThan log expected actual = __expect
00:01:24 #2833 [Verbose] > Expecto.Expect.isGreaterThan log ex...
00:01:24 #2834 [Verbose] >
00:01:24 #2835 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:24 #2836 [Verbose] > //// test
00:01:24 #2837 [Verbose] >
00:01:24 #2838 [Verbose] > let inline __isBetween log a b actual =
00:01:24 #2839 [Verbose] > let inline isBetween actual (a, b) _ =
00:01:24 #2840 [Verbose] > __isGreaterThanOrEqual log a actual
00:01:24 #2841 [Verbose] > __isLessThanOrEqual log b actual
00:01:24 #2842 [Verbose] > __expect isBetween log (a, b) actual
00:01:24 #2843 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual
00:01:24 #2844 [Verbose] >
00:01:24 #2845 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:24 #2846 [Verbose] > #r
00:01:24 #2847 [Verbose] > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
00:01:24 #2848 [Verbose] > dard2.1/FSharp.Control.AsyncSeq.dll"
00:01:24 #2849 [Verbose] > #r
00:01:24 #2850 [Verbose] > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
00:01:24 #2851 [Verbose] > 0/System.Reactive.dll"
00:01:24 #2852 [Verbose] > #r
00:01:24 #2853 [Verbose] > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib
00:01:24 #2854 [Verbose] > netstandard2.0/System.Reactive.Linq.dll"
00:01:24 #2855 [Verbose] > #r
00:01:24 #2856 [Verbose] > @"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
00:01:24 #2857 [Verbose] > #r
00:01:24 #2858 [Verbose] > @"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
00:01:24 #2859 [Verbose] > b/net6.0/System.CommandLine.dll"
00:01:24 #2860 [Verbose] >
00:01:24 #2861 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:24 #2862 [Verbose] > #!import ../../lib/spiral/common.fsx
00:01:24 #2863 [Verbose] > #!import ../../lib/spiral/sm.fsx
00:01:24 #2864 [Verbose] > #!import ../../lib/spiral/date_time.fsx
00:01:24 #2865 [Verbose] > #!import ../../lib/spiral/file_system.fsx
00:01:24 #2866 [Verbose] > #!import ../../lib/spiral/lib.fsx
00:01:24 #2867 [Verbose] > #!import ../../lib/fsharp/Common.fs
00:01:24 #2868 [Verbose] > #!import ../../lib/fsharp/CommonFSharp.fs
00:01:24 #2869 [Verbose] > #!import ../../lib/fsharp/Async.fs
00:01:24 #2870 [Verbose] > #!import ../../lib/fsharp/AsyncSeq.fs
00:01:24 #2871 [Verbose] > #!import ../../lib/fsharp/Runtime.fs
00:01:24 #2872 [Verbose] >
00:01:24 #2873 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:24 #2874 [Verbose] > type [[<Struct>]] US0 =
00:01:24 #2875 [Verbose] > | US0_0
00:01:24 #2876 [Verbose] > | US0_1
00:01:24 #2877 [Verbose] > and [[<Struct>]] US1 =
00:01:24 #2878 [Verbose] > | US1_0
00:01:24 #2879 [Verbose] > | US1_1 of f1_0 : US0
00:01:24 #2880 [Verbose] > let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
00:01:24 #2881 [Verbose] > v0
00:01:24 #2882 [Verbose] > and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
00:01:24 #2883 [Verbose] > let mutable result = None
00:01:24 #2884 [Verbose] > #if FABLE_COMPILER_RUST && !WASM
00:01:24 #2885 [Verbose] > let v1 : (unit -> unit) = method0(v0)
00:01:24 #2886 [Verbose] > let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
00:01:24 #2887 [Verbose] > () = Fable.Core.RustInterop.emitRustExpr () "v1()" }
00:01:24 #2888 [Verbose] > v2
00:01:24 #2889 [Verbose] > #endif
00:01:24 #2890 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:01:24 #2891 [Verbose] > let v3 : (unit -> unit) = method0(v0)
00:01:24 #2892 [Verbose] > let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
00:01:24 #2893 [Verbose] > () = Fable.Core.RustInterop.emitRustExpr () "v3()" }
00:01:24 #2894 [Verbose] > v4
00:01:24 #2895 [Verbose] > #endif
00:01:24 #2896 [Verbose] > #if !FABLE_COMPILER && !F...
00:01:25 #2897 [Verbose] >
00:01:25 #2898 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:25 #2899 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}
00:01:25 #2900 [Verbose] > and Mut1 = {mutable l0 : int32}
00:01:25 #2901 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =
00:01:25 #2902 [Verbose] > let v2 : bool = v1.Contains v0
00:01:25 #2903 [Verbose] > v2
00:01:25 #2904 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =
00:01:25 #2905 [Verbose] > closure1(v0)
00:01:25 #2906 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =
00:01:25 #2907 [Verbose] > let v2 : bool = v1.EndsWith v0
00:01:25 #2908 [Verbose] > v2
00:01:25 #2909 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =
00:01:25 #2910 [Verbose] > closure3(v0)
00:01:25 #2911 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
00:01:25 #2912 [Verbose] > let v3 : string = v2.PadLeft (v0, v1)
00:01:25 #2913 [Verbose] > v3
00:01:25 #2914 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =
00:01:25 #2915 [Verbose] > closure6(v0, v1)
00:01:25 #2916 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =
00:01:25 #2917 [Verbose] > closure5(v0)
00:01:25 #2918 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =
00:01:25 #2919 [Verbose] > let v2 : stri...
00:01:25 #2920 [Verbose] >
00:01:25 #2921 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:25 #2922 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
00:01:25 #2923 [Verbose] > let v2 : (System.Guid -> string) = _.ToString()
00:01:25 #2924 [Verbose] > let v3 : string = v2 v0
00:01:25 #2925 [Verbose] > let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
00:01:25 #2926 [Verbose] > let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
00:01:25 #2927 [Verbose] > v5
00:01:25 #2928 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
00:01:25 #2929 [Verbose] > closure1(v0)
00:01:25 #2930 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =
00:01:25 #2931 [Verbose] > let v3 : string = v2.Replace (v0, v1)
00:01:25 #2932 [Verbose] > v3
00:01:25 #2933 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =
00:01:25 #2934 [Verbose] > closure5(v0, v1)
00:01:25 #2935 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =
00:01:25 #2936 [Verbose] > closure4(v0)
00:01:25 #2937 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =
00:01:25 #2938 [Verbose] > closure3()
00:01:25 #2939 [Verbose] > and closure2 (...
00:01:26 #2940 [Verbose] >
00:01:26 #2941 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:26 #2942 [Verbose] > type [[<Struct>]] US0 =
00:01:26 #2943 [Verbose] > | US0_0
00:01:26 #2944 [Verbose] > | US0_1
00:01:26 #2945 [Verbose] > | US0_2
00:01:26 #2946 [Verbose] > and [[<Struct>]] US1 =
00:01:26 #2947 [Verbose] > | US1_0 of f0_0 : US0
00:01:26 #2948 [Verbose] > | US1_1 of f1_0 : US0
00:01:26 #2949 [Verbose] > let rec closure0 () () : string =
00:01:26 #2950 [Verbose] > let mutable result = None
00:01:26 #2951 [Verbose] > #if FABLE_COMPILER_RUST && !WASM
00:01:26 #2952 [Verbose] > let v0 : US0 = US0_1
00:01:26 #2953 [Verbose] > let v1 : US1 = US1_1(v0)
00:01:26 #2954 [Verbose] > let v2 : string = $"create_temp_directory_name target: {v1}"
00:01:26 #2955 [Verbose] > let v3 : string = failwith<string> v2
00:01:26 #2956 [Verbose] > v3
00:01:26 #2957 [Verbose] > #endif
00:01:26 #2958 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:01:26 #2959 [Verbose] > let v4 : US0 = US0_2
00:01:26 #2960 [Verbose] > let v5 : US1 = US1_1(v4)
00:01:26 #2961 [Verbose] > let v6 : string = $"create_temp_directory_name target: {v5}"
00:01:26 #2962 [Verbose] > let v7 : string = failwith<string> v6
00:01:26 #2963 [Verbose] > v7
00:01:26 #2964 [Verbose] > #endif
00:01:26 #2965 [Verbose] > #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM
00:01:26 #2966 [Verbose] > let v8 : string = System.Reflection.Assembly.GetEntryAssembly()...
00:01:26 #2967 [Verbose] >
00:01:26 #2968 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:26 #2969 [Verbose] > #if !WASM && !FABLE_COMPILER
00:01:26 #2970 [Verbose] > module Date_time =
00:01:26 #2971 [Verbose] > let new_guid_from_date_time x =
00:01:26 #2972 [Verbose] > #if !INTERACTIVE
00:01:26 #2973 [Verbose] > Date_time.new_guid_from_date_time x
00:01:26 #2974 [Verbose] > #else
00:01:26 #2975 [Verbose] > new_guid_from_date_time x
00:01:26 #2976 [Verbose] > #endif
00:01:26 #2977 [Verbose] > #endif
00:01:26 #2978 [Verbose] >
00:01:26 #2979 [Verbose] > module Sm =
00:01:26 #2980 [Verbose] > let concat x =
00:01:26 #2981 [Verbose] > #if !INTERACTIVE
00:01:26 #2982 [Verbose] > Sm.concat x
00:01:26 #2983 [Verbose] > #else
00:01:26 #2984 [Verbose] > concat x
00:01:26 #2985 [Verbose] > #endif
00:01:26 #2986 [Verbose] >
00:01:26 #2987 [Verbose] > let contains x =
00:01:26 #2988 [Verbose] > #if !INTERACTIVE
00:01:26 #2989 [Verbose] > Sm.contains x
00:01:26 #2990 [Verbose] > #else
00:01:26 #2991 [Verbose] > contains x
00:01:26 #2992 [Verbose] > #endif
00:01:26 #2993 [Verbose] >
00:01:26 #2994 [Verbose] > let ellipsis x =
00:01:26 #2995 [Verbose] > #if !INTERACTIVE
00:01:26 #2996 [Verbose] > Sm.ellipsis x
00:01:26 #2997 [Verbose] > #else
00:01:26 #2998 [Verbose] > ellipsis x
00:01:26 #2999 [Verbose] > #endif
00:01:26 #3000 [Verbose] >
00:01:26 #3001 [Verbose] > let ellipsis_end x =
00:01:26 #3002 [Verbose] > #if !INTERACTIVE
00:01:26 #3003 [Verbose] > Sm.ellipsis_end x
00:01:26 #3004 [Verbose] > #else
00:01:26 #3005 [Verbose] > ellipsis_end x
00:01:26 #3006 [Verbose] > #endif
00:01:26 #3007 [Verbose] >
00:01:26 #3008 [Verbose] > let ends_with x =
00:01:26 #3009 [Verbose] > #if !INTERACTIVE
00:01:26 #3010 [Verbose] > Sm.ends_with x
00:01:26 #3011 [Verbose] > #else
00:01:26 #3012 [Verbose] > ends_with x
00:01:26 #3013 [Verbose] > #endif
00:01:26 #3014 [Verbose] >
00:01:26 #3015 [Verbose] > let format_exception x =
00:01:26 #3016 [Verbose] > #if !INTERACTIVE
00:01:26 #3017 [Verbose] > Sm.format_...
00:01:26 #3018 [Verbose] >
00:01:26 #3019 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:26 #3020 [Verbose] > #if !INTERACTIVE
00:01:26 #3021 [Verbose] > namespace Polyglot
00:01:26 #3022 [Verbose] > #endif
00:01:26 #3023 [Verbose] >
00:01:26 #3024 [Verbose] > module Common =
00:01:26 #3025 [Verbose] >
00:01:26 #3026 [Verbose] > #if !INTERACTIVE
00:01:26 #3027 [Verbose] > open Lib
00:01:26 #3028 [Verbose] > #endif
00:01:26 #3029 [Verbose] >
00:01:26 #3030 [Verbose] > let nl = System.Environment.NewLine
00:01:26 #3031 [Verbose] > let q = @""""
00:01:26 #3032 [Verbose] >
00:01:26 #3033 [Verbose] > let inline cons head tail = head :: tail
00:01:26 #3034 [Verbose] >
00:01:26 #3035 [Verbose] > /// ## memoize
00:01:26 #3036 [Verbose] >
00:01:26 #3037 [Verbose] > let inline memoize fn =
00:01:26 #3038 [Verbose] > let result = lazy fn ()
00:01:26 #3039 [Verbose] > fun () -> result.Value
00:01:26 #3040 [Verbose] >
00:01:26 #3041 [Verbose] > /// ## TraceLevel
00:01:26 #3042 [Verbose] >
00:01:26 #3043 [Verbose] > type TraceLevel =
00:01:26 #3044 [Verbose] > | Verbose
00:01:26 #3045 [Verbose] > | Debug
00:01:26 #3046 [Verbose] > | Info
00:01:26 #3047 [Verbose] > | Warning
00:01:26 #3048 [Verbose] > | Critical
00:01:26 #3049 [Verbose] >
00:01:26 #3050 [Verbose] > let inline getLocals () = ""
00:01:26 #3051 [Verbose] >
00:01:26 #3052 [Verbose] > let mutable traceEnabled = true
00:01:26 #3053 [Verbose] > let mutable traceCount = 0
00:01:26 #3054 [Verbose] > let mutable traceLevel = Verbose
00:01:26 #3055 [Verbose] > let mutable traceDump = false
00:01:26 #3056 [Verbose] >
00:01:26 #3057 [Verbose] > let testTraceLevel level =
00:01:26 #3058 [Verbose] > traceEnabled && level >= traceLevel
00:01:26 #3059 [Verbose] >
00:01:26 #3060 [Verbose] > /// ## traceRaw
00:01:26 #3061 [Verbose] >
00:01:26 #3062 [Verbose] > let rec traceRaw level fn =
00:01:26 #3063 [Verbose] > ...
00:01:26 #3064 [Verbose] >
00:01:26 #3065 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:26 #3066 [Verbose] > #if !INTERACTIVE
00:01:26 #3067 [Verbose] > namespace Polyglot
00:01:26 #3068 [Verbose] > #endif
00:01:26 #3069 [Verbose] >
00:01:26 #3070 [Verbose] > module CommonFSharp =
00:01:26 #3071 [Verbose] >
00:01:26 #3072 [Verbose] > open Common
00:01:26 #3073 [Verbose] >
00:01:26 #3074 [Verbose] > /// ## getUnionCaseName
00:01:26 #3075 [Verbose] >
00:01:26 #3076 [Verbose] > let inline getUnionCaseName<'T> (x: 'T) =
00:01:26 #3077 [Verbose] > match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
00:01:26 #3078 [Verbose] > | case, _ -> case.Name
00:01:26 #3079 [Verbose] >
00:01:26 #3080 [Verbose] >
00:01:26 #3081 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:26 #3082 [Verbose] > #if !INTERACTIVE
00:01:26 #3083 [Verbose] > namespace Polyglot
00:01:26 #3084 [Verbose] > #endif
00:01:26 #3085 [Verbose] >
00:01:26 #3086 [Verbose] > module Async =
00:01:26 #3087 [Verbose] >
00:01:26 #3088 [Verbose] > #if !INTERACTIVE
00:01:26 #3089 [Verbose] > open Lib
00:01:26 #3090 [Verbose] > #endif
00:01:26 #3091 [Verbose] >
00:01:26 #3092 [Verbose] > open Common
00:01:26 #3093 [Verbose] >
00:01:26 #3094 [Verbose] > /// ## choice
00:01:26 #3095 [Verbose] >
00:01:26 #3096 [Verbose] > let inline choice asyncs = async {
00:01:26 #3097 [Verbose] > let e = Event<_> ()
00:01:26 #3098 [Verbose] > use cts = new System.Threading.CancellationTokenSource ()
00:01:26 #3099 [Verbose] > let fn =
00:01:26 #3100 [Verbose] > asyncs
00:01:26 #3101 [Verbose] > |> Seq.map (fun a -> async {
00:01:26 #3102 [Verbose] > let! x = a
00:01:26 #3103 [Verbose] > e.Trigger x
00:01:26 #3104 [Verbose] > })
00:01:26 #3105 [Verbose] > |> Async.Parallel
00:01:26 #3106 [Verbose] > |> Async.Ignore
00:01:26 #3107 [Verbose] > Async.Start (fn, cts.Token)
00:01:26 #3108 [Verbose] > let! result = Async.AwaitEvent e.Publish
00:01:26 #3109 [Verbose] > cts.Cancel ()
00:01:26 #3110 [Verbose] > return result
00:01:26 #3111 [Verbose] > }
00:01:26 #3112 [Verbose] >
00:01:26 #3113 [Verbose] > /// ## map
00:01:26 #3114 [Verbose] >
00:01:26 #3115 [Verbose] > let inline map fn a = async {
00:01:26 #3116 [Verbose] > let! x = a
00:01:26 #3117 [Verbose] > return fn x
00:01:26 #3118 [Verbose] > }
00:01:26 #3119 [Verbose] >
00:01:26 #3120 [Verbose] > /// ## catch
00:01:26 #3121 [Verbose] >
00:01:26 #3122 [Verbose] > let inline catch a =
00:01:26 #3123 [Verbose] > ...
00:01:27 #3124 [Verbose] >
00:01:27 #3125 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:27 #3126 [Verbose] > #if !INTERACTIVE
00:01:27 #3127 [Verbose] > namespace Polyglot
00:01:27 #3128 [Verbose] > #endif
00:01:27 #3129 [Verbose] >
00:01:27 #3130 [Verbose] > module AsyncSeq =
00:01:27 #3131 [Verbose] >
00:01:27 #3132 [Verbose] > #if !INTERACTIVE
00:01:27 #3133 [Verbose] > open Lib
00:01:27 #3134 [Verbose] > #endif
00:01:27 #3135 [Verbose] >
00:01:27 #3136 [Verbose] > open Common
00:01:27 #3137 [Verbose] >
00:01:27 #3138 [Verbose] > /// ## subscribeEvent
00:01:27 #3139 [Verbose] >
00:01:27 #3140 [Verbose] > let inline subscribeEvent (event: IEvent<'H, 'A>) map =
00:01:27 #3141 [Verbose] > let observable = System.Reactive.Linq.Observable.FromEventPattern<'H,
00:01:27 #3142 [Verbose] > 'A>(event.AddHandler, event.RemoveHandler)
00:01:27 #3143 [Verbose] > System.Reactive.Linq.Observable.Select (observable, fun event -> map
00:01:27 #3144 [Verbose] > event.EventArgs)
00:01:27 #3145 [Verbose] > |> FSharp.Control.AsyncSeq.ofObservableBuffered
00:01:27 #3146 [Verbose] >
00:01:27 #3147 [Verbose] > let subscribeToken (token : System.Threading.CancellationToken) =
00:01:27 #3148 [Verbose] > let tcs = new System.Threading.Tasks.TaskCompletionSource ()
00:01:27 #3149 [Verbose] > System.Action tcs.SetResult |> token.Register |> ignore
00:01:27 #3150 [Verbose] > let start = System.DateTime.Now.Ticks
00:01:27 #3151 [Verbose] > FSharp.Control.A...
00:01:27 #3152 [Verbose] >
00:01:27 #3153 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:27 #3154 [Verbose] > #if !INTERACTIVE
00:01:27 #3155 [Verbose] > namespace Polyglot
00:01:27 #3156 [Verbose] > #endif
00:01:27 #3157 [Verbose] >
00:01:27 #3158 [Verbose] > module Runtime =
00:01:27 #3159 [Verbose] >
00:01:27 #3160 [Verbose] > #if !INTERACTIVE
00:01:27 #3161 [Verbose] > open Lib
00:01:27 #3162 [Verbose] > #endif
00:01:27 #3163 [Verbose] >
00:01:27 #3164 [Verbose] > open Common
00:01:27 #3165 [Verbose] >
00:01:27 #3166 [Verbose] > /// ## isWindows
00:01:27 #3167 [Verbose] >
00:01:27 #3168 [Verbose] > let isWindows =
00:01:27 #3169 [Verbose] > fun () ->
00:01:27 #3170 [Verbose] > System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
00:01:27 #3171 [Verbose] > System.Runtime.InteropServices.OSPlatform.Windows
00:01:27 #3172 [Verbose] > |> memoize
00:01:27 #3173 [Verbose] >
00:01:27 #3174 [Verbose] > /// ## getExecutableSuffix
00:01:27 #3175 [Verbose] >
00:01:27 #3176 [Verbose] > let inline getExecutableSuffix () =
00:01:27 #3177 [Verbose] > if isWindows ()
00:01:27 #3178 [Verbose] > then ".exe"
00:01:27 #3179 [Verbose] > else ""
00:01:27 #3180 [Verbose] >
00:01:27 #3181 [Verbose] > /// ## splitCommand
00:01:27 #3182 [Verbose] >
00:01:27 #3183 [Verbose] > type private CommandParseStep =
00:01:27 #3184 [Verbose] > | Start
00:01:27 #3185 [Verbose] > | Path of quoted: bool
00:01:27 #3186 [Verbose] > | Arguments
00:01:27 #3187 [Verbose] >
00:01:27 #3188 [Verbose] > let splitCommand (command: string) =
00:01:27 #3189 [Verbose] > let rec loop (path, args) chars step =
00:01:27 #3190 [Verbose] > match chars, step with
00:01:27 #3191 [Verbose] > | ('"' | '\'') ...
00:01:27 #3192 [Verbose] >
00:01:27 #3193 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:27 #3194 [Verbose] > #if !INTERACTIVE
00:01:27 #3195 [Verbose] > open Lib
00:01:27 #3196 [Verbose] > #endif
00:01:27 #3197 [Verbose] >
00:01:27 #3198 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:27 #3199 [Verbose] > open Common
00:01:27 #3200 [Verbose] >
00:01:27 #3201 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:27 #3202 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:27 #3203 [Verbose] > │ ## Operators │
00:01:27 #3204 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:27 #3205 [Verbose] >
00:01:27 #3206 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:27 #3207 [Verbose] > module Operators =
00:01:27 #3208 [Verbose] > let inline (</>) a b =
00:01:27 #3209 [Verbose] > System.IO.Path.Combine (a, b)
00:01:27 #3210 [Verbose] >
00:01:27 #3211 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:27 #3212 [Verbose] > open Operators
00:01:27 #3213 [Verbose] >
00:01:27 #3214 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:27 #3215 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:27 #3216 [Verbose] > │ ## createTempDirectory │
00:01:27 #3217 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:27 #3218 [Verbose] >
00:01:27 #3219 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:27 #3220 [Verbose] > let inline createTempDirectory () =
00:01:27 #3221 [Verbose] > let tempFolder = File_system.create_temp_directory_name ()
00:01:27 #3222 [Verbose] > let result = System.IO.Directory.CreateDirectory tempFolder
00:01:27 #3223 [Verbose] >
00:01:27 #3224 [Verbose] > if not result.Exists then
00:01:27 #3225 [Verbose] > let getLocals () =
00:01:27 #3226 [Verbose] > $"tempFolder: {tempFolder} / result: {({|
00:01:27 #3227 [Verbose] > Exists = result.Exists
00:01:27 #3228 [Verbose] > CreationTime = result.CreationTime
00:01:27 #3229 [Verbose] > |})} {getLocals ()}"
00:01:27 #3230 [Verbose] >
00:01:27 #3231 [Verbose] > trace Debug (fun () -> "createTempDirectory") getLocals
00:01:27 #3232 [Verbose] >
00:01:27 #3233 [Verbose] > tempFolder
00:01:27 #3234 [Verbose] >
00:01:27 #3235 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:27 #3236 [Verbose] > //// test
00:01:27 #3237 [Verbose] >
00:01:27 #3238 [Verbose] > let tempDirectory = createTempDirectory ()
00:01:27 #3239 [Verbose] >
00:01:27 #3240 [Verbose] > Directory.Exists tempDirectory
00:01:27 #3241 [Verbose] > |> _assertEqual true
00:01:27 #3242 [Verbose] >
00:01:27 #3243 [Verbose] > ╭─[ 40.67ms - stdout ]─────────────────────────────────────────────────────────╮
00:01:27 #3244 [Verbose] > │ True │
00:01:27 #3245 [Verbose] > │ │
00:01:27 #3246 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:27 #3247 [Verbose] >
00:01:27 #3248 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:27 #3249 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:27 #3250 [Verbose] > │ ## getSourceDirectory │
00:01:27 #3251 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:27 #3252 [Verbose] >
00:01:27 #3253 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:27 #3254 [Verbose] > let getSourceDirectory =
00:01:27 #3255 [Verbose] > fun () -> __SOURCE_DIRECTORY__
00:01:27 #3256 [Verbose] > |> memoize
00:01:27 #3257 [Verbose] >
00:01:27 #3258 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:27 #3259 [Verbose] > //// test
00:01:27 #3260 [Verbose] >
00:01:27 #3261 [Verbose] > getSourceDirectory ()
00:01:27 #3262 [Verbose] > |> System.IO.DirectoryInfo
00:01:27 #3263 [Verbose] > |> fun dir -> dir.Name
00:01:27 #3264 [Verbose] > |> _assertEqual "fsharp"
00:01:27 #3265 [Verbose] >
00:01:27 #3266 [Verbose] > ╭─[ 31.62ms - stdout ]─────────────────────────────────────────────────────────╮
00:01:27 #3267 [Verbose] > │ fsharp │
00:01:27 #3268 [Verbose] > │ │
00:01:27 #3269 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:27 #3270 [Verbose] >
00:01:27 #3271 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:27 #3272 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:27 #3273 [Verbose] > │ ## findParent │
00:01:27 #3274 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:27 #3275 [Verbose] >
00:01:27 #3276 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:27 #3277 [Verbose] > let inline findParent name isFile rootDir =
00:01:27 #3278 [Verbose] > let rec loop dir =
00:01:27 #3279 [Verbose] > if dir </> name |> (if isFile then System.IO.File.Exists else
00:01:27 #3280 [Verbose] > System.IO.Directory.Exists)
00:01:27 #3281 [Verbose] > then dir
00:01:27 #3282 [Verbose] > else
00:01:27 #3283 [Verbose] > dir
00:01:27 #3284 [Verbose] > |> System.IO.Directory.GetParent
00:01:27 #3285 [Verbose] > |> function
00:01:27 #3286 [Verbose] > | null -> failwith $"""No parent for {if isFile then "file" else
00:01:27 #3287 [Verbose] > "dir"} '{name}' at '{rootDir}'"""
00:01:27 #3288 [Verbose] > | parent -> parent.FullName |> loop
00:01:27 #3289 [Verbose] > loop rootDir
00:01:27 #3290 [Verbose] >
00:01:27 #3291 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:27 #3292 [Verbose] > //// test
00:01:27 #3293 [Verbose] >
00:01:27 #3294 [Verbose] > getSourceDirectory () |> findParent ".paket" false
00:01:27 #3295 [Verbose] > |> System.IO.DirectoryInfo
00:01:27 #3296 [Verbose] > |> fun dir -> dir.Name
00:01:27 #3297 [Verbose] > |> _assertEqual "polyglot"
00:01:27 #3298 [Verbose] >
00:01:27 #3299 [Verbose] > ╭─[ 39.47ms - stdout ]─────────────────────────────────────────────────────────╮
00:01:27 #3300 [Verbose] > │ polyglot │
00:01:27 #3301 [Verbose] > │ │
00:01:27 #3302 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:27 #3303 [Verbose] >
00:01:27 #3304 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:27 #3305 [Verbose] > //// test
00:01:27 #3306 [Verbose] >
00:01:27 #3307 [Verbose] > getSourceDirectory () |> findParent "paket.dependencies" true
00:01:27 #3308 [Verbose] > |> System.IO.DirectoryInfo
00:01:27 #3309 [Verbose] > |> fun dir -> dir.Name
00:01:27 #3310 [Verbose] > |> _assertEqual "polyglot"
00:01:28 #3311 [Verbose] >
00:01:28 #3312 [Verbose] > ╭─[ 23.27ms - stdout ]─────────────────────────────────────────────────────────╮
00:01:28 #3313 [Verbose] > │ polyglot │
00:01:28 #3314 [Verbose] > │ │
00:01:28 #3315 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #3316 [Verbose] >
00:01:28 #3317 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:28 #3318 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:28 #3319 [Verbose] > │ ## readAllTextAsync │
00:01:28 #3320 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #3321 [Verbose] >
00:01:28 #3322 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:28 #3323 [Verbose] > let inline readAllTextAsync path =
00:01:28 #3324 [Verbose] > path |> System.IO.File.ReadAllTextAsync |> Async.AwaitTask
00:01:28 #3325 [Verbose] >
00:01:28 #3326 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:28 #3327 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:28 #3328 [Verbose] > │ ## fileExistsContent │
00:01:28 #3329 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #3330 [Verbose] >
00:01:28 #3331 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:28 #3332 [Verbose] > let inline fileExistsContent path content = async {
00:01:28 #3333 [Verbose] > if path |> System.IO.File.Exists |> not
00:01:28 #3334 [Verbose] > then return false
00:01:28 #3335 [Verbose] > else
00:01:28 #3336 [Verbose] > let! existingContent = path |> readAllTextAsync
00:01:28 #3337 [Verbose] > return content = existingContent
00:01:28 #3338 [Verbose] > }
00:01:28 #3339 [Verbose] >
00:01:28 #3340 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:28 #3341 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:28 #3342 [Verbose] > │ ## writeAllTextAsync │
00:01:28 #3343 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #3344 [Verbose] >
00:01:28 #3345 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:28 #3346 [Verbose] > let inline writeAllTextAsync path contents =
00:01:28 #3347 [Verbose] > System.IO.File.WriteAllTextAsync (path, contents) |> Async.AwaitTask
00:01:28 #3348 [Verbose] >
00:01:28 #3349 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:28 #3350 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:28 #3351 [Verbose] > │ ## writeAllTextExists │
00:01:28 #3352 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #3353 [Verbose] >
00:01:28 #3354 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:28 #3355 [Verbose] > let inline writeAllTextExists path contents = async {
00:01:28 #3356 [Verbose] > let! exists = contents |> fileExistsContent path
00:01:28 #3357 [Verbose] > if not exists
00:01:28 #3358 [Verbose] > then do! contents |> writeAllTextAsync path
00:01:28 #3359 [Verbose] > }
00:01:28 #3360 [Verbose] >
00:01:28 #3361 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:28 #3362 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:28 #3363 [Verbose] > │ ## waitForFileAccess │
00:01:28 #3364 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #3365 [Verbose] >
00:01:28 #3366 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:28 #3367 [Verbose] > let inline waitForFileAccess access path =
00:01:28 #3368 [Verbose] > let fileAccess, fileShare =
00:01:28 #3369 [Verbose] > access
00:01:28 #3370 [Verbose] > |> Option.defaultValue (System.IO.FileAccess.ReadWrite,
00:01:28 #3371 [Verbose] > System.IO.FileShare.Read)
00:01:28 #3372 [Verbose] >
00:01:28 #3373 [Verbose] > let rec loop retry = async {
00:01:28 #3374 [Verbose] > try
00:01:28 #3375 [Verbose] > use _ = new System.IO.FileStream (
00:01:28 #3376 [Verbose] > path,
00:01:28 #3377 [Verbose] > System.IO.FileMode.Open,
00:01:28 #3378 [Verbose] > fileAccess,
00:01:28 #3379 [Verbose] > fileShare
00:01:28 #3380 [Verbose] > )
00:01:28 #3381 [Verbose] > return retry
00:01:28 #3382 [Verbose] > with ex ->
00:01:28 #3383 [Verbose] > if retry % 100 = 0 then
00:01:28 #3384 [Verbose] > let getLocals () = $"path: {path |> System.IO.Path.GetFileName}
00:01:28 #3385 [Verbose] > / ex: {ex |> Sm.format_exception} / {getLocals ()}"
00:01:28 #3386 [Verbose] > trace Debug (fun () -> "waitForFileAccess") getLocals
00:01:28 #3387 [Verbose] > do! Async.Sleep 10
00:01:28 #3388 [Verbose] > return! loop (retry + 1)
00:01:28 #3389 [Verbose] > }
00:01:28 #3390 [Verbose] > loop 0
00:01:28 #3391 [Verbose] >
00:01:28 #3392 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:28 #3393 [Verbose] > //// test
00:01:28 #3394 [Verbose] >
00:01:28 #3395 [Verbose] > let tempFolder = createTempDirectory ()
00:01:28 #3396 [Verbose] > let path = tempFolder </> "test.txt"
00:01:28 #3397 [Verbose] >
00:01:28 #3398 [Verbose] > let inline lockFile () = async {
00:01:28 #3399 [Verbose] > trace Debug (fun () -> "_1") getLocals
00:01:28 #3400 [Verbose] > use stream = new System.IO.FileStream (
00:01:28 #3401 [Verbose] > path,
00:01:28 #3402 [Verbose] > System.IO.FileMode.Open,
00:01:28 #3403 [Verbose] > System.IO.FileAccess.ReadWrite,
00:01:28 #3404 [Verbose] > System.IO.FileShare.None
00:01:28 #3405 [Verbose] > )
00:01:28 #3406 [Verbose] > trace Debug (fun () -> "_2") getLocals
00:01:28 #3407 [Verbose] > do! Async.Sleep 2000
00:01:28 #3408 [Verbose] > trace Debug (fun () -> "_3") getLocals
00:01:28 #3409 [Verbose] > stream.Seek (0L, SeekOrigin.Begin) |> ignore
00:01:28 #3410 [Verbose] > trace Debug (fun () -> "_4") getLocals
00:01:28 #3411 [Verbose] > stream.WriteByte 49uy
00:01:28 #3412 [Verbose] > trace Debug (fun () -> "_5") getLocals
00:01:28 #3413 [Verbose] > stream.Flush ()
00:01:28 #3414 [Verbose] > trace Debug (fun () -> "_6") getLocals
00:01:28 #3415 [Verbose] > }
00:01:28 #3416 [Verbose] >
00:01:28 #3417 [Verbose] > async {
00:01:28 #3418 [Verbose] > trace Debug (fun () -> "1") getLocals
00:01:28 #3419 [Verbose] > do! "0" |> writeAllTextAsync path
00:01:28 #3420 [Verbose] > trace Debug (fun () -> "2") getLocals
00:01:28 #3421 [Verbose] > let! child = lockFile () |> Async.StartChild
00:01:28 #3422 [Verbose] > trace Debug (fun () -> "3") getLocals
00:01:28 #3423 [Verbose] > do! Async.Sleep 1
00:01:28 #3424 [Verbose] > trace Debug (fun () -> "4") getLocals
00:01:28 #3425 [Verbose] > let! retries = path |> waitForFileAccess None
00:01:28 #3426 [Verbose] > trace Debug (fun () -> "5") getLocals
00:01:28 #3427 [Verbose] > let! text = path |> readAllTextAsync
00:01:28 #3428 [Verbose] > trace Debug (fun () -> "6") getLocals
00:01:28 #3429 [Verbose] > do! child
00:01:28 #3430 [Verbose] > trace Debug (fun () -> "7") getLocals
00:01:28 #3431 [Verbose] > return retries, text
00:01:28 #3432 [Verbose] > }
00:01:28 #3433 [Verbose] > |> Async.runWithTimeout 3000
00:01:28 #3434 [Verbose] > |> function
00:01:28 #3435 [Verbose] > | Some (retries, text) ->
00:01:28 #3436 [Verbose] > retries
00:01:28 #3437 [Verbose] > |> _isBetween
00:01:28 #3438 [Verbose] > (if Runtime.isWindows () then 50 else 100)
00:01:28 #3439 [Verbose] > (if Runtime.isWindows () then 150 else 200)
00:01:28 #3440 [Verbose] >
00:01:28 #3441 [Verbose] > text |> _assertEqual "1"
00:01:28 #3442 [Verbose] >
00:01:28 #3443 [Verbose] > true
00:01:28 #3444 [Verbose] > | _ -> false
00:01:28 #3445 [Verbose] > |> _assertEqual true
00:01:30 #3446 [Verbose] >
00:01:30 #3447 [Verbose] > ╭─[ 2.41s - stdout ]───────────────────────────────────────────────────────────╮
00:01:30 #3448 [Verbose] > │ 00:00:00 #1 [Debug] 1 │
00:01:30 #3449 [Verbose] > │ 00:00:00 #2 [Debug] 2 │
00:01:30 #3450 [Verbose] > │ 00:00:00 #4 [Debug] _1 │
00:01:30 #3451 [Verbose] > │ 00:00:00 #4 [Debug] 3 │
00:01:30 #3452 [Verbose] > │ 00:00:00 #5 [Debug] _2 │
00:01:30 #3453 [Verbose] > │ 00:00:00 #6 [Debug] 4 │
00:01:30 #3454 [Verbose] > │ 00:00:00 #7 [Debug] waitForFileAccess / path: test.txt / ex: │
00:01:30 #3455 [Verbose] > │ System.IO.IOException: The process cannot access the file │
00:01:30 #3456 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\dotnet-repl\20240330-1710-5529-2919-2c58c │
00:01:30 #3457 [Verbose] > │ 54b1d70\test.txt' because it is being used by another process. │
00:01:30 #3458 [Verbose] > │ 00:00:01 #8 [Debug] waitForFileAccess / path: test.txt / ex: │
00:01:30 #3459 [Verbose] > │ System.IO.IOException: The process cannot access the file │
00:01:30 #3460 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\dotnet-repl\20240330-1710-5529-2919-2c58c │
00:01:30 #3461 [Verbose] > │ 54b1d70\test.txt' because it is being used by another process. │
00:01:30 #3462 [Verbose] > │ 00:00:02 #9 [Debug] _3 │
00:01:30 #3463 [Verbose] > │ 00:00:02 #10 [Debug] _4 │
00:01:30 #3464 [Verbose] > │ 00:00:02 #11 [Debug] _5 │
00:01:30 #3465 [Verbose] > │ 00:00:02 #12 [Debug] _6 │
00:01:30 #3466 [Verbose] > │ 00:00:02 #13 [Debug] 5 │
00:01:30 #3467 [Verbose] > │ 00:00:02 #14 [Debug] 6 │
00:01:30 #3468 [Verbose] > │ 00:00:02 #15 [Debug] 7 │
00:01:30 #3469 [Verbose] > │ 129 │
00:01:30 #3470 [Verbose] > │ 129 │
00:01:30 #3471 [Verbose] > │ 129 │
00:01:30 #3472 [Verbose] > │ 1 │
00:01:30 #3473 [Verbose] > │ True │
00:01:30 #3474 [Verbose] > │ │
00:01:30 #3475 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:30 #3476 [Verbose] >
00:01:30 #3477 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:30 #3478 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:30 #3479 [Verbose] > │ ## readAllTextRetryAsync │
00:01:30 #3480 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:30 #3481 [Verbose] >
00:01:30 #3482 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:30 #3483 [Verbose] > let inline readAllTextRetryAsync fullPath =
00:01:30 #3484 [Verbose] > let rec loop retry = async {
00:01:30 #3485 [Verbose] > try
00:01:30 #3486 [Verbose] > if retry > 0
00:01:30 #3487 [Verbose] > then do!
00:01:30 #3488 [Verbose] > fullPath
00:01:30 #3489 [Verbose] > |> waitForFileAccess (Some (
00:01:30 #3490 [Verbose] > System.IO.FileAccess.Read,
00:01:30 #3491 [Verbose] > System.IO.FileShare.Read
00:01:30 #3492 [Verbose] > ))
00:01:30 #3493 [Verbose] > |> Async.runWithTimeoutAsync 1000
00:01:30 #3494 [Verbose] > |> Async.Ignore
00:01:30 #3495 [Verbose] > return! fullPath |> readAllTextAsync |> Async.map Some
00:01:30 #3496 [Verbose] > with ex ->
00:01:30 #3497 [Verbose] > let getLocals () = $"retry: {retry} / ex: {ex |>
00:01:30 #3498 [Verbose] > Sm.format_exception} / {getLocals ()}"
00:01:30 #3499 [Verbose] > trace Debug (fun () -> $"watchWithFilter / readContent") getLocals
00:01:30 #3500 [Verbose] > if retry = 0
00:01:30 #3501 [Verbose] > then return! loop (retry + 1)
00:01:30 #3502 [Verbose] > else return None
00:01:30 #3503 [Verbose] > }
00:01:30 #3504 [Verbose] > loop 0
00:01:30 #3505 [Verbose] >
00:01:30 #3506 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:30 #3507 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:30 #3508 [Verbose] > │ ## deleteDirectoryAsync │
00:01:30 #3509 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:30 #3510 [Verbose] >
00:01:30 #3511 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:30 #3512 [Verbose] > let inline deleteDirectoryAsync path =
00:01:30 #3513 [Verbose] > let rec loop retry = async {
00:01:30 #3514 [Verbose] > try
00:01:30 #3515 [Verbose] > System.IO.Directory.Delete (path, true)
00:01:30 #3516 [Verbose] > return retry
00:01:30 #3517 [Verbose] > with ex ->
00:01:30 #3518 [Verbose] > if retry % 100 = 0 then
00:01:30 #3519 [Verbose] > let getLocals () = $"path: {path |> System.IO.Path.GetFileName}
00:01:30 #3520 [Verbose] > / ex: {ex |> Sm.format_exception} / {getLocals ()}"
00:01:30 #3521 [Verbose] > trace Debug (fun () -> "deleteDirectoryAsync") getLocals
00:01:30 #3522 [Verbose] > do! Async.Sleep 10
00:01:30 #3523 [Verbose] > return! loop (retry + 1)
00:01:30 #3524 [Verbose] > }
00:01:30 #3525 [Verbose] > loop 0
00:01:30 #3526 [Verbose] >
00:01:30 #3527 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:30 #3528 [Verbose] > //// test
00:01:30 #3529 [Verbose] >
00:01:30 #3530 [Verbose] > let tempFolder = createTempDirectory ()
00:01:30 #3531 [Verbose] > let path = tempFolder </> "test"
00:01:30 #3532 [Verbose] >
00:01:30 #3533 [Verbose] > let inline lockDirectory () = async {
00:01:30 #3534 [Verbose] > trace Debug (fun () -> "_1") getLocals
00:01:30 #3535 [Verbose] > System.IO.File.WriteAllText (path </> "test.txt", "0")
00:01:30 #3536 [Verbose] > use _ = new System.IO.FileStream (
00:01:30 #3537 [Verbose] > path </> "test.txt",
00:01:30 #3538 [Verbose] > System.IO.FileMode.Open,
00:01:30 #3539 [Verbose] > System.IO.FileAccess.ReadWrite,
00:01:30 #3540 [Verbose] > System.IO.FileShare.None
00:01:30 #3541 [Verbose] > )
00:01:30 #3542 [Verbose] > trace Debug (fun () -> "_2") getLocals
00:01:30 #3543 [Verbose] > do! Async.Sleep 2000
00:01:30 #3544 [Verbose] > trace Debug (fun () -> "_3") getLocals
00:01:30 #3545 [Verbose] > }
00:01:30 #3546 [Verbose] >
00:01:30 #3547 [Verbose] > async {
00:01:30 #3548 [Verbose] > trace Debug (fun () -> "1") getLocals
00:01:30 #3549 [Verbose] > Directory.CreateDirectory path |> ignore
00:01:30 #3550 [Verbose] > trace Debug (fun () -> "2") getLocals
00:01:30 #3551 [Verbose] > let! child = lockDirectory () |> Async.StartChild
00:01:30 #3552 [Verbose] > trace Debug (fun () -> "3") getLocals
00:01:30 #3553 [Verbose] > do! Async.Sleep 60
00:01:30 #3554 [Verbose] > trace Debug (fun () -> "4") getLocals
00:01:30 #3555 [Verbose] > let! retries = deleteDirectoryAsync path
00:01:30 #3556 [Verbose] > trace Debug (fun () -> "5") getLocals
00:01:30 #3557 [Verbose] > do! child
00:01:30 #3558 [Verbose] > trace Debug (fun () -> "6") getLocals
00:01:30 #3559 [Verbose] > return retries
00:01:30 #3560 [Verbose] > }
00:01:30 #3561 [Verbose] > |> Async.runWithTimeout 3000
00:01:30 #3562 [Verbose] > |> function
00:01:30 #3563 [Verbose] > | Some retries ->
00:01:30 #3564 [Verbose] > retries
00:01:30 #3565 [Verbose] > |> _isBetween
00:01:30 #3566 [Verbose] > (if Runtime.isWindows () then 50 else 0)
00:01:30 #3567 [Verbose] > (if Runtime.isWindows () then 150 else 0)
00:01:30 #3568 [Verbose] >
00:01:30 #3569 [Verbose] > true
00:01:30 #3570 [Verbose] > | _ -> false
00:01:30 #3571 [Verbose] > |> _assertEqual true
00:01:33 #3572 [Verbose] >
00:01:33 #3573 [Verbose] > ╭─[ 2.30s - stdout ]───────────────────────────────────────────────────────────╮
00:01:33 #3574 [Verbose] > │ 00:00:02 #16 [Debug] 1 │
00:01:33 #3575 [Verbose] > │ 00:00:02 #17 [Debug] 2 │
00:01:33 #3576 [Verbose] > │ 00:00:02 #18 [Debug] 3 │
00:01:33 #3577 [Verbose] > │ 00:00:02 #19 [Debug] _1 │
00:01:33 #3578 [Verbose] > │ 00:00:02 #20 [Debug] _2 │
00:01:33 #3579 [Verbose] > │ 00:00:02 #21 [Debug] 4 │
00:01:33 #3580 [Verbose] > │ 00:00:02 #22 [Debug] deleteDirectoryAsync / path: test / ex: │
00:01:33 #3581 [Verbose] > │ System.IO.IOException: The process cannot access the file 'test.txt' because │
00:01:33 #3582 [Verbose] > │ it is being used by another process. │
00:01:33 #3583 [Verbose] > │ 00:00:04 #23 [Debug] deleteDirectoryAsync / path: test / ex: │
00:01:33 #3584 [Verbose] > │ System.IO.IOException: The process cannot access the file 'test.txt' because │
00:01:33 #3585 [Verbose] > │ it is being used by another process. │
00:01:33 #3586 [Verbose] > │ 00:00:04 #24 [Debug] _3 │
00:01:33 #3587 [Verbose] > │ 00:00:04 #25 [Debug] 5 │
00:01:33 #3588 [Verbose] > │ 00:00:04 #26 [Debug] 6 │
00:01:33 #3589 [Verbose] > │ 125 │
00:01:33 #3590 [Verbose] > │ 125 │
00:01:33 #3591 [Verbose] > │ 125 │
00:01:33 #3592 [Verbose] > │ True │
00:01:33 #3593 [Verbose] > │ │
00:01:33 #3594 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:33 #3595 [Verbose] >
00:01:33 #3596 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:33 #3597 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:33 #3598 [Verbose] > │ ## deleteFileAsync │
00:01:33 #3599 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:33 #3600 [Verbose] >
00:01:33 #3601 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:33 #3602 [Verbose] > let inline deleteFileAsync path =
00:01:33 #3603 [Verbose] > let rec loop retry = async {
00:01:33 #3604 [Verbose] > try
00:01:33 #3605 [Verbose] > System.IO.File.Delete path
00:01:33 #3606 [Verbose] > return retry
00:01:33 #3607 [Verbose] > with ex ->
00:01:33 #3608 [Verbose] > if retry % 100 = 0 then
00:01:33 #3609 [Verbose] > let getLocals () = $"path: {path |> System.IO.Path.GetFileName}
00:01:33 #3610 [Verbose] > / ex: {ex |> Sm.format_exception} / {getLocals ()}"
00:01:33 #3611 [Verbose] > trace Warning (fun () -> "deleteFileAsync") getLocals
00:01:33 #3612 [Verbose] > do! Async.Sleep 10
00:01:33 #3613 [Verbose] > return! loop (retry + 1)
00:01:33 #3614 [Verbose] > }
00:01:33 #3615 [Verbose] > loop 0
00:01:33 #3616 [Verbose] >
00:01:33 #3617 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:33 #3618 [Verbose] > //// test
00:01:33 #3619 [Verbose] >
00:01:33 #3620 [Verbose] > let tempFolder = createTempDirectory ()
00:01:33 #3621 [Verbose] > let path = tempFolder </> "test.txt"
00:01:33 #3622 [Verbose] >
00:01:33 #3623 [Verbose] > let inline lockFile () = async {
00:01:33 #3624 [Verbose] > trace Debug (fun () -> "_1") getLocals
00:01:33 #3625 [Verbose] > use _ = new System.IO.FileStream (
00:01:33 #3626 [Verbose] > path,
00:01:33 #3627 [Verbose] > System.IO.FileMode.Open,
00:01:33 #3628 [Verbose] > System.IO.FileAccess.ReadWrite,
00:01:33 #3629 [Verbose] > System.IO.FileShare.None
00:01:33 #3630 [Verbose] > )
00:01:33 #3631 [Verbose] > trace Debug (fun () -> "_2") getLocals
00:01:33 #3632 [Verbose] > do! Async.Sleep 2000
00:01:33 #3633 [Verbose] > trace Debug (fun () -> "_3") getLocals
00:01:33 #3634 [Verbose] > }
00:01:33 #3635 [Verbose] >
00:01:33 #3636 [Verbose] > async {
00:01:33 #3637 [Verbose] > trace Debug (fun () -> "1") getLocals
00:01:33 #3638 [Verbose] > do! "0" |> writeAllTextAsync path
00:01:33 #3639 [Verbose] > trace Debug (fun () -> "2") getLocals
00:01:33 #3640 [Verbose] > let! child = lockFile () |> Async.StartChild
00:01:33 #3641 [Verbose] > trace Debug (fun () -> "3") getLocals
00:01:33 #3642 [Verbose] > do! Async.Sleep 1
00:01:33 #3643 [Verbose] > trace Debug (fun () -> "4") getLocals
00:01:33 #3644 [Verbose] > let! retries = deleteFileAsync path
00:01:33 #3645 [Verbose] > trace Debug (fun () -> "5") getLocals
00:01:33 #3646 [Verbose] > do! child
00:01:33 #3647 [Verbose] > trace Debug (fun () -> "6") getLocals
00:01:33 #3648 [Verbose] > return retries
00:01:33 #3649 [Verbose] > }
00:01:33 #3650 [Verbose] > |> Async.runWithTimeout 3000
00:01:33 #3651 [Verbose] > |> function
00:01:33 #3652 [Verbose] > | Some retries ->
00:01:33 #3653 [Verbose] > retries
00:01:33 #3654 [Verbose] > |> _isBetween
00:01:33 #3655 [Verbose] > (if Runtime.isWindows () then 50 else 0)
00:01:33 #3656 [Verbose] > (if Runtime.isWindows () then 150 else 0)
00:01:33 #3657 [Verbose] >
00:01:33 #3658 [Verbose] > true
00:01:33 #3659 [Verbose] > | _ -> false
00:01:33 #3660 [Verbose] > |> _assertEqual true
00:01:35 #3661 [Verbose] >
00:01:35 #3662 [Verbose] > ╭─[ 2.34s - stdout ]───────────────────────────────────────────────────────────╮
00:01:35 #3663 [Verbose] > │ 00:00:05 #27 [Debug] 1 │
00:01:35 #3664 [Verbose] > │ 00:00:05 #28 [Debug] 2 │
00:01:35 #3665 [Verbose] > │ 00:00:05 #29 [Debug] _1 │
00:01:35 #3666 [Verbose] > │ 00:00:05 #30 [Debug] 3 │
00:01:35 #3667 [Verbose] > │ 00:00:05 #31 [Debug] _2 │
00:01:35 #3668 [Verbose] > │ 00:00:05 #32 [Debug] 4 │
00:01:35 #3669 [Verbose] > │ 00:00:05 #33 [Warning] deleteFileAsync / path: test.txt / ex: │
00:01:35 #3670 [Verbose] > │ System.IO.IOException: The process cannot access the file │
00:01:35 #3671 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\dotnet-repl\20240330-1711-0035-3525-33a60 │
00:01:35 #3672 [Verbose] > │ 9efab53\test.txt' because it is being used by another process. │
00:01:35 #3673 [Verbose] > │ 00:00:06 #34 [Warning] deleteFileAsync / path: test.txt / ex: │
00:01:35 #3674 [Verbose] > │ System.IO.IOException: The process cannot access the file │
00:01:35 #3675 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\dotnet-repl\20240330-1711-0035-3525-33a60 │
00:01:35 #3676 [Verbose] > │ 9efab53\test.txt' because it is being used by another process. │
00:01:35 #3677 [Verbose] > │ 00:00:07 #35 [Debug] _3 │
00:01:35 #3678 [Verbose] > │ 00:00:07 #36 [Debug] 5 │
00:01:35 #3679 [Verbose] > │ 00:00:07 #37 [Debug] 6 │
00:01:35 #3680 [Verbose] > │ 127 │
00:01:35 #3681 [Verbose] > │ 127 │
00:01:35 #3682 [Verbose] > │ 127 │
00:01:35 #3683 [Verbose] > │ True │
00:01:35 #3684 [Verbose] > │ │
00:01:35 #3685 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:35 #3686 [Verbose] >
00:01:35 #3687 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:35 #3688 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:35 #3689 [Verbose] > │ ## moveFileAsync │
00:01:35 #3690 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:35 #3691 [Verbose] >
00:01:35 #3692 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:35 #3693 [Verbose] > let inline moveFileAsync newPath oldPath =
00:01:35 #3694 [Verbose] > let rec loop retry = async {
00:01:35 #3695 [Verbose] > try
00:01:35 #3696 [Verbose] > System.IO.File.Move (oldPath, newPath)
00:01:35 #3697 [Verbose] > return retry
00:01:35 #3698 [Verbose] > with ex ->
00:01:35 #3699 [Verbose] > if retry % 100 = 0 then
00:01:35 #3700 [Verbose] > let getLocals () =
00:01:35 #3701 [Verbose] > $"oldPath: {oldPath |> System.IO.Path.GetFileName}
00:01:35 #3702 [Verbose] > newPath: {newPath |> System.IO.Path.GetFileName} / ex: {ex |>
00:01:35 #3703 [Verbose] > Sm.format_exception} / {getLocals ()}"
00:01:35 #3704 [Verbose] > trace Warning (fun () -> "moveFileAsync") getLocals
00:01:35 #3705 [Verbose] > do! Async.Sleep 10
00:01:35 #3706 [Verbose] > return! loop (retry + 1)
00:01:35 #3707 [Verbose] > }
00:01:35 #3708 [Verbose] > loop 0
00:01:35 #3709 [Verbose] >
00:01:35 #3710 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:35 #3711 [Verbose] > //// test
00:01:35 #3712 [Verbose] >
00:01:35 #3713 [Verbose] > let tempFolder = createTempDirectory ()
00:01:35 #3714 [Verbose] > let path = tempFolder </> "test.txt"
00:01:35 #3715 [Verbose] > let newPath = tempFolder </> "test2.txt"
00:01:35 #3716 [Verbose] >
00:01:35 #3717 [Verbose] > let inline lockFile () = async {
00:01:35 #3718 [Verbose] > trace Debug (fun () -> "_1") getLocals
00:01:35 #3719 [Verbose] > use _ = new System.IO.FileStream (
00:01:35 #3720 [Verbose] > path,
00:01:35 #3721 [Verbose] > System.IO.FileMode.Open,
00:01:35 #3722 [Verbose] > System.IO.FileAccess.ReadWrite,
00:01:35 #3723 [Verbose] > System.IO.FileShare.None
00:01:35 #3724 [Verbose] > )
00:01:35 #3725 [Verbose] > trace Debug (fun () -> "_2") getLocals
00:01:35 #3726 [Verbose] > do! Async.Sleep 2000
00:01:35 #3727 [Verbose] > trace Debug (fun () -> "_3") getLocals
00:01:35 #3728 [Verbose] > }
00:01:35 #3729 [Verbose] >
00:01:35 #3730 [Verbose] > async {
00:01:35 #3731 [Verbose] > trace Debug (fun () -> "1") getLocals
00:01:35 #3732 [Verbose] > do! "0" |> writeAllTextAsync path
00:01:35 #3733 [Verbose] > trace Debug (fun () -> "2") getLocals
00:01:35 #3734 [Verbose] > let! child = lockFile () |> Async.StartChild
00:01:35 #3735 [Verbose] > trace Debug (fun () -> "3") getLocals
00:01:35 #3736 [Verbose] > do! Async.Sleep 1
00:01:35 #3737 [Verbose] > trace Debug (fun () -> "4") getLocals
00:01:35 #3738 [Verbose] > let! retries1 = path |> moveFileAsync newPath
00:01:35 #3739 [Verbose] > trace Debug (fun () -> "5") getLocals
00:01:35 #3740 [Verbose] > let! retries2 = newPath |> waitForFileAccess None
00:01:35 #3741 [Verbose] > trace Debug (fun () -> "6") getLocals
00:01:35 #3742 [Verbose] > let! text = newPath |> readAllTextAsync
00:01:35 #3743 [Verbose] > trace Debug (fun () -> "7") getLocals
00:01:35 #3744 [Verbose] > do! child
00:01:35 #3745 [Verbose] > trace Debug (fun () -> "8") getLocals
00:01:35 #3746 [Verbose] > return retries1, retries2, text
00:01:35 #3747 [Verbose] > }
00:01:35 #3748 [Verbose] > |> Async.runWithTimeout 3000
00:01:35 #3749 [Verbose] > |> function
00:01:35 #3750 [Verbose] > | Some (retries1, retries2, text) ->
00:01:35 #3751 [Verbose] > retries1
00:01:35 #3752 [Verbose] > |> _isBetween
00:01:35 #3753 [Verbose] > (if Runtime.isWindows () then 50 else 0)
00:01:35 #3754 [Verbose] > (if Runtime.isWindows () then 150 else 0)
00:01:35 #3755 [Verbose] >
00:01:35 #3756 [Verbose] > retries2
00:01:35 #3757 [Verbose] > |> _isBetween
00:01:35 #3758 [Verbose] > (if Runtime.isWindows () then 0 else 100)
00:01:35 #3759 [Verbose] > (if Runtime.isWindows () then 0 else 200)
00:01:35 #3760 [Verbose] >
00:01:35 #3761 [Verbose] > text |> _assertEqual "0"
00:01:35 #3762 [Verbose] >
00:01:35 #3763 [Verbose] > true
00:01:35 #3764 [Verbose] > | _ -> false
00:01:35 #3765 [Verbose] > |> _assertEqual true
00:01:38 #3766 [Verbose] >
00:01:38 #3767 [Verbose] > ╭─[ 2.34s - stdout ]───────────────────────────────────────────────────────────╮
00:01:38 #3768 [Verbose] > │ 00:00:07 #38 [Debug] 1 │
00:01:38 #3769 [Verbose] > │ 00:00:07 #39 [Debug] 2 │
00:01:38 #3770 [Verbose] > │ 00:00:07 #40 [Debug] 3 │
00:01:38 #3771 [Verbose] > │ 00:00:07 #41 [Debug] _1 │
00:01:38 #3772 [Verbose] > │ 00:00:07 #42 [Debug] _2 │
00:01:38 #3773 [Verbose] > │ 00:00:07 #43 [Debug] 4 │
00:01:38 #3774 [Verbose] > │ 00:00:07 #44 [Warning] moveFileAsync / oldPath: test.txt / newPath: │
00:01:38 #3775 [Verbose] > │ test2.txt / ex: System.IO.IOException: The process cannot access the file │
00:01:38 #3776 [Verbose] > │ because it is being used by another process. │
00:01:38 #3777 [Verbose] > │ 00:00:08 #45 [Warning] moveFileAsync / oldPath: test.txt / newPath: │
00:01:38 #3778 [Verbose] > │ test2.txt / ex: System.IO.IOException: The process cannot access the file │
00:01:38 #3779 [Verbose] > │ because it is being used by another process. │
00:01:38 #3780 [Verbose] > │ 00:00:09 #46 [Debug] _3 │
00:01:38 #3781 [Verbose] > │ 00:00:09 #47 [Debug] 5 │
00:01:38 #3782 [Verbose] > │ 00:00:09 #48 [Debug] 6 │
00:01:38 #3783 [Verbose] > │ 00:00:09 #49 [Debug] 7 │
00:01:38 #3784 [Verbose] > │ 00:00:09 #50 [Debug] 8 │
00:01:38 #3785 [Verbose] > │ 129 │
00:01:38 #3786 [Verbose] > │ 129 │
00:01:38 #3787 [Verbose] > │ 129 │
00:01:38 #3788 [Verbose] > │ 0 │
00:01:38 #3789 [Verbose] > │ 0 │
00:01:38 #3790 [Verbose] > │ 0 │
00:01:38 #3791 [Verbose] > │ 0 │
00:01:38 #3792 [Verbose] > │ True │
00:01:38 #3793 [Verbose] > │ │
00:01:38 #3794 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:38 #3795 [Verbose] >
00:01:38 #3796 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:38 #3797 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:38 #3798 [Verbose] > │ ## watchDirectory │
00:01:38 #3799 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:38 #3800 [Verbose] >
00:01:38 #3801 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:38 #3802 [Verbose] > [[<RequireQualifiedAccess>]]
00:01:38 #3803 [Verbose] > type FileSystemChangeType =
00:01:38 #3804 [Verbose] > | Failure
00:01:38 #3805 [Verbose] > | Changed
00:01:38 #3806 [Verbose] > | Created
00:01:38 #3807 [Verbose] > | Deleted
00:01:38 #3808 [Verbose] > | Renamed
00:01:38 #3809 [Verbose] >
00:01:38 #3810 [Verbose] > [[<RequireQualifiedAccess>]]
00:01:38 #3811 [Verbose] > type FileSystemChange =
00:01:38 #3812 [Verbose] > | Failure of exn: exn
00:01:38 #3813 [Verbose] > | Changed of path: string * content: string option
00:01:38 #3814 [Verbose] > | Created of path: string * content: string option
00:01:38 #3815 [Verbose] > | Deleted of path: string
00:01:38 #3816 [Verbose] > | Renamed of oldPath: string * (string * string option)
00:01:38 #3817 [Verbose] >
00:01:38 #3818 [Verbose] >
00:01:38 #3819 [Verbose] > let inline watchDirectoryWithFilter filter shouldReadContent path =
00:01:38 #3820 [Verbose] > let fullPath = path |> System.IO.Path.GetFullPath
00:01:38 #3821 [Verbose] > let getLocals () = $"filter: {filter} / {getLocals ()}"
00:01:38 #3822 [Verbose] >
00:01:38 #3823 [Verbose] > let watcher =
00:01:38 #3824 [Verbose] > new System.IO.FileSystemWatcher (
00:01:38 #3825 [Verbose] > Path = fullPath,
00:01:38 #3826 [Verbose] > NotifyFilter = filter,
00:01:38 #3827 [Verbose] > EnableRaisingEvents = true,
00:01:38 #3828 [Verbose] > IncludeSubdirectories = true
00:01:38 #3829 [Verbose] > )
00:01:38 #3830 [Verbose] >
00:01:38 #3831 [Verbose] > let inline getEventPath (path : string) =
00:01:38 #3832 [Verbose] > path |> Sm.trim |> Sm.replace fullPath "" |> Sm.trim_start [[| '/'; '\\'
00:01:38 #3833 [Verbose] > |]]
00:01:38 #3834 [Verbose] >
00:01:38 #3835 [Verbose] > let inline ticks () =
00:01:38 #3836 [Verbose] > System.DateTime.UtcNow.Ticks
00:01:38 #3837 [Verbose] >
00:01:38 #3838 [Verbose] > let changedStream =
00:01:38 #3839 [Verbose] > AsyncSeq.subscribeEvent
00:01:38 #3840 [Verbose] > watcher.Changed
00:01:38 #3841 [Verbose] > (fun event ->
00:01:38 #3842 [Verbose] > ticks (),
00:01:38 #3843 [Verbose] > [[ FileSystemChange.Changed (getEventPath event.FullPath, None)
00:01:38 #3844 [Verbose] > ]]
00:01:38 #3845 [Verbose] > )
00:01:38 #3846 [Verbose] >
00:01:38 #3847 [Verbose] > let deletedStream =
00:01:38 #3848 [Verbose] > AsyncSeq.subscribeEvent
00:01:38 #3849 [Verbose] > watcher.Deleted
00:01:38 #3850 [Verbose] > (fun event ->
00:01:38 #3851 [Verbose] > ticks (),
00:01:38 #3852 [Verbose] > [[ FileSystemChange.Deleted (getEventPath event.FullPath) ]]
00:01:38 #3853 [Verbose] > )
00:01:38 #3854 [Verbose] >
00:01:38 #3855 [Verbose] > let createdStream =
00:01:38 #3856 [Verbose] > AsyncSeq.subscribeEvent
00:01:38 #3857 [Verbose] > watcher.Created
00:01:38 #3858 [Verbose] > (fun event ->
00:01:38 #3859 [Verbose] > let path = getEventPath event.FullPath
00:01:38 #3860 [Verbose] > ticks (), [[
00:01:38 #3861 [Verbose] > FileSystemChange.Created (path, None)
00:01:38 #3862 [Verbose] > if Runtime.isWindows () then
00:01:38 #3863 [Verbose] > FileSystemChange.Changed (path, None)
00:01:38 #3864 [Verbose] > ]])
00:01:38 #3865 [Verbose] >
00:01:38 #3866 [Verbose] > let renamedStream =
00:01:38 #3867 [Verbose] > AsyncSeq.subscribeEvent
00:01:38 #3868 [Verbose] > watcher.Renamed
00:01:38 #3869 [Verbose] > (fun event ->
00:01:38 #3870 [Verbose] > ticks (), [[
00:01:38 #3871 [Verbose] > FileSystemChange.Renamed (
00:01:38 #3872 [Verbose] > getEventPath event.OldFullPath,
00:01:38 #3873 [Verbose] > (getEventPath event.FullPath, None)
00:01:38 #3874 [Verbose] > )
00:01:38 #3875 [Verbose] > ]]
00:01:38 #3876 [Verbose] > )
00:01:38 #3877 [Verbose] >
00:01:38 #3878 [Verbose] > let failureStream =
00:01:38 #3879 [Verbose] > AsyncSeq.subscribeEvent
00:01:38 #3880 [Verbose] > watcher.Error
00:01:38 #3881 [Verbose] > (fun event -> ticks (), [[ FileSystemChange.Failure
00:01:38 #3882 [Verbose] > (event.GetException ()) ]])
00:01:38 #3883 [Verbose] >
00:01:38 #3884 [Verbose] > let stream =
00:01:38 #3885 [Verbose] > [[
00:01:38 #3886 [Verbose] > changedStream
00:01:38 #3887 [Verbose] > deletedStream
00:01:38 #3888 [Verbose] > createdStream
00:01:38 #3889 [Verbose] > renamedStream
00:01:38 #3890 [Verbose] > failureStream
00:01:38 #3891 [Verbose] > ]]
00:01:38 #3892 [Verbose] > |> FSharp.Control.AsyncSeq.mergeAll
00:01:38 #3893 [Verbose] > |> FSharp.Control.AsyncSeq.map (fun (t, events) ->
00:01:38 #3894 [Verbose] > events
00:01:38 #3895 [Verbose] > |> List.fold
00:01:38 #3896 [Verbose] > (fun (i, events) event ->
00:01:38 #3897 [Verbose] > i + 1L,
00:01:38 #3898 [Verbose] > (t + i, event) :: events)
00:01:38 #3899 [Verbose] > (0L, [[]])
00:01:38 #3900 [Verbose] > |> snd
00:01:38 #3901 [Verbose] > |> List.rev
00:01:38 #3902 [Verbose] > )
00:01:38 #3903 [Verbose] > |> FSharp.Control.AsyncSeq.concatSeq
00:01:38 #3904 [Verbose] > |> FSharp.Control.AsyncSeq.mapAsyncParallel (fun (t, event) -> async {
00:01:38 #3905 [Verbose] > match shouldReadContent event, event with
00:01:38 #3906 [Verbose] > | true, FileSystemChange.Changed (path, _) ->
00:01:38 #3907 [Verbose] > do! Async.Sleep 5
00:01:38 #3908 [Verbose] > let! content = fullPath </> path |> readAllTextRetryAsync
00:01:38 #3909 [Verbose] > return t, FileSystemChange.Changed (path, content)
00:01:38 #3910 [Verbose] > | true, FileSystemChange.Created (path, _) ->
00:01:38 #3911 [Verbose] > do! Async.Sleep 5
00:01:38 #3912 [Verbose] > let! content = fullPath </> path |> readAllTextRetryAsync
00:01:38 #3913 [Verbose] > return t, FileSystemChange.Created (path, content)
00:01:38 #3914 [Verbose] > | true, FileSystemChange.Renamed (oldPath, (newPath, _)) ->
00:01:38 #3915 [Verbose] > let! content = fullPath </> newPath |> readAllTextRetryAsync
00:01:38 #3916 [Verbose] > return t, FileSystemChange.Renamed (oldPath, (newPath, content))
00:01:38 #3917 [Verbose] > | _ -> return t, event
00:01:38 #3918 [Verbose] > })
00:01:38 #3919 [Verbose] >
00:01:38 #3920 [Verbose] > let disposable =
00:01:38 #3921 [Verbose] > new_disposable (fun () ->
00:01:38 #3922 [Verbose] > trace Debug (fun () -> "watchWithFilter / Disposing watch stream")
00:01:38 #3923 [Verbose] > getLocals
00:01:38 #3924 [Verbose] > watcher.EnableRaisingEvents <- false
00:01:38 #3925 [Verbose] > watcher.Dispose ()
00:01:38 #3926 [Verbose] > )
00:01:38 #3927 [Verbose] >
00:01:38 #3928 [Verbose] > stream, disposable
00:01:38 #3929 [Verbose] >
00:01:38 #3930 [Verbose] > let inline watchDirectory path =
00:01:38 #3931 [Verbose] > watchDirectoryWithFilter
00:01:38 #3932 [Verbose] > (System.IO.NotifyFilters.FileName
00:01:38 #3933 [Verbose] > // ||| System.IO.NotifyFilters.DirectoryName
00:01:38 #3934 [Verbose] > // ||| System.IO.NotifyFilters.Attributes
00:01:38 #3935 [Verbose] > //// ||| System.IO.NotifyFilters.Size
00:01:38 #3936 [Verbose] > ||| System.IO.NotifyFilters.LastWrite
00:01:38 #3937 [Verbose] > //// ||| System.IO.NotifyFilters.LastAccess
00:01:38 #3938 [Verbose] > // ||| System.IO.NotifyFilters.CreationTime
00:01:38 #3939 [Verbose] > // ||| System.IO.NotifyFilters.Security
00:01:38 #3940 [Verbose] > )
00:01:38 #3941 [Verbose] > path
00:01:39 #3942 [Verbose] >
00:01:39 #3943 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:39 #3944 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:39 #3945 [Verbose] > │ ### testEventsRaw (test) │
00:01:39 #3946 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:39 #3947 [Verbose] >
00:01:39 #3948 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:39 #3949 [Verbose] > //// test
00:01:39 #3950 [Verbose] >
00:01:39 #3951 [Verbose] > let inline testEventsRaw
00:01:39 #3952 [Verbose] > (watchFn : (_ -> bool) -> string -> FSharp.Control.AsyncSeq<int64 *
00:01:39 #3953 [Verbose] > FileSystemChange> * IDisposable)
00:01:39 #3954 [Verbose] > write
00:01:39 #3955 [Verbose] > =
00:01:39 #3956 [Verbose] > let tempDirectory = createTempDirectory ()
00:01:39 #3957 [Verbose] > let stream, disposable = watchFn (fun _ -> true) tempDirectory
00:01:39 #3958 [Verbose] >
00:01:39 #3959 [Verbose] > let events = System.Collections.Concurrent.ConcurrentBag ()
00:01:39 #3960 [Verbose] >
00:01:39 #3961 [Verbose] > let inline iter () =
00:01:39 #3962 [Verbose] > stream
00:01:39 #3963 [Verbose] > |> FSharp.Control.AsyncSeq.iterAsyncParallel (fun event -> async {
00:01:39 #3964 [Verbose] > events.Add event })
00:01:39 #3965 [Verbose] >
00:01:39 #3966 [Verbose] > let run = async {
00:01:39 #3967 [Verbose] > let! _ = iter () |> Async.StartChild
00:01:39 #3968 [Verbose] > do! Async.Sleep 250
00:01:39 #3969 [Verbose] > return! write tempDirectory
00:01:39 #3970 [Verbose] > }
00:01:39 #3971 [Verbose] >
00:01:39 #3972 [Verbose] > try
00:01:39 #3973 [Verbose] > run
00:01:39 #3974 [Verbose] > |> Async.runWithTimeout 60000
00:01:39 #3975 [Verbose] > |> _assertEqual (Some ())
00:01:39 #3976 [Verbose] > finally
00:01:39 #3977 [Verbose] > disposable.Dispose ()
00:01:39 #3978 [Verbose] > deleteDirectoryAsync tempDirectory |> Async.Ignore |>
00:01:39 #3979 [Verbose] > Async.RunSynchronously
00:01:39 #3980 [Verbose] >
00:01:39 #3981 [Verbose] > let eventsLog =
00:01:39 #3982 [Verbose] > events
00:01:39 #3983 [Verbose] > |> Seq.toList
00:01:39 #3984 [Verbose] > |> List.sortBy fst
00:01:39 #3985 [Verbose] > |> List.fold
00:01:39 #3986 [Verbose] > (fun (prev, acc) (ticks, event) ->
00:01:39 #3987 [Verbose] > ticks, (ticks, (if prev = 0L then 0L else ticks - prev), event)
00:01:39 #3988 [Verbose] > :: acc
00:01:39 #3989 [Verbose] > )
00:01:39 #3990 [Verbose] > (0L, [[]])
00:01:39 #3991 [Verbose] > |> snd
00:01:39 #3992 [Verbose] > |> List.rev
00:01:39 #3993 [Verbose] > |> List.map (fun (diff, n, event) -> $"{n} / {diff} / {event}" |>
00:01:39 #3994 [Verbose] > Sm.ellipsis_end 100L)
00:01:39 #3995 [Verbose] > |> Sm.concat "\n"
00:01:39 #3996 [Verbose] > let getLocals () = $"eventsLog: \n{eventsLog} / {getLocals ()}"
00:01:39 #3997 [Verbose] > trace Debug (fun () -> "testEventsRaw") getLocals
00:01:39 #3998 [Verbose] >
00:01:39 #3999 [Verbose] > events
00:01:39 #4000 [Verbose] > |> Seq.toList
00:01:39 #4001 [Verbose] > |> List.sortBy fst
00:01:39 #4002 [Verbose] > |> List.map snd
00:01:39 #4003 [Verbose] > |> List.fold
00:01:39 #4004 [Verbose] > (fun acc event ->
00:01:39 #4005 [Verbose] > match acc, event with
00:01:39 #4006 [Verbose] > | FileSystemChange.Changed (lastPath, Some lastContent) as lastEvent
00:01:39 #4007 [Verbose] > :: acc,
00:01:39 #4008 [Verbose] > FileSystemChange.Changed (path, Some content)
00:01:39 #4009 [Verbose] > when lastPath = path && content |> Sm.starts_with lastContent
00:01:39 #4010 [Verbose] > ->
00:01:39 #4011 [Verbose] > event :: acc
00:01:39 #4012 [Verbose] > | _ -> event :: acc
00:01:39 #4013 [Verbose] > )
00:01:39 #4014 [Verbose] > [[]]
00:01:39 #4015 [Verbose] > |> List.rev
00:01:39 #4016 [Verbose] >
00:01:39 #4017 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:39 #4018 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:39 #4019 [Verbose] > │ #### fast (test) │
00:01:39 #4020 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:39 #4021 [Verbose] >
00:01:39 #4022 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:39 #4023 [Verbose] > //// test
00:01:39 #4024 [Verbose] >
00:01:39 #4025 [Verbose] > let inline write path = async {
00:01:39 #4026 [Verbose] > let n = 2
00:01:39 #4027 [Verbose] >
00:01:39 #4028 [Verbose] > for i = 1 to n do
00:01:39 #4029 [Verbose] > do! $"a{i}" |> writeAllTextAsync (path </> $"file{i}.txt")
00:01:39 #4030 [Verbose] >
00:01:39 #4031 [Verbose] > do! Async.Sleep 250
00:01:39 #4032 [Verbose] >
00:01:39 #4033 [Verbose] > for i = 1 to n do
00:01:39 #4034 [Verbose] > do! $"b{i}" |> writeAllTextAsync (path </> $"file{i}.txt")
00:01:39 #4035 [Verbose] >
00:01:39 #4036 [Verbose] > do! Async.Sleep 250
00:01:39 #4037 [Verbose] >
00:01:39 #4038 [Verbose] > for i = 1 to n do
00:01:39 #4039 [Verbose] > do! path </> $"file{i}.txt" |> moveFileAsync (path </> $"file_{i}.txt")
00:01:39 #4040 [Verbose] > |> Async.Ignore
00:01:39 #4041 [Verbose] >
00:01:39 #4042 [Verbose] > do! Async.Sleep 250
00:01:39 #4043 [Verbose] >
00:01:39 #4044 [Verbose] > for i = 1 to n do
00:01:39 #4045 [Verbose] > do! $"c{i}" |> writeAllTextAsync (path </> $"file_{i}.txt")
00:01:39 #4046 [Verbose] >
00:01:39 #4047 [Verbose] > do! Async.Sleep 250
00:01:39 #4048 [Verbose] >
00:01:39 #4049 [Verbose] > for i = 1 to n do
00:01:39 #4050 [Verbose] > do! deleteFileAsync (path </> $"file_{i}.txt") |> Async.Ignore
00:01:39 #4051 [Verbose] >
00:01:39 #4052 [Verbose] > do! Async.Sleep 250
00:01:39 #4053 [Verbose] > }
00:01:39 #4054 [Verbose] >
00:01:39 #4055 [Verbose] > let inline run () =
00:01:39 #4056 [Verbose] > let events = testEventsRaw watchDirectory write
00:01:39 #4057 [Verbose] >
00:01:39 #4058 [Verbose] > events
00:01:39 #4059 [Verbose] > |> _sequenceEqual [[
00:01:39 #4060 [Verbose] > FileSystemChange.Created ("file1.txt", Some "a1")
00:01:39 #4061 [Verbose] > FileSystemChange.Changed ("file1.txt", Some "a1")
00:01:39 #4062 [Verbose] > FileSystemChange.Created ("file2.txt", Some "a2")
00:01:39 #4063 [Verbose] > FileSystemChange.Changed ("file2.txt", Some "a2")
00:01:39 #4064 [Verbose] >
00:01:39 #4065 [Verbose] > FileSystemChange.Changed ("file1.txt", Some "b1")
00:01:39 #4066 [Verbose] > FileSystemChange.Changed ("file2.txt", Some "b2")
00:01:39 #4067 [Verbose] >
00:01:39 #4068 [Verbose] > FileSystemChange.Renamed ("file1.txt", ("file_1.txt", Some "b1"))
00:01:39 #4069 [Verbose] > FileSystemChange.Renamed ("file2.txt", ("file_2.txt", Some "b2"))
00:01:39 #4070 [Verbose] >
00:01:39 #4071 [Verbose] > FileSystemChange.Changed ("file_1.txt", Some "c1")
00:01:39 #4072 [Verbose] > FileSystemChange.Changed ("file_2.txt", Some "c2")
00:01:39 #4073 [Verbose] >
00:01:39 #4074 [Verbose] > FileSystemChange.Deleted "file_1.txt"
00:01:39 #4075 [Verbose] > FileSystemChange.Deleted "file_2.txt"
00:01:39 #4076 [Verbose] > ]]
00:01:39 #4077 [Verbose] >
00:01:39 #4078 [Verbose] > run
00:01:39 #4079 [Verbose] > |> retry_fn 3
00:01:39 #4080 [Verbose] > |> _assertEqual (Some ())
00:01:44 #4081 [Verbose] >
00:01:44 #4082 [Verbose] > ╭─[ 4.84s - stdout ]───────────────────────────────────────────────────────────╮
00:01:44 #4083 [Verbose] > │ FSharpOption<Unit> │
00:01:44 #4084 [Verbose] > │ Value: <null> │
00:01:44 #4085 [Verbose] > │ 00:00:16 #51 [Debug] watchWithFilter / Disposing watch stream / filter: │
00:01:44 #4086 [Verbose] > │ FileName, LastWrite │
00:01:44 #4087 [Verbose] > │ 00:00:16 #52 [Debug] testEventsRaw / eventsLog: │
00:01:44 #4088 [Verbose] > │ 0 / 638474298700148100 / Created ("file1.txt", Some "a1") │
00:01:44 #4089 [Verbose] > │ 1 / 638474298700148101 / Changed ("file1.txt", Some "a1") │
00:01:44 #4090 [Verbose] > │ 67923 / 638474298700216024 / Changed ("file1.txt", Some "a1") │
00:01:44 #4091 [Verbose] > │ 2138 / 638474298700218162 / Created ("file2.txt", Some "a2") │
00:01:44 #4092 [Verbose] > │ 1 / 638474298700218163 / Changed ("file2.txt", Some "a2") │
00:01:44 #4093 [Verbose] > │ 135 / 638474298700218298 / Changed ("file2.txt", Some "a2") │
00:01:44 #4094 [Verbose] > │ 2598106 / 638474298702816404 / Changed ("file1.txt", Some "b1") │
00:01:44 #4095 [Verbose] > │ 2111 / 638474298702818515 / Changed ("file1.txt", Some "b1") │
00:01:44 #4096 [Verbose] > │ 6552 / 638474298702825067 / Changed ("file2.txt", Some "b2") │
00:01:44 #4097 [Verbose] > │ 1525 / 638474298702826592 / Changed ("file2.txt", Some "b2") │
00:01:44 #4098 [Verbose] > │ 2654419 / 638474298705481011 / Renamed ("file1.txt", ("file_1.txt", Some │
00:01:44 #4099 [Verbose] > │ "b1")) │
00:01:44 #4100 [Verbose] > │ 2760 / 638474298705483771 / Renamed ("file2.txt", ("file_2.txt", Some "b2")) │
00:01:44 #4101 [Verbose] > │ 2632078 / 638474298708115849 / Changed ("file_1.txt", Some "c1") │
00:01:44 #4102 [Verbose] > │ 2987 / 638474298708118836 / Changed ("file_1.txt", Some "c1") │
00:01:44 #4103 [Verbose] > │ 13845 / 638474298708132681 / Changed ("file_2.txt", Some "c2") │
00:01:44 #4104 [Verbose] > │ 2903 / 638474298708135584 / Changed ("file_2.txt", Some "c2") │
00:01:44 #4105 [Verbose] > │ 2631176 / 638474298710766760 / Deleted "file_1.txt" │
00:01:44 #4106 [Verbose] > │ 3020 / 638474298710769780 / Deleted "file_2.txt" │
00:01:44 #4107 [Verbose] > │ FSharpList<FileSystemChange> │
00:01:44 #4108 [Verbose] > │ - path: file1.txt │
00:01:44 #4109 [Verbose] > │ content: FSharpOption<String> │
00:01:44 #4110 [Verbose] > │ Value: a1 │
00:01:44 #4111 [Verbose] > │ IsFailure: False │
00:01:44 #4112 [Verbose] > │ IsChanged: False │
00:01:44 #4113 [Verbose] > │ IsCreated: True │
00:01:44 #4114 [Verbose] > │ IsDeleted: False │
00:01:44 #4115 [Verbose] > │ IsRenamed: False │
00:01:44 #4116 [Verbose] > │ - path: file1.txt │
00:01:44 #4117 [Verbose] > │ content: FSharpOption<String> │
00:01:44 #4118 [Verbose] > │ Value: a1 │
00:01:44 #4119 [Verbose] > │ IsFailure: False │
00:01:44 #4120 [Verbose] > │ IsChanged: True │
00:01:44 #4121 [Verbose] > │ IsCreated: False │
00:01:44 #4122 [Verbose] > │ IsDeleted: False │
00:01:44 #4123 [Verbose] > │ IsRenamed: False │
00:01:44 #4124 [Verbose] > │ - path: file2.txt │
00:01:44 #4125 [Verbose] > │ content: FSharpOption<String> │
00:01:44 #4126 [Verbose] > │ Value: a2 │
00:01:44 #4127 [Verbose] > │ IsFailure: False │
00:01:44 #4128 [Verbose] > │ IsChanged: False │
00:01:44 #4129 [Verbose] > │ IsCreated: True │
00:01:44 #4130 [Verbose] > │ IsDeleted: False │
00:01:44 #4131 [Verbose] > │ IsRenamed: False │
00:01:44 #4132 [Verbose] > │ - path: file2.txt │
00:01:44 #4133 [Verbose] > │ content: FSharpOption<String> │
00:01:44 #4134 [Verbose] > │ Value: a2 │
00:01:44 #4135 [Verbose] > │ IsFailure: False │
00:01:44 #4136 [Verbose] > │ IsChanged: True │
00:01:44 #4137 [Verbose] > │ IsCreated: False │
00:01:44 #4138 [Verbose] > │ IsDeleted: False │
00:01:44 #4139 [Verbose] > │ IsRenamed: False │
00:01:44 #4140 [Verbose] > │ - path: file1.txt │
00:01:44 #4141 [Verbose] > │ content: FSharpOption<String> │
00:01:44 #4142 [Verbose] > │ Value: b1 │
00:01:44 #4143 [Verbose] > │ IsFailure: False │
00:01:44 #4144 [Verbose] > │ IsChanged: True │
00:01:44 #4145 [Verbose] > │ IsCreated: False │
00:01:44 #4146 [Verbose] > │ IsDeleted: False │
00:01:44 #4147 [Verbose] > │ IsRenamed: False │
00:01:44 #4148 [Verbose] > │ - path: file2.txt │
00:01:44 #4149 [Verbose] > │ content: FSharpOption<String> │
00:01:44 #4150 [Verbose] > │ Value: b2 │
00:01:44 #4151 [Verbose] > │ IsFailure: False │
00:01:44 #4152 [Verbose] > │ IsChanged: True │
00:01:44 #4153 [Verbose] > │ IsCreated: False │
00:01:44 #4154 [Verbose] > │ IsDeleted: False │
00:01:44 #4155 [Verbose] > │ IsRenamed: False │
00:01:44 #4156 [Verbose] > │ - oldPath: file1.txt │
00:01:44 #4157 [Verbose] > │ Item2: - file_1.txt │
00:01:44 #4158 [Verbose] > │ - FSharpOption<String> │
00:01:44 #4159 [Verbose] > │ Value: b1 │
00:01:44 #4160 [Verbose] > │ - IsFailure: False │
00:01:44 #4161 [Verbose] > │ IsChanged: False │
00:01:44 #4162 [Verbose] > │ IsCreated: False │
00:01:44 #4163 [Verbose] > │ IsDeleted: False │
00:01:44 #4164 [Verbose] > │ IsRenamed: True │
00:01:44 #4165 [Verbose] > │ - oldPath: file2.txt │
00:01:44 #4166 [Verbose] > │ Item2: - file_2.txt │
00:01:44 #4167 [Verbose] > │ - FSharpOption<String> │
00:01:44 #4168 [Verbose] > │ Value: b2 │
00:01:44 #4169 [Verbose] > │ - IsFailure: False │
00:01:44 #4170 [Verbose] > │ IsChanged: False │
00:01:44 #4171 [Verbose] > │ IsCreated: False │
00:01:44 #4172 [Verbose] > │ IsDeleted: False │
00:01:44 #4173 [Verbose] > │ IsRenamed: True │
00:01:44 #4174 [Verbose] > │ - path: file_1.txt │
00:01:44 #4175 [Verbose] > │ content: FSharpOption<String> │
00:01:44 #4176 [Verbose] > │ Value: c1 │
00:01:44 #4177 [Verbose] > │ IsFailure: False │
00:01:44 #4178 [Verbose] > │ IsChanged: True │
00:01:44 #4179 [Verbose] > │ IsCreated: False │
00:01:44 #4180 [Verbose] > │ IsDeleted: False │
00:01:44 #4181 [Verbose] > │ IsRenamed: False │
00:01:44 #4182 [Verbose] > │ - path: file_2.txt │
00:01:44 #4183 [Verbose] > │ content: FSharpOption<String> │
00:01:44 #4184 [Verbose] > │ Value: c2 │
00:01:44 #4185 [Verbose] > │ IsFailure: False │
00:01:44 #4186 [Verbose] > │ IsChanged: True │
00:01:44 #4187 [Verbose] > │ IsCreated: False │
00:01:44 #4188 [Verbose] > │ IsDeleted: False │
00:01:44 #4189 [Verbose] > │ IsRenamed: False │
00:01:44 #4190 [Verbose] > │ - path: file_1.txt │
00:01:44 #4191 [Verbose] > │ IsFailure: False │
00:01:44 #4192 [Verbose] > │ IsChanged: False │
00:01:44 #4193 [Verbose] > │ IsCreated: False │
00:01:44 #4194 [Verbose] > │ IsDeleted: True │
00:01:44 #4195 [Verbose] > │ IsRenamed: False │
00:01:44 #4196 [Verbose] > │ - path: file_2.txt │
00:01:44 #4197 [Verbose] > │ IsFailure: False │
00:01:44 #4198 [Verbose] > │ IsChanged: False │
00:01:44 #4199 [Verbose] > │ IsCreated: False │
00:01:44 #4200 [Verbose] > │ IsDeleted: True │
00:01:44 #4201 [Verbose] > │ IsRenamed: False │
00:01:44 #4202 [Verbose] > │ FSharpOption<Unit> │
00:01:44 #4203 [Verbose] > │ Value: <null> │
00:01:44 #4204 [Verbose] > │ │
00:01:44 #4205 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:44 #4206 [Verbose] >
00:01:44 #4207 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:44 #4208 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:44 #4209 [Verbose] > │ #### slow (test) │
00:01:44 #4210 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:44 #4211 [Verbose] >
00:01:44 #4212 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:44 #4213 [Verbose] > //// test
00:01:44 #4214 [Verbose] >
00:01:44 #4215 [Verbose] > let inline write path = async {
00:01:44 #4216 [Verbose] > let n = 2
00:01:44 #4217 [Verbose] >
00:01:44 #4218 [Verbose] > let contents =
00:01:44 #4219 [Verbose] > [[ 1 .. n ]]
00:01:44 #4220 [Verbose] > |> List.map (string >> String.replicate 1_000_000)
00:01:44 #4221 [Verbose] >
00:01:44 #4222 [Verbose] > for i = 1 to n do
00:01:44 #4223 [Verbose] > do! $"{contents.[[i - 1]]}a" |> writeAllTextAsync (path </>
00:01:44 #4224 [Verbose] > $"file{i}.txt")
00:01:44 #4225 [Verbose] >
00:01:44 #4226 [Verbose] > do! Async.Sleep 1500
00:01:44 #4227 [Verbose] >
00:01:44 #4228 [Verbose] > for i = 1 to n do
00:01:44 #4229 [Verbose] > do! $"{contents.[[i - 1]]}b" |> writeAllTextAsync (path </>
00:01:44 #4230 [Verbose] > $"file{i}.txt")
00:01:44 #4231 [Verbose] >
00:01:44 #4232 [Verbose] > do! Async.Sleep 1500
00:01:44 #4233 [Verbose] >
00:01:44 #4234 [Verbose] > for i = 1 to n do
00:01:44 #4235 [Verbose] > do! path </> $"file{i}.txt" |> moveFileAsync (path </> $"file_{i}.txt")
00:01:44 #4236 [Verbose] > |> Async.Ignore
00:01:44 #4237 [Verbose] >
00:01:44 #4238 [Verbose] > do! Async.Sleep 1500
00:01:44 #4239 [Verbose] >
00:01:44 #4240 [Verbose] > for i = 1 to n do
00:01:44 #4241 [Verbose] > do! $"{contents.[[i - 1]]}c" |> writeAllTextAsync (path </>
00:01:44 #4242 [Verbose] > $"file_{i}.txt")
00:01:44 #4243 [Verbose] >
00:01:44 #4244 [Verbose] > do! Async.Sleep 1500
00:01:44 #4245 [Verbose] >
00:01:44 #4246 [Verbose] > for i = 1 to n do
00:01:44 #4247 [Verbose] > do! deleteFileAsync (path </> $"file_{i}.txt") |> Async.Ignore
00:01:44 #4248 [Verbose] >
00:01:44 #4249 [Verbose] > do! Async.Sleep 1500
00:01:44 #4250 [Verbose] > }
00:01:44 #4251 [Verbose] >
00:01:44 #4252 [Verbose] > let inline run () =
00:01:44 #4253 [Verbose] > let events =
00:01:44 #4254 [Verbose] > testEventsRaw watchDirectory write
00:01:44 #4255 [Verbose] > |> List.map (function
00:01:44 #4256 [Verbose] > | FileSystemChange.Changed (path, Some content) ->
00:01:44 #4257 [Verbose] > FileSystemChange.Changed (path, content |> Seq.distinct |>
00:01:44 #4258 [Verbose] > Seq.map string |> Sm.concat "" |> Some)
00:01:44 #4259 [Verbose] > | FileSystemChange.Created (path, Some content) ->
00:01:44 #4260 [Verbose] > FileSystemChange.Created (path, content |> Seq.distinct |>
00:01:44 #4261 [Verbose] > Seq.map string |> Sm.concat "" |> Some)
00:01:44 #4262 [Verbose] > | FileSystemChange.Renamed (oldPath, (newPath, Some content)) ->
00:01:44 #4263 [Verbose] > FileSystemChange.Renamed (
00:01:44 #4264 [Verbose] > oldPath,
00:01:44 #4265 [Verbose] > (newPath, content |> Seq.distinct |> Seq.map string |>
00:01:44 #4266 [Verbose] > Sm.concat "" |> Some)
00:01:44 #4267 [Verbose] > )
00:01:44 #4268 [Verbose] > | event -> event
00:01:44 #4269 [Verbose] > )
00:01:44 #4270 [Verbose] >
00:01:44 #4271 [Verbose] > events
00:01:44 #4272 [Verbose] > |> _sequenceEqual [[
00:01:44 #4273 [Verbose] > FileSystemChange.Created ("file1.txt", Some "1a")
00:01:44 #4274 [Verbose] > FileSystemChange.Changed ("file1.txt", Some "1a")
00:01:44 #4275 [Verbose] > FileSystemChange.Created ("file2.txt", Some "2a")
00:01:44 #4276 [Verbose] > FileSystemChange.Changed ("file2.txt", Some "2a")
00:01:44 #4277 [Verbose] >
00:01:44 #4278 [Verbose] > FileSystemChange.Changed ("file1.txt", Some "1b")
00:01:44 #4279 [Verbose] > FileSystemChange.Changed ("file2.txt", Some "2b")
00:01:44 #4280 [Verbose] >
00:01:44 #4281 [Verbose] > FileSystemChange.Renamed ("file1.txt", ("file_1.txt", Some "1b"))
00:01:44 #4282 [Verbose] > FileSystemChange.Renamed ("file2.txt", ("file_2.txt", Some "2b"))
00:01:44 #4283 [Verbose] >
00:01:44 #4284 [Verbose] > FileSystemChange.Changed ("file_1.txt", Some "1c")
00:01:44 #4285 [Verbose] > FileSystemChange.Changed ("file_2.txt", Some "2c")
00:01:44 #4286 [Verbose] >
00:01:44 #4287 [Verbose] > FileSystemChange.Deleted "file_1.txt"
00:01:44 #4288 [Verbose] > FileSystemChange.Deleted "file_2.txt"
00:01:44 #4289 [Verbose] > ]]
00:01:44 #4290 [Verbose] >
00:01:44 #4291 [Verbose] > run
00:01:44 #4292 [Verbose] > |> retry_fn 5
00:01:44 #4293 [Verbose] > |> _assertEqual (Some ())
00:01:57 #4294 [Verbose] >
00:01:57 #4295 [Verbose] > ╭─[ 12.46s - stdout ]──────────────────────────────────────────────────────────╮
00:01:57 #4296 [Verbose] > │ 00:00:20 #53 [Debug] watchWithFilter / readContent / retry: 0 / ex: │
00:01:57 #4297 [Verbose] > │ System.AggregateException: One or more errors occurred. (The process cannot │
00:01:57 #4298 [Verbose] > │ access the file │
00:01:57 #4299 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\dotnet-repl\20240330-1711-1557-5776-5ca8f │
00:01:57 #4300 [Verbose] > │ 96d99e8\file2.txt' because it is being used by another process.) │
00:01:57 #4301 [Verbose] > │ 00:00:22 #54 [Debug] watchWithFilter / readContent / retry: 0 / ex: │
00:01:57 #4302 [Verbose] > │ System.AggregateException: One or more errors occurred. (The process cannot │
00:01:57 #4303 [Verbose] > │ access the file │
00:01:57 #4304 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\dotnet-repl\20240330-1711-1557-5776-5ca8f │
00:01:57 #4305 [Verbose] > │ 96d99e8\file1.txt' because it is being used by another process.) │
00:01:57 #4306 [Verbose] > │ 00:00:22 #55 [Debug] watchWithFilter / readContent / retry: 0 / ex: │
00:01:57 #4307 [Verbose] > │ System.AggregateException: One or more errors occurred. (The process cannot │
00:01:57 #4308 [Verbose] > │ access the file │
00:01:57 #4309 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\dotnet-repl\20240330-1711-1557-5776-5ca8f │
00:01:57 #4310 [Verbose] > │ 96d99e8\file2.txt' because it is being used by another process.) │
00:01:57 #4311 [Verbose] > │ 00:00:22 #56 [Debug] waitForFileAccess / path: file2.txt / ex: │
00:01:57 #4312 [Verbose] > │ System.IO.IOException: The process cannot access the file │
00:01:57 #4313 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\dotnet-repl\20240330-1711-1557-5776-5ca8f │
00:01:57 #4314 [Verbose] > │ 96d99e8\file2.txt' because it is being used by another process. │
00:01:57 #4315 [Verbose] > │ FSharpOption<Unit> │
00:01:57 #4316 [Verbose] > │ Value: <null> │
00:01:57 #4317 [Verbose] > │ 00:00:28 #57 [Debug] watchWithFilter / Disposing watch stream / filter: │
00:01:57 #4318 [Verbose] > │ FileName, LastWrite │
00:01:57 #4319 [Verbose] > │ 00:00:28 #58 [Debug] testEventsRaw / eventsLog: │
00:01:57 #4320 [Verbose] > │ 0 / 638474298758488764 / Created │
00:01:57 #4321 [Verbose] > │ ("file1.txt", │
00:01:57 #4322 [Verbose] > │ ...11111111111111111111111111111111111111111111111a") │
00:01:57 #4323 [Verbose] > │ 1 / 638474298758488765 / Changed │
00:01:57 #4324 [Verbose] > │ ("file1.txt", │
00:01:57 #4325 [Verbose] > │ ...11111111111111111111111111111111111111111111111a") │
00:01:57 #4326 [Verbose] > │ 134417 / 638474298758623182 / Changed │
00:01:57 #4327 [Verbose] > │ ("file1.tx...11111111111111111111111111111111111111111111111a") │
00:01:57 #4328 [Verbose] > │ 27219 / 638474298758650401 / Created │
00:01:57 #4329 [Verbose] > │ ("file2.txt...22222222222222222222222222222222222222222222222a") │
00:01:57 #4330 [Verbose] > │ 1 / 638474298758650402 / Changed │
00:01:57 #4331 [Verbose] > │ ("file2.txt", │
00:01:57 #4332 [Verbose] > │ ...22222222222222222222222222222222222222222222222a") │
00:01:57 #4333 [Verbose] > │ 139316 / 638474298758789718 / Changed │
00:01:57 #4334 [Verbose] > │ ("file2.tx...22222222222222222222222222222222222222222222222a") │
00:01:57 #4335 [Verbose] > │ 15283137 / 638474298774072855 / Changed │
00:01:57 #4336 [Verbose] > │ ("file1....11111111111111111111111111111111111111111111111b") │
00:01:57 #4337 [Verbose] > │ 212217 / 638474298774285072 / Changed │
00:01:57 #4338 [Verbose] > │ ("file1.tx...11111111111111111111111111111111111111111111111b") │
00:01:57 #4339 [Verbose] > │ 49244 / 638474298774334316 / Changed │
00:01:57 #4340 [Verbose] > │ ("file2.txt...22222222222222222222222222222222222222222222222b") │
00:01:57 #4341 [Verbose] > │ 171615 / 638474298774505931 / Changed │
00:01:57 #4342 [Verbose] > │ ("file2.tx...22222222222222222222222222222222222222222222222b") │
00:01:57 #4343 [Verbose] > │ 15177374 / 638474298789683305 / Renamed │
00:01:57 #4344 [Verbose] > │ ("file1....1111111111111111111111111111111111111111111111b")) │
00:01:57 #4345 [Verbose] > │ 12147 / 638474298789695452 / Renamed │
00:01:57 #4346 [Verbose] > │ ("file2.txt...2222222222222222222222222222222222222222222222b")) │
00:01:57 #4347 [Verbose] > │ 15084143 / 638474298804779595 / Changed │
00:01:57 #4348 [Verbose] > │ ("file_1...11111111111111111111111111111111111111111111111c") │
00:01:57 #4349 [Verbose] > │ 54132 / 638474298804833727 / Changed │
00:01:57 #4350 [Verbose] > │ ("file_1.tx...11111111111111111111111111111111111111111111111c") │
00:01:57 #4351 [Verbose] > │ 61397 / 638474298804895124 / Changed │
00:01:57 #4352 [Verbose] > │ ("file_2.tx...22222222222222222222222222222222222222222222222c") │
00:01:57 #4353 [Verbose] > │ 50174 / 638474298804945298 / Changed │
00:01:57 #4354 [Verbose] > │ ("file_2.tx...22222222222222222222222222222222222222222222222c") │
00:01:57 #4355 [Verbose] > │ 15149435 / 638474298820094733 / Deleted "file_1.txt" │
00:01:57 #4356 [Verbose] > │ 6271 / 638474298820101004 / Deleted "file_2.txt" │
00:01:57 #4357 [Verbose] > │ FSharpList<FileSystemChange> │
00:01:57 #4358 [Verbose] > │ - path: file1.txt │
00:01:57 #4359 [Verbose] > │ content: FSharpOption<String> │
00:01:57 #4360 [Verbose] > │ Value: 1a │
00:01:57 #4361 [Verbose] > │ IsFailure: False │
00:01:57 #4362 [Verbose] > │ IsChanged: False │
00:01:57 #4363 [Verbose] > │ IsCreated: True │
00:01:57 #4364 [Verbose] > │ IsDeleted: False │
00:01:57 #4365 [Verbose] > │ IsRenamed: False │
00:01:57 #4366 [Verbose] > │ - path: file1.txt │
00:01:57 #4367 [Verbose] > │ content: FSharpOption<String> │
00:01:57 #4368 [Verbose] > │ Value: 1a │
00:01:57 #4369 [Verbose] > │ IsFailure: False │
00:01:57 #4370 [Verbose] > │ IsChanged: True │
00:01:57 #4371 [Verbose] > │ IsCreated: False │
00:01:57 #4372 [Verbose] > │ IsDeleted: False │
00:01:57 #4373 [Verbose] > │ IsRenamed: False │
00:01:57 #4374 [Verbose] > │ - path: file2.txt │
00:01:57 #4375 [Verbose] > │ content: FSharpOption<String> │
00:01:57 #4376 [Verbose] > │ Value: 2a │
00:01:57 #4377 [Verbose] > │ IsFailure: False │
00:01:57 #4378 [Verbose] > │ IsChanged: False │
00:01:57 #4379 [Verbose] > │ IsCreated: True │
00:01:57 #4380 [Verbose] > │ IsDeleted: False │
00:01:57 #4381 [Verbose] > │ IsRenamed: False │
00:01:57 #4382 [Verbose] > │ - path: file2.txt │
00:01:57 #4383 [Verbose] > │ content: FSharpOption<String> │
00:01:57 #4384 [Verbose] > │ Value: 2a │
00:01:57 #4385 [Verbose] > │ IsFailure: False │
00:01:57 #4386 [Verbose] > │ IsChanged: True │
00:01:57 #4387 [Verbose] > │ IsCreated: False │
00:01:57 #4388 [Verbose] > │ IsDeleted: False │
00:01:57 #4389 [Verbose] > │ IsRenamed: False │
00:01:57 #4390 [Verbose] > │ - path: file1.txt │
00:01:57 #4391 [Verbose] > │ content: FSharpOption<String> │
00:01:57 #4392 [Verbose] > │ Value: 1b │
00:01:57 #4393 [Verbose] > │ IsFailure: False │
00:01:57 #4394 [Verbose] > │ IsChanged: True │
00:01:57 #4395 [Verbose] > │ IsCreated: False │
00:01:57 #4396 [Verbose] > │ IsDeleted: False │
00:01:57 #4397 [Verbose] > │ IsRenamed: False │
00:01:57 #4398 [Verbose] > │ - path: file2.txt │
00:01:57 #4399 [Verbose] > │ content: FSharpOption<String> │
00:01:57 #4400 [Verbose] > │ Value: 2b │
00:01:57 #4401 [Verbose] > │ IsFailure: False │
00:01:57 #4402 [Verbose] > │ IsChanged: True │
00:01:57 #4403 [Verbose] > │ IsCreated: False │
00:01:57 #4404 [Verbose] > │ IsDeleted: False │
00:01:57 #4405 [Verbose] > │ IsRenamed: False │
00:01:57 #4406 [Verbose] > │ - oldPath: file1.txt │
00:01:57 #4407 [Verbose] > │ Item2: - file_1.txt │
00:01:57 #4408 [Verbose] > │ - FSharpOption<String> │
00:01:57 #4409 [Verbose] > │ Value: 1b │
00:01:57 #4410 [Verbose] > │ - IsFailure: False │
00:01:57 #4411 [Verbose] > │ IsChanged: False │
00:01:57 #4412 [Verbose] > │ IsCreated: False │
00:01:57 #4413 [Verbose] > │ IsDeleted: False │
00:01:57 #4414 [Verbose] > │ IsRenamed: True │
00:01:57 #4415 [Verbose] > │ - oldPath: file2.txt │
00:01:57 #4416 [Verbose] > │ Item2: - file_2.txt │
00:01:57 #4417 [Verbose] > │ - FSharpOption<String> │
00:01:57 #4418 [Verbose] > │ Value: 2b │
00:01:57 #4419 [Verbose] > │ - IsFailure: False │
00:01:57 #4420 [Verbose] > │ IsChanged: False │
00:01:57 #4421 [Verbose] > │ IsCreated: False │
00:01:57 #4422 [Verbose] > │ IsDeleted: False │
00:01:57 #4423 [Verbose] > │ IsRenamed: True │
00:01:57 #4424 [Verbose] > │ - path: file_1.txt │
00:01:57 #4425 [Verbose] > │ content: FSharpOption<String> │
00:01:57 #4426 [Verbose] > │ Value: 1c │
00:01:57 #4427 [Verbose] > │ IsFailure: False │
00:01:57 #4428 [Verbose] > │ IsChanged: True │
00:01:57 #4429 [Verbose] > │ IsCreated: False │
00:01:57 #4430 [Verbose] > │ IsDeleted: False │
00:01:57 #4431 [Verbose] > │ IsRenamed: False │
00:01:57 #4432 [Verbose] > │ - path: file_2.txt │
00:01:57 #4433 [Verbose] > │ content: FSharpOption<String> │
00:01:57 #4434 [Verbose] > │ Value: 2c │
00:01:57 #4435 [Verbose] > │ IsFailure: False │
00:01:57 #4436 [Verbose] > │ IsChanged: True │
00:01:57 #4437 [Verbose] > │ IsCreated: False │
00:01:57 #4438 [Verbose] > │ IsDeleted: False │
00:01:57 #4439 [Verbose] > │ IsRenamed: False │
00:01:57 #4440 [Verbose] > │ - path: file_1.txt │
00:01:57 #4441 [Verbose] > │ IsFailure: False │
00:01:57 #4442 [Verbose] > │ IsChanged: False │
00:01:57 #4443 [Verbose] > │ IsCreated: False │
00:01:57 #4444 [Verbose] > │ IsDeleted: True │
00:01:57 #4445 [Verbose] > │ IsRenamed: False │
00:01:57 #4446 [Verbose] > │ - path: file_2.txt │
00:01:57 #4447 [Verbose] > │ IsFailure: False │
00:01:57 #4448 [Verbose] > │ IsChanged: False │
00:01:57 #4449 [Verbose] > │ IsCreated: False │
00:01:57 #4450 [Verbose] > │ IsDeleted: True │
00:01:57 #4451 [Verbose] > │ IsRenamed: False │
00:01:57 #4452 [Verbose] > │ FSharpOption<Unit> │
00:01:57 #4453 [Verbose] > │ Value: <null> │
00:01:57 #4454 [Verbose] > │ │
00:01:57 #4455 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:57 #4456 [Verbose] >
00:01:57 #4457 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:57 #4458 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:57 #4459 [Verbose] > │ ### testEventsSorted (test) │
00:01:57 #4460 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:57 #4461 [Verbose] >
00:01:57 #4462 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:57 #4463 [Verbose] > //// test
00:01:57 #4464 [Verbose] >
00:01:57 #4465 [Verbose] > let inline sortEvent event =
00:01:57 #4466 [Verbose] > match event with
00:01:57 #4467 [Verbose] > | FileSystemChange.Failure _ -> 0
00:01:57 #4468 [Verbose] > | FileSystemChange.Created _ -> 1
00:01:57 #4469 [Verbose] > | FileSystemChange.Changed _ -> 2
00:01:57 #4470 [Verbose] > | FileSystemChange.Renamed (_oldPath, _) -> 3
00:01:57 #4471 [Verbose] > | FileSystemChange.Deleted _ -> 4
00:01:57 #4472 [Verbose] >
00:01:57 #4473 [Verbose] > let inline formatEvents events =
00:01:57 #4474 [Verbose] > events
00:01:57 #4475 [Verbose] > |> Seq.toList
00:01:57 #4476 [Verbose] > |> List.sortBy (snd >> sortEvent)
00:01:57 #4477 [Verbose] > |> List.choose (fun (ticks, event) ->
00:01:57 #4478 [Verbose] > match event with
00:01:57 #4479 [Verbose] > | FileSystemChange.Failure _ ->
00:01:57 #4480 [Verbose] > None
00:01:57 #4481 [Verbose] > | FileSystemChange.Changed (path, _) ->
00:01:57 #4482 [Verbose] > Some (ticks, System.IO.Path.GetFileName path, nameof
00:01:57 #4483 [Verbose] > FileSystemChangeType.Changed)
00:01:57 #4484 [Verbose] > | FileSystemChange.Created (path, _) ->
00:01:57 #4485 [Verbose] > Some (ticks, System.IO.Path.GetFileName path, nameof
00:01:57 #4486 [Verbose] > FileSystemChangeType.Created)
00:01:57 #4487 [Verbose] > | FileSystemChange.Deleted path ->
00:01:57 #4488 [Verbose] > Some (ticks, System.IO.Path.GetFileName path, nameof
00:01:57 #4489 [Verbose] > FileSystemChangeType.Deleted)
00:01:57 #4490 [Verbose] > | FileSystemChange.Renamed (_oldPath, (path, _)) ->
00:01:57 #4491 [Verbose] > Some (ticks, System.IO.Path.GetFileName path, nameof
00:01:57 #4492 [Verbose] > FileSystemChangeType.Renamed)
00:01:57 #4493 [Verbose] > )
00:01:57 #4494 [Verbose] > |> List.sortBy (fun (_, path, _) -> path)
00:01:57 #4495 [Verbose] > |> List.distinctBy (fun (_, path, event) -> path, event)
00:01:57 #4496 [Verbose] >
00:01:57 #4497 [Verbose] > let inline testEventsSorted
00:01:57 #4498 [Verbose] > (watchFn : string -> FSharp.Control.AsyncSeq<int64 * FileSystemChange> *
00:01:57 #4499 [Verbose] > IDisposable)
00:01:57 #4500 [Verbose] > write
00:01:57 #4501 [Verbose] > =
00:01:57 #4502 [Verbose] > let path = createTempDirectory ()
00:01:57 #4503 [Verbose] > let stream, disposable = watchFn path
00:01:57 #4504 [Verbose] >
00:01:57 #4505 [Verbose] > let events = System.Collections.Concurrent.ConcurrentBag ()
00:01:57 #4506 [Verbose] >
00:01:57 #4507 [Verbose] > let inline iter () =
00:01:57 #4508 [Verbose] > stream
00:01:57 #4509 [Verbose] > |> FSharp.Control.AsyncSeq.iterAsyncParallel (fun event -> async {
00:01:57 #4510 [Verbose] > events.Add event })
00:01:57 #4511 [Verbose] >
00:01:57 #4512 [Verbose] > let run = async {
00:01:57 #4513 [Verbose] > let! _ = iter () |> Async.StartChild
00:01:57 #4514 [Verbose] > do! Async.Sleep 250
00:01:57 #4515 [Verbose] > return! write path
00:01:57 #4516 [Verbose] > }
00:01:57 #4517 [Verbose] >
00:01:57 #4518 [Verbose] > try
00:01:57 #4519 [Verbose] > run
00:01:57 #4520 [Verbose] > |> Async.runWithTimeout 5000
00:01:57 #4521 [Verbose] > |> _assertEqual (Some ())
00:01:57 #4522 [Verbose] > finally
00:01:57 #4523 [Verbose] > disposable.Dispose ()
00:01:57 #4524 [Verbose] > deleteDirectoryAsync path |> Async.Ignore |> Async.RunSynchronously
00:01:57 #4525 [Verbose] >
00:01:57 #4526 [Verbose] > let events = formatEvents events
00:01:57 #4527 [Verbose] >
00:01:57 #4528 [Verbose] > let eventMap =
00:01:57 #4529 [Verbose] > events
00:01:57 #4530 [Verbose] > |> List.map (fun (ticks, path, event) -> path, (event, ticks))
00:01:57 #4531 [Verbose] > |> List.groupBy fst
00:01:57 #4532 [Verbose] > |> List.map (fun (path, events) ->
00:01:57 #4533 [Verbose] > let event, _ticks =
00:01:57 #4534 [Verbose] > events
00:01:57 #4535 [Verbose] > |> List.map snd
00:01:57 #4536 [Verbose] > |> List.sortByDescending snd
00:01:57 #4537 [Verbose] > |> List.head
00:01:57 #4538 [Verbose] >
00:01:57 #4539 [Verbose] > path, event
00:01:57 #4540 [Verbose] > )
00:01:57 #4541 [Verbose] > |> Map.ofList
00:01:57 #4542 [Verbose] >
00:01:57 #4543 [Verbose] > let eventList =
00:01:57 #4544 [Verbose] > events
00:01:57 #4545 [Verbose] > |> List.map (fun (_ticks, path, event) -> path, event)
00:01:57 #4546 [Verbose] >
00:01:57 #4547 [Verbose] > eventMap, eventList
00:01:58 #4548 [Verbose] >
00:01:58 #4549 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:58 #4550 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:58 #4551 [Verbose] > │ #### create and delete (test) │
00:01:58 #4552 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:58 #4553 [Verbose] >
00:01:58 #4554 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:58 #4555 [Verbose] > //// test
00:01:58 #4556 [Verbose] >
00:01:58 #4557 [Verbose] > let inline write path = async {
00:01:58 #4558 [Verbose] > let n = 3
00:01:58 #4559 [Verbose] >
00:01:58 #4560 [Verbose] > for i = 1 to n do
00:01:58 #4561 [Verbose] > do! $"{i}" |> writeAllTextAsync (path </> $"file{i}.txt")
00:01:58 #4562 [Verbose] >
00:01:58 #4563 [Verbose] > for i = 1 to n do
00:01:58 #4564 [Verbose] > do! deleteFileAsync (path </> $"file{i}.txt") |> Async.Ignore
00:01:58 #4565 [Verbose] >
00:01:58 #4566 [Verbose] > do! Async.Sleep 150
00:01:58 #4567 [Verbose] > }
00:01:58 #4568 [Verbose] >
00:01:58 #4569 [Verbose] > let inline run () =
00:01:58 #4570 [Verbose] > let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false))
00:01:58 #4571 [Verbose] > write
00:01:58 #4572 [Verbose] >
00:01:58 #4573 [Verbose] > [[
00:01:58 #4574 [Verbose] > "file1.txt", nameof FileSystemChangeType.Created
00:01:58 #4575 [Verbose] > "file1.txt", nameof FileSystemChangeType.Changed
00:01:58 #4576 [Verbose] > "file1.txt", nameof FileSystemChangeType.Deleted
00:01:58 #4577 [Verbose] >
00:01:58 #4578 [Verbose] > "file2.txt", nameof FileSystemChangeType.Created
00:01:58 #4579 [Verbose] > "file2.txt", nameof FileSystemChangeType.Changed
00:01:58 #4580 [Verbose] > "file2.txt", nameof FileSystemChangeType.Deleted
00:01:58 #4581 [Verbose] >
00:01:58 #4582 [Verbose] > "file3.txt", nameof FileSystemChangeType.Created
00:01:58 #4583 [Verbose] > "file3.txt", nameof FileSystemChangeType.Changed
00:01:58 #4584 [Verbose] > "file3.txt", nameof FileSystemChangeType.Deleted
00:01:58 #4585 [Verbose] > ]]
00:01:58 #4586 [Verbose] > |> _sequenceEqual eventList
00:01:58 #4587 [Verbose] >
00:01:58 #4588 [Verbose] > [[
00:01:58 #4589 [Verbose] > "file1.txt", nameof FileSystemChangeType.Deleted
00:01:58 #4590 [Verbose] > "file2.txt", nameof FileSystemChangeType.Deleted
00:01:58 #4591 [Verbose] > "file3.txt", nameof FileSystemChangeType.Deleted
00:01:58 #4592 [Verbose] > ]]
00:01:58 #4593 [Verbose] > |> Map.ofList
00:01:58 #4594 [Verbose] > |> _sequenceEqual eventMap
00:01:58 #4595 [Verbose] >
00:01:58 #4596 [Verbose] > run
00:01:58 #4597 [Verbose] > |> retry_fn 3
00:01:58 #4598 [Verbose] > |> _assertEqual (Some ())
00:02:01 #4599 [Verbose] >
00:02:01 #4600 [Verbose] > ╭─[ 3.74s - stdout ]───────────────────────────────────────────────────────────╮
00:02:01 #4601 [Verbose] > │ FSharpOption<Unit> │
00:02:01 #4602 [Verbose] > │ Value: <null> │
00:02:01 #4603 [Verbose] > │ 00:00:33 #59 [Debug] watchWithFilter / Disposing watch stream / filter: │
00:02:01 #4604 [Verbose] > │ FileName, LastWrite │
00:02:01 #4605 [Verbose] > │ FSharpList<Tuple<String,String>> │
00:02:01 #4606 [Verbose] > │ ( file1.txt, Created ) │
00:02:01 #4607 [Verbose] > │ ( file1.txt, Changed ) │
00:02:01 #4608 [Verbose] > │ ( file1.txt, Deleted ) │
00:02:01 #4609 [Verbose] > │ ( file2.txt, Created ) │
00:02:01 #4610 [Verbose] > │ ( file2.txt, Changed ) │
00:02:01 #4611 [Verbose] > │ ( file2.txt, Deleted ) │
00:02:01 #4612 [Verbose] > │ ( file3.txt, Created ) │
00:02:01 #4613 [Verbose] > │ ( file3.txt, Changed ) │
00:02:01 #4614 [Verbose] > │ ( file3.txt, Deleted ) │
00:02:01 #4615 [Verbose] > │ FSharpMap<String,String> │
00:02:01 #4616 [Verbose] > │ - Key: file1.txt │
00:02:01 #4617 [Verbose] > │ Value: Deleted │
00:02:01 #4618 [Verbose] > │ - Key: file2.txt │
00:02:01 #4619 [Verbose] > │ Value: Deleted │
00:02:01 #4620 [Verbose] > │ - Key: file3.txt │
00:02:01 #4621 [Verbose] > │ Value: Deleted │
00:02:01 #4622 [Verbose] > │ FSharpOption<Unit> │
00:02:01 #4623 [Verbose] > │ Value: <null> │
00:02:01 #4624 [Verbose] > │ │
00:02:01 #4625 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:01 #4626 [Verbose] >
00:02:01 #4627 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:01 #4628 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:01 #4629 [Verbose] > │ #### change (test) │
00:02:01 #4630 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:01 #4631 [Verbose] >
00:02:01 #4632 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:01 #4633 [Verbose] > //// test
00:02:01 #4634 [Verbose] >
00:02:01 #4635 [Verbose] > let inline write path = async {
00:02:01 #4636 [Verbose] > let n = 2
00:02:01 #4637 [Verbose] >
00:02:01 #4638 [Verbose] > for i = 1 to n do
00:02:01 #4639 [Verbose] > do! $"{i}" |> writeAllTextAsync (path </> $"file{i}.txt")
00:02:01 #4640 [Verbose] >
00:02:01 #4641 [Verbose] > for i = 1 to n do
00:02:01 #4642 [Verbose] > do! "" |> writeAllTextAsync (path </> $"file{i}.txt")
00:02:01 #4643 [Verbose] >
00:02:01 #4644 [Verbose] > for i = 1 to n do
00:02:01 #4645 [Verbose] > do! deleteFileAsync (path </> $"file{i}.txt") |> Async.Ignore
00:02:01 #4646 [Verbose] >
00:02:01 #4647 [Verbose] > do! Async.Sleep 150
00:02:01 #4648 [Verbose] > }
00:02:01 #4649 [Verbose] >
00:02:01 #4650 [Verbose] > let inline run () =
00:02:01 #4651 [Verbose] > let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false))
00:02:01 #4652 [Verbose] > write
00:02:01 #4653 [Verbose] >
00:02:01 #4654 [Verbose] > [[
00:02:01 #4655 [Verbose] > "file1.txt", nameof FileSystemChangeType.Created
00:02:01 #4656 [Verbose] > "file1.txt", nameof FileSystemChangeType.Changed
00:02:01 #4657 [Verbose] > "file1.txt", nameof FileSystemChangeType.Deleted
00:02:01 #4658 [Verbose] >
00:02:01 #4659 [Verbose] > "file2.txt", nameof FileSystemChangeType.Created
00:02:01 #4660 [Verbose] > "file2.txt", nameof FileSystemChangeType.Changed
00:02:01 #4661 [Verbose] > "file2.txt", nameof FileSystemChangeType.Deleted
00:02:01 #4662 [Verbose] > ]]
00:02:01 #4663 [Verbose] > |> _sequenceEqual eventList
00:02:01 #4664 [Verbose] >
00:02:01 #4665 [Verbose] > [[
00:02:01 #4666 [Verbose] > "file1.txt", nameof FileSystemChangeType.Deleted
00:02:01 #4667 [Verbose] > "file2.txt", nameof FileSystemChangeType.Deleted
00:02:01 #4668 [Verbose] > ]]
00:02:01 #4669 [Verbose] > |> Map.ofList
00:02:01 #4670 [Verbose] > |> _sequenceEqual eventMap
00:02:01 #4671 [Verbose] >
00:02:01 #4672 [Verbose] > run
00:02:01 #4673 [Verbose] > |> retry_fn 3
00:02:01 #4674 [Verbose] > |> _assertEqual (Some ())
00:02:05 #4675 [Verbose] >
00:02:05 #4676 [Verbose] > ╭─[ 4.10s - stdout ]───────────────────────────────────────────────────────────╮
00:02:05 #4677 [Verbose] > │ FSharpOption<Unit> │
00:02:05 #4678 [Verbose] > │ Value: <null> │
00:02:05 #4679 [Verbose] > │ 00:00:37 #60 [Debug] watchWithFilter / Disposing watch stream / filter: │
00:02:05 #4680 [Verbose] > │ FileName, LastWrite │
00:02:05 #4681 [Verbose] > │ FSharpList<Tuple<String,String>> │
00:02:05 #4682 [Verbose] > │ ( file1.txt, Created ) │
00:02:05 #4683 [Verbose] > │ ( file1.txt, Changed ) │
00:02:05 #4684 [Verbose] > │ ( file1.txt, Deleted ) │
00:02:05 #4685 [Verbose] > │ ( file2.txt, Created ) │
00:02:05 #4686 [Verbose] > │ ( file2.txt, Changed ) │
00:02:05 #4687 [Verbose] > │ ( file2.txt, Deleted ) │
00:02:05 #4688 [Verbose] > │ FSharpMap<String,String> │
00:02:05 #4689 [Verbose] > │ - Key: file1.txt │
00:02:05 #4690 [Verbose] > │ Value: Deleted │
00:02:05 #4691 [Verbose] > │ - Key: file2.txt │
00:02:05 #4692 [Verbose] > │ Value: Deleted │
00:02:05 #4693 [Verbose] > │ FSharpOption<Unit> │
00:02:05 #4694 [Verbose] > │ Value: <null> │
00:02:05 #4695 [Verbose] > │ │
00:02:05 #4696 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:05 #4697 [Verbose] >
00:02:05 #4698 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:05 #4699 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:05 #4700 [Verbose] > │ #### rename (test) │
00:02:05 #4701 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:05 #4702 [Verbose] >
00:02:05 #4703 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:05 #4704 [Verbose] > //// test
00:02:05 #4705 [Verbose] >
00:02:05 #4706 [Verbose] > let inline write path = async {
00:02:05 #4707 [Verbose] > let n = 2
00:02:05 #4708 [Verbose] >
00:02:05 #4709 [Verbose] > for i = 1 to n do
00:02:05 #4710 [Verbose] > do! $"{i}" |> writeAllTextAsync (path </> $"file{i}.txt")
00:02:05 #4711 [Verbose] >
00:02:05 #4712 [Verbose] > for i = 1 to n do
00:02:05 #4713 [Verbose] > do! path </> $"file{i}.txt" |> moveFileAsync (path </> $"file_{i}.txt")
00:02:05 #4714 [Verbose] > |> Async.Ignore
00:02:05 #4715 [Verbose] >
00:02:05 #4716 [Verbose] > for i = 1 to n do
00:02:05 #4717 [Verbose] > do! deleteFileAsync (path </> $"file_{i}.txt") |> Async.Ignore
00:02:05 #4718 [Verbose] >
00:02:05 #4719 [Verbose] > do! Async.Sleep 150
00:02:05 #4720 [Verbose] > }
00:02:05 #4721 [Verbose] >
00:02:05 #4722 [Verbose] > let inline run () =
00:02:05 #4723 [Verbose] > let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false))
00:02:05 #4724 [Verbose] > write
00:02:05 #4725 [Verbose] >
00:02:05 #4726 [Verbose] > [[
00:02:05 #4727 [Verbose] > "file1.txt", nameof FileSystemChangeType.Created
00:02:05 #4728 [Verbose] > "file1.txt", nameof FileSystemChangeType.Changed
00:02:05 #4729 [Verbose] > "file2.txt", nameof FileSystemChangeType.Created
00:02:05 #4730 [Verbose] > "file2.txt", nameof FileSystemChangeType.Changed
00:02:05 #4731 [Verbose] >
00:02:05 #4732 [Verbose] > "file_1.txt", nameof FileSystemChangeType.Renamed
00:02:05 #4733 [Verbose] > "file_1.txt", nameof FileSystemChangeType.Deleted
00:02:05 #4734 [Verbose] >
00:02:05 #4735 [Verbose] > "file_2.txt", nameof FileSystemChangeType.Renamed
00:02:05 #4736 [Verbose] > "file_2.txt", nameof FileSystemChangeType.Deleted
00:02:05 #4737 [Verbose] > ]]
00:02:05 #4738 [Verbose] > |> _sequenceEqual eventList
00:02:05 #4739 [Verbose] >
00:02:05 #4740 [Verbose] > [[
00:02:05 #4741 [Verbose] > "file1.txt", nameof FileSystemChangeType.Changed
00:02:05 #4742 [Verbose] > "file2.txt", nameof FileSystemChangeType.Changed
00:02:05 #4743 [Verbose] > "file_1.txt", nameof FileSystemChangeType.Deleted
00:02:05 #4744 [Verbose] > "file_2.txt", nameof FileSystemChangeType.Deleted
00:02:05 #4745 [Verbose] > ]]
00:02:05 #4746 [Verbose] > |> Map.ofList
00:02:05 #4747 [Verbose] > |> _sequenceEqual eventMap
00:02:05 #4748 [Verbose] >
00:02:05 #4749 [Verbose] > run
00:02:05 #4750 [Verbose] > |> retry_fn 3
00:02:05 #4751 [Verbose] > |> _assertEqual (Some ())
00:02:10 #4752 [Verbose] >
00:02:10 #4753 [Verbose] > ╭─[ 4.21s - stdout ]───────────────────────────────────────────────────────────╮
00:02:10 #4754 [Verbose] > │ FSharpOption<Unit> │
00:02:10 #4755 [Verbose] > │ Value: <null> │
00:02:10 #4756 [Verbose] > │ 00:00:41 #61 [Debug] watchWithFilter / Disposing watch stream / filter: │
00:02:10 #4757 [Verbose] > │ FileName, LastWrite │
00:02:10 #4758 [Verbose] > │ FSharpList<Tuple<String,String>> │
00:02:10 #4759 [Verbose] > │ ( file1.txt, Created ) │
00:02:10 #4760 [Verbose] > │ ( file1.txt, Changed ) │
00:02:10 #4761 [Verbose] > │ ( file2.txt, Created ) │
00:02:10 #4762 [Verbose] > │ ( file2.txt, Changed ) │
00:02:10 #4763 [Verbose] > │ ( file_1.txt, Renamed ) │
00:02:10 #4764 [Verbose] > │ ( file_1.txt, Deleted ) │
00:02:10 #4765 [Verbose] > │ ( file_2.txt, Renamed ) │
00:02:10 #4766 [Verbose] > │ ( file_2.txt, Deleted ) │
00:02:10 #4767 [Verbose] > │ FSharpMap<String,String> │
00:02:10 #4768 [Verbose] > │ - Key: file1.txt │
00:02:10 #4769 [Verbose] > │ Value: Changed │
00:02:10 #4770 [Verbose] > │ - Key: file2.txt │
00:02:10 #4771 [Verbose] > │ Value: Changed │
00:02:10 #4772 [Verbose] > │ - Key: file_1.txt │
00:02:10 #4773 [Verbose] > │ Value: Deleted │
00:02:10 #4774 [Verbose] > │ - Key: file_2.txt │
00:02:10 #4775 [Verbose] > │ Value: Deleted │
00:02:10 #4776 [Verbose] > │ FSharpOption<Unit> │
00:02:10 #4777 [Verbose] > │ Value: <null> │
00:02:10 #4778 [Verbose] > │ │
00:02:10 #4779 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:10 #4780 [Verbose] >
00:02:10 #4781 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:10 #4782 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:10 #4783 [Verbose] > │ #### full (test) │
00:02:10 #4784 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:10 #4785 [Verbose] >
00:02:10 #4786 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:10 #4787 [Verbose] > //// test
00:02:10 #4788 [Verbose] >
00:02:10 #4789 [Verbose] > let inline write path = async {
00:02:10 #4790 [Verbose] > let n = 2
00:02:10 #4791 [Verbose] >
00:02:10 #4792 [Verbose] > for i = 1 to n do
00:02:10 #4793 [Verbose] > do! $"{i}" |> writeAllTextAsync (path </> $"file{i}.txt")
00:02:10 #4794 [Verbose] >
00:02:10 #4795 [Verbose] > for i = 1 to n do
00:02:10 #4796 [Verbose] > do! "" |> writeAllTextAsync (path </> $"file{i}.txt")
00:02:10 #4797 [Verbose] >
00:02:10 #4798 [Verbose] > for i = 1 to n do
00:02:10 #4799 [Verbose] > do! path </> $"file{i}.txt" |> moveFileAsync (path </> $"file_{i}.txt")
00:02:10 #4800 [Verbose] > |> Async.Ignore
00:02:10 #4801 [Verbose] >
00:02:10 #4802 [Verbose] > for i = 1 to n do
00:02:10 #4803 [Verbose] > do! $"{i}" |> writeAllTextAsync (path </> $"file_{i}.txt")
00:02:10 #4804 [Verbose] >
00:02:10 #4805 [Verbose] > for i = 1 to n do
00:02:10 #4806 [Verbose] > do! deleteFileAsync (path </> $"file_{i}.txt") |> Async.Ignore
00:02:10 #4807 [Verbose] >
00:02:10 #4808 [Verbose] > do! Async.Sleep 150
00:02:10 #4809 [Verbose] > }
00:02:10 #4810 [Verbose] >
00:02:10 #4811 [Verbose] > let inline run () =
00:02:10 #4812 [Verbose] > let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false))
00:02:10 #4813 [Verbose] > write
00:02:10 #4814 [Verbose] >
00:02:10 #4815 [Verbose] > [[
00:02:10 #4816 [Verbose] > "file1.txt", nameof FileSystemChangeType.Created
00:02:10 #4817 [Verbose] > "file1.txt", nameof FileSystemChangeType.Changed
00:02:10 #4818 [Verbose] > "file2.txt", nameof FileSystemChangeType.Created
00:02:10 #4819 [Verbose] > "file2.txt", nameof FileSystemChangeType.Changed
00:02:10 #4820 [Verbose] >
00:02:10 #4821 [Verbose] > "file_1.txt", nameof FileSystemChangeType.Changed
00:02:10 #4822 [Verbose] > "file_1.txt", nameof FileSystemChangeType.Renamed
00:02:10 #4823 [Verbose] > "file_1.txt", nameof FileSystemChangeType.Deleted
00:02:10 #4824 [Verbose] >
00:02:10 #4825 [Verbose] > "file_2.txt", nameof FileSystemChangeType.Changed
00:02:10 #4826 [Verbose] > "file_2.txt", nameof FileSystemChangeType.Renamed
00:02:10 #4827 [Verbose] > "file_2.txt", nameof FileSystemChangeType.Deleted
00:02:10 #4828 [Verbose] > ]]
00:02:10 #4829 [Verbose] > |> _sequenceEqual eventList
00:02:10 #4830 [Verbose] >
00:02:10 #4831 [Verbose] > [[
00:02:10 #4832 [Verbose] > "file1.txt", nameof FileSystemChangeType.Changed
00:02:10 #4833 [Verbose] > "file2.txt", nameof FileSystemChangeType.Changed
00:02:10 #4834 [Verbose] > "file_1.txt", nameof FileSystemChangeType.Deleted
00:02:10 #4835 [Verbose] > "file_2.txt", nameof FileSystemChangeType.Deleted
00:02:10 #4836 [Verbose] > ]]
00:02:10 #4837 [Verbose] > |> Map.ofList
00:02:10 #4838 [Verbose] > |> _sequenceEqual eventMap
00:02:10 #4839 [Verbose] >
00:02:10 #4840 [Verbose] > run
00:02:10 #4841 [Verbose] > |> retry_fn 3
00:02:10 #4842 [Verbose] > |> _assertEqual (Some ())
00:02:15 #4843 [Verbose] >
00:02:15 #4844 [Verbose] > ╭─[ 5.00s - stdout ]───────────────────────────────────────────────────────────╮
00:02:15 #4845 [Verbose] > │ FSharpOption<Unit> │
00:02:15 #4846 [Verbose] > │ Value: <null> │
00:02:15 #4847 [Verbose] > │ 00:00:46 #62 [Debug] watchWithFilter / Disposing watch stream / filter: │
00:02:15 #4848 [Verbose] > │ FileName, LastWrite │
00:02:15 #4849 [Verbose] > │ FSharpList<Tuple<String,String>> │
00:02:15 #4850 [Verbose] > │ ( file1.txt, Created ) │
00:02:15 #4851 [Verbose] > │ ( file1.txt, Changed ) │
00:02:15 #4852 [Verbose] > │ ( file2.txt, Created ) │
00:02:15 #4853 [Verbose] > │ ( file2.txt, Changed ) │
00:02:15 #4854 [Verbose] > │ ( file_1.txt, Changed ) │
00:02:15 #4855 [Verbose] > │ ( file_1.txt, Renamed ) │
00:02:15 #4856 [Verbose] > │ ( file_1.txt, Deleted ) │
00:02:15 #4857 [Verbose] > │ ( file_2.txt, Changed ) │
00:02:15 #4858 [Verbose] > │ ( file_2.txt, Renamed ) │
00:02:15 #4859 [Verbose] > │ ( file_2.txt, Deleted ) │
00:02:15 #4860 [Verbose] > │ FSharpMap<String,String> │
00:02:15 #4861 [Verbose] > │ - Key: file1.txt │
00:02:15 #4862 [Verbose] > │ Value: Changed │
00:02:15 #4863 [Verbose] > │ - Key: file2.txt │
00:02:15 #4864 [Verbose] > │ Value: Changed │
00:02:15 #4865 [Verbose] > │ - Key: file_1.txt │
00:02:15 #4866 [Verbose] > │ Value: Deleted │
00:02:15 #4867 [Verbose] > │ - Key: file_2.txt │
00:02:15 #4868 [Verbose] > │ Value: Deleted │
00:02:15 #4869 [Verbose] > │ FSharpOption<Unit> │
00:02:15 #4870 [Verbose] > │ Value: <null> │
00:02:15 #4871 [Verbose] > │ │
00:02:15 #4872 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:16 #4873 [Verbose] > [NbConvertApp] Converting notebook FileSystem.dib.ipynb to html
00:02:16 #4874 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:02:16 #4875 [Verbose] > validate(nb)
00:02:17 #4876 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:02:17 #4877 [Verbose] > return _pygments_highlight(
00:02:18 #4878 [Verbose] > [NbConvertApp] Writing 466191 bytes to FileSystem.dib.html
00:02:18 #4879 [Debug] executeAsync / exitCode: 0 / output.Length: 93240
00:02:18 #4880 [Debug] main / executeCommand / exitCode: 0
00:02:18 #4881 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 Networking.dib -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:02:21 #4882 [Verbose] >
00:02:21 #4883 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:21 #4884 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:21 #4885 [Verbose] > │ # Networking (Polyglot) │
00:02:21 #4886 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:21 #4887 [Verbose] >
00:02:21 #4888 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:21 #4889 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib
00:02:21 #4890 [Verbose] > #!import ../../lib/fsharp/Testing.dib
00:02:21 #4891 [Verbose] >
00:02:21 #4892 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:21 #4893 [Verbose] > #r
00:02:21 #4894 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
00:02:21 #4895 [Verbose] > spNetCore.Html.Abstractions.dll"
00:02:21 #4896 [Verbose] > #r
00:02:21 #4897 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:02:21 #4898 [Verbose] > otNet.Interactive.dll"
00:02:21 #4899 [Verbose] > #r
00:02:21 #4900 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:02:21 #4901 [Verbose] > otNet.Interactive.FSharp.dll"
00:02:21 #4902 [Verbose] > #r
00:02:21 #4903 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:02:21 #4904 [Verbose] > otNet.Interactive.Formatting.dll"
00:02:21 #4905 [Verbose] > open System
00:02:21 #4906 [Verbose] > open System.IO
00:02:21 #4907 [Verbose] > open System.Text
00:02:21 #4908 [Verbose] > open Microsoft.DotNet.Interactive.Formatting
00:02:24 #4909 [Verbose] >
00:02:24 #4910 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:24 #4911 [Verbose] > #r
00:02:24 #4912 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:02:24 #4913 [Verbose] > otNet.Interactive.FSharp.dll"
00:02:24 #4914 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
00:02:24 #4915 [Verbose] > #r
00:02:24 #4916 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:02:24 #4917 [Verbose] > otNet.Interactive.dll"
00:02:24 #4918 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel
00:02:24 #4919 [Verbose] >
00:02:24 #4920 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:24 #4921 [Verbose] > //// test
00:02:24 #4922 [Verbose] >
00:02:24 #4923 [Verbose] > Formatter.ListExpansionLimit <- 100
00:02:25 #4924 [Verbose] >
00:02:25 #4925 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:25 #4926 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
00:02:25 #4927 [Verbose] >
00:02:25 #4928 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:25 #4929 [Verbose] > //// test
00:02:25 #4930 [Verbose] >
00:02:25 #4931 [Verbose] > type AssertExceptionFormatter (ex) =
00:02:25 #4932 [Verbose] > member _.Text =
00:02:25 #4933 [Verbose] > ex.ToString()
00:02:25 #4934 [Verbose] > .Replace("32m", "<span style=\"color: green;\">")
00:02:25 #4935 [Verbose] > .Replace("36m", "</span>")
00:02:25 #4936 [Verbose] > .Replace("31m", "<span style=\"color: red;\">")
00:02:25 #4937 [Verbose] > .Replace("\n", "<br/>\n")
00:02:25 #4938 [Verbose] >
00:02:25 #4939 [Verbose] >
00:02:25 #4940 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :
00:02:25 #4941 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")
00:02:25 #4942 [Verbose] >
00:02:25 #4943 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:25 #4944 [Verbose] > //// test
00:02:25 #4945 [Verbose] >
00:02:25 #4946 [Verbose] > let inline __expect fn log expected actual =
00:02:25 #4947 [Verbose] > if log then printfn $"{actual.ToDisplayString ()}"
00:02:25 #4948 [Verbose] > try
00:02:25 #4949 [Verbose] > "Testing.__expect" |> fn actual expected
00:02:25 #4950 [Verbose] > with :? Expecto.AssertException as ex ->
00:02:25 #4951 [Verbose] > AssertExceptionFormatter(ex).Display () |> ignore
00:02:25 #4952 [Verbose] > failwith (ex.GetType().FullName)
00:02:25 #4953 [Verbose] >
00:02:25 #4954 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log
00:02:25 #4955 [Verbose] > expected actual
00:02:25 #4956 [Verbose] > let inline _contains expected actual = __contains true expected actual
00:02:25 #4957 [Verbose] >
00:02:25 #4958 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
00:02:25 #4959 [Verbose] > expected actual
00:02:25 #4960 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual
00:02:25 #4961 [Verbose] >
00:02:25 #4962 [Verbose] > let inline __isGreaterThan log expected actual = __expect
00:02:25 #4963 [Verbose] > Expecto.Expect.isGreaterThan log ex...
00:02:26 #4964 [Verbose] >
00:02:26 #4965 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:26 #4966 [Verbose] > //// test
00:02:26 #4967 [Verbose] >
00:02:26 #4968 [Verbose] > let inline __isBetween log a b actual =
00:02:26 #4969 [Verbose] > let inline isBetween actual (a, b) _ =
00:02:26 #4970 [Verbose] > __isGreaterThanOrEqual log a actual
00:02:26 #4971 [Verbose] > __isLessThanOrEqual log b actual
00:02:26 #4972 [Verbose] > __expect isBetween log (a, b) actual
00:02:26 #4973 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual
00:02:26 #4974 [Verbose] >
00:02:26 #4975 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:26 #4976 [Verbose] > #r
00:02:26 #4977 [Verbose] > @"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
00:02:26 #4978 [Verbose] > #r
00:02:26 #4979 [Verbose] > @"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
00:02:26 #4980 [Verbose] > b/net6.0/System.CommandLine.dll"
00:02:26 #4981 [Verbose] >
00:02:26 #4982 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:26 #4983 [Verbose] > #!import ../../lib/spiral/common.fsx
00:02:26 #4984 [Verbose] > #!import ../../lib/spiral/sm.fsx
00:02:26 #4985 [Verbose] > #!import ../../lib/spiral/date_time.fsx
00:02:26 #4986 [Verbose] > #!import ../../lib/spiral/file_system.fsx
00:02:26 #4987 [Verbose] > #!import ../../lib/spiral/lib.fsx
00:02:26 #4988 [Verbose] > #!import ../../lib/fsharp/Common.fs
00:02:26 #4989 [Verbose] > #!import ../../lib/fsharp/CommonFSharp.fs
00:02:26 #4990 [Verbose] > #!import ../../lib/fsharp/Async.fs
00:02:26 #4991 [Verbose] > #!import ../../lib/fsharp/Runtime.fs
00:02:26 #4992 [Verbose] >
00:02:26 #4993 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:26 #4994 [Verbose] > type [[<Struct>]] US0 =
00:02:26 #4995 [Verbose] > | US0_0
00:02:26 #4996 [Verbose] > | US0_1
00:02:26 #4997 [Verbose] > and [[<Struct>]] US1 =
00:02:26 #4998 [Verbose] > | US1_0
00:02:26 #4999 [Verbose] > | US1_1 of f1_0 : US0
00:02:26 #5000 [Verbose] > let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
00:02:26 #5001 [Verbose] > v0
00:02:26 #5002 [Verbose] > and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
00:02:26 #5003 [Verbose] > let mutable result = None
00:02:26 #5004 [Verbose] > #if FABLE_COMPILER_RUST && !WASM
00:02:26 #5005 [Verbose] > let v1 : (unit -> unit) = method0(v0)
00:02:26 #5006 [Verbose] > let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
00:02:26 #5007 [Verbose] > () = Fable.Core.RustInterop.emitRustExpr () "v1()" }
00:02:26 #5008 [Verbose] > v2
00:02:26 #5009 [Verbose] > #endif
00:02:26 #5010 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:02:26 #5011 [Verbose] > let v3 : (unit -> unit) = method0(v0)
00:02:26 #5012 [Verbose] > let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
00:02:26 #5013 [Verbose] > () = Fable.Core.RustInterop.emitRustExpr () "v3()" }
00:02:26 #5014 [Verbose] > v4
00:02:26 #5015 [Verbose] > #endif
00:02:26 #5016 [Verbose] > #if !FABLE_COMPILER && !F...
00:02:26 #5017 [Verbose] >
00:02:26 #5018 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:26 #5019 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}
00:02:26 #5020 [Verbose] > and Mut1 = {mutable l0 : int32}
00:02:26 #5021 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =
00:02:26 #5022 [Verbose] > let v2 : bool = v1.Contains v0
00:02:26 #5023 [Verbose] > v2
00:02:26 #5024 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =
00:02:26 #5025 [Verbose] > closure1(v0)
00:02:26 #5026 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =
00:02:26 #5027 [Verbose] > let v2 : bool = v1.EndsWith v0
00:02:26 #5028 [Verbose] > v2
00:02:26 #5029 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =
00:02:26 #5030 [Verbose] > closure3(v0)
00:02:26 #5031 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
00:02:26 #5032 [Verbose] > let v3 : string = v2.PadLeft (v0, v1)
00:02:26 #5033 [Verbose] > v3
00:02:26 #5034 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =
00:02:26 #5035 [Verbose] > closure6(v0, v1)
00:02:26 #5036 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =
00:02:26 #5037 [Verbose] > closure5(v0)
00:02:26 #5038 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =
00:02:26 #5039 [Verbose] > let v2 : stri...
00:02:27 #5040 [Verbose] >
00:02:27 #5041 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:27 #5042 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
00:02:27 #5043 [Verbose] > let v2 : (System.Guid -> string) = _.ToString()
00:02:27 #5044 [Verbose] > let v3 : string = v2 v0
00:02:27 #5045 [Verbose] > let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
00:02:27 #5046 [Verbose] > let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
00:02:27 #5047 [Verbose] > v5
00:02:27 #5048 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
00:02:27 #5049 [Verbose] > closure1(v0)
00:02:27 #5050 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =
00:02:27 #5051 [Verbose] > let v3 : string = v2.Replace (v0, v1)
00:02:27 #5052 [Verbose] > v3
00:02:27 #5053 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =
00:02:27 #5054 [Verbose] > closure5(v0, v1)
00:02:27 #5055 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =
00:02:27 #5056 [Verbose] > closure4(v0)
00:02:27 #5057 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =
00:02:27 #5058 [Verbose] > closure3()
00:02:27 #5059 [Verbose] > and closure2 (...
00:02:27 #5060 [Verbose] >
00:02:27 #5061 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:27 #5062 [Verbose] > type [[<Struct>]] US0 =
00:02:27 #5063 [Verbose] > | US0_0
00:02:27 #5064 [Verbose] > | US0_1
00:02:27 #5065 [Verbose] > | US0_2
00:02:27 #5066 [Verbose] > and [[<Struct>]] US1 =
00:02:27 #5067 [Verbose] > | US1_0 of f0_0 : US0
00:02:27 #5068 [Verbose] > | US1_1 of f1_0 : US0
00:02:27 #5069 [Verbose] > let rec closure0 () () : string =
00:02:27 #5070 [Verbose] > let mutable result = None
00:02:27 #5071 [Verbose] > #if FABLE_COMPILER_RUST && !WASM
00:02:27 #5072 [Verbose] > let v0 : US0 = US0_1
00:02:27 #5073 [Verbose] > let v1 : US1 = US1_1(v0)
00:02:27 #5074 [Verbose] > let v2 : string = $"create_temp_directory_name target: {v1}"
00:02:27 #5075 [Verbose] > let v3 : string = failwith<string> v2
00:02:27 #5076 [Verbose] > v3
00:02:27 #5077 [Verbose] > #endif
00:02:27 #5078 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:02:27 #5079 [Verbose] > let v4 : US0 = US0_2
00:02:27 #5080 [Verbose] > let v5 : US1 = US1_1(v4)
00:02:27 #5081 [Verbose] > let v6 : string = $"create_temp_directory_name target: {v5}"
00:02:27 #5082 [Verbose] > let v7 : string = failwith<string> v6
00:02:27 #5083 [Verbose] > v7
00:02:27 #5084 [Verbose] > #endif
00:02:27 #5085 [Verbose] > #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM
00:02:27 #5086 [Verbose] > let v8 : string = System.Reflection.Assembly.GetEntryAssembly()...
00:02:27 #5087 [Verbose] >
00:02:27 #5088 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:27 #5089 [Verbose] > #if !WASM && !FABLE_COMPILER
00:02:27 #5090 [Verbose] > module Date_time =
00:02:27 #5091 [Verbose] > let new_guid_from_date_time x =
00:02:27 #5092 [Verbose] > #if !INTERACTIVE
00:02:27 #5093 [Verbose] > Date_time.new_guid_from_date_time x
00:02:27 #5094 [Verbose] > #else
00:02:27 #5095 [Verbose] > new_guid_from_date_time x
00:02:27 #5096 [Verbose] > #endif
00:02:27 #5097 [Verbose] > #endif
00:02:27 #5098 [Verbose] >
00:02:27 #5099 [Verbose] > module Sm =
00:02:27 #5100 [Verbose] > let concat x =
00:02:27 #5101 [Verbose] > #if !INTERACTIVE
00:02:27 #5102 [Verbose] > Sm.concat x
00:02:27 #5103 [Verbose] > #else
00:02:27 #5104 [Verbose] > concat x
00:02:27 #5105 [Verbose] > #endif
00:02:27 #5106 [Verbose] >
00:02:27 #5107 [Verbose] > let contains x =
00:02:27 #5108 [Verbose] > #if !INTERACTIVE
00:02:27 #5109 [Verbose] > Sm.contains x
00:02:27 #5110 [Verbose] > #else
00:02:27 #5111 [Verbose] > contains x
00:02:27 #5112 [Verbose] > #endif
00:02:27 #5113 [Verbose] >
00:02:27 #5114 [Verbose] > let ellipsis x =
00:02:27 #5115 [Verbose] > #if !INTERACTIVE
00:02:27 #5116 [Verbose] > Sm.ellipsis x
00:02:27 #5117 [Verbose] > #else
00:02:27 #5118 [Verbose] > ellipsis x
00:02:27 #5119 [Verbose] > #endif
00:02:27 #5120 [Verbose] >
00:02:27 #5121 [Verbose] > let ellipsis_end x =
00:02:27 #5122 [Verbose] > #if !INTERACTIVE
00:02:27 #5123 [Verbose] > Sm.ellipsis_end x
00:02:27 #5124 [Verbose] > #else
00:02:27 #5125 [Verbose] > ellipsis_end x
00:02:27 #5126 [Verbose] > #endif
00:02:27 #5127 [Verbose] >
00:02:27 #5128 [Verbose] > let ends_with x =
00:02:27 #5129 [Verbose] > #if !INTERACTIVE
00:02:27 #5130 [Verbose] > Sm.ends_with x
00:02:27 #5131 [Verbose] > #else
00:02:27 #5132 [Verbose] > ends_with x
00:02:27 #5133 [Verbose] > #endif
00:02:27 #5134 [Verbose] >
00:02:27 #5135 [Verbose] > let format_exception x =
00:02:27 #5136 [Verbose] > #if !INTERACTIVE
00:02:27 #5137 [Verbose] > Sm.format_...
00:02:27 #5138 [Verbose] >
00:02:27 #5139 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:27 #5140 [Verbose] > #if !INTERACTIVE
00:02:27 #5141 [Verbose] > namespace Polyglot
00:02:27 #5142 [Verbose] > #endif
00:02:27 #5143 [Verbose] >
00:02:27 #5144 [Verbose] > module Common =
00:02:27 #5145 [Verbose] >
00:02:27 #5146 [Verbose] > #if !INTERACTIVE
00:02:27 #5147 [Verbose] > open Lib
00:02:27 #5148 [Verbose] > #endif
00:02:27 #5149 [Verbose] >
00:02:27 #5150 [Verbose] > let nl = System.Environment.NewLine
00:02:27 #5151 [Verbose] > let q = @""""
00:02:27 #5152 [Verbose] >
00:02:27 #5153 [Verbose] > let inline cons head tail = head :: tail
00:02:27 #5154 [Verbose] >
00:02:27 #5155 [Verbose] > /// ## memoize
00:02:27 #5156 [Verbose] >
00:02:27 #5157 [Verbose] > let inline memoize fn =
00:02:27 #5158 [Verbose] > let result = lazy fn ()
00:02:27 #5159 [Verbose] > fun () -> result.Value
00:02:27 #5160 [Verbose] >
00:02:27 #5161 [Verbose] > /// ## TraceLevel
00:02:27 #5162 [Verbose] >
00:02:27 #5163 [Verbose] > type TraceLevel =
00:02:27 #5164 [Verbose] > | Verbose
00:02:27 #5165 [Verbose] > | Debug
00:02:27 #5166 [Verbose] > | Info
00:02:27 #5167 [Verbose] > | Warning
00:02:27 #5168 [Verbose] > | Critical
00:02:27 #5169 [Verbose] >
00:02:27 #5170 [Verbose] > let inline getLocals () = ""
00:02:27 #5171 [Verbose] >
00:02:27 #5172 [Verbose] > let mutable traceEnabled = true
00:02:27 #5173 [Verbose] > let mutable traceCount = 0
00:02:27 #5174 [Verbose] > let mutable traceLevel = Verbose
00:02:27 #5175 [Verbose] > let mutable traceDump = false
00:02:27 #5176 [Verbose] >
00:02:27 #5177 [Verbose] > let testTraceLevel level =
00:02:27 #5178 [Verbose] > traceEnabled && level >= traceLevel
00:02:27 #5179 [Verbose] >
00:02:27 #5180 [Verbose] > /// ## traceRaw
00:02:27 #5181 [Verbose] >
00:02:27 #5182 [Verbose] > let rec traceRaw level fn =
00:02:27 #5183 [Verbose] > ...
00:02:27 #5184 [Verbose] >
00:02:27 #5185 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:27 #5186 [Verbose] > #if !INTERACTIVE
00:02:27 #5187 [Verbose] > namespace Polyglot
00:02:27 #5188 [Verbose] > #endif
00:02:27 #5189 [Verbose] >
00:02:27 #5190 [Verbose] > module CommonFSharp =
00:02:27 #5191 [Verbose] >
00:02:27 #5192 [Verbose] > open Common
00:02:27 #5193 [Verbose] >
00:02:27 #5194 [Verbose] > /// ## getUnionCaseName
00:02:27 #5195 [Verbose] >
00:02:27 #5196 [Verbose] > let inline getUnionCaseName<'T> (x: 'T) =
00:02:27 #5197 [Verbose] > match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
00:02:27 #5198 [Verbose] > | case, _ -> case.Name
00:02:27 #5199 [Verbose] >
00:02:27 #5200 [Verbose] >
00:02:27 #5201 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:27 #5202 [Verbose] > #if !INTERACTIVE
00:02:27 #5203 [Verbose] > namespace Polyglot
00:02:27 #5204 [Verbose] > #endif
00:02:27 #5205 [Verbose] >
00:02:27 #5206 [Verbose] > module Async =
00:02:27 #5207 [Verbose] >
00:02:27 #5208 [Verbose] > #if !INTERACTIVE
00:02:27 #5209 [Verbose] > open Lib
00:02:27 #5210 [Verbose] > #endif
00:02:27 #5211 [Verbose] >
00:02:27 #5212 [Verbose] > open Common
00:02:27 #5213 [Verbose] >
00:02:27 #5214 [Verbose] > /// ## choice
00:02:27 #5215 [Verbose] >
00:02:27 #5216 [Verbose] > let inline choice asyncs = async {
00:02:27 #5217 [Verbose] > let e = Event<_> ()
00:02:27 #5218 [Verbose] > use cts = new System.Threading.CancellationTokenSource ()
00:02:27 #5219 [Verbose] > let fn =
00:02:27 #5220 [Verbose] > asyncs
00:02:27 #5221 [Verbose] > |> Seq.map (fun a -> async {
00:02:27 #5222 [Verbose] > let! x = a
00:02:27 #5223 [Verbose] > e.Trigger x
00:02:27 #5224 [Verbose] > })
00:02:27 #5225 [Verbose] > |> Async.Parallel
00:02:27 #5226 [Verbose] > |> Async.Ignore
00:02:27 #5227 [Verbose] > Async.Start (fn, cts.Token)
00:02:27 #5228 [Verbose] > let! result = Async.AwaitEvent e.Publish
00:02:27 #5229 [Verbose] > cts.Cancel ()
00:02:27 #5230 [Verbose] > return result
00:02:27 #5231 [Verbose] > }
00:02:27 #5232 [Verbose] >
00:02:27 #5233 [Verbose] > /// ## map
00:02:27 #5234 [Verbose] >
00:02:27 #5235 [Verbose] > let inline map fn a = async {
00:02:27 #5236 [Verbose] > let! x = a
00:02:27 #5237 [Verbose] > return fn x
00:02:27 #5238 [Verbose] > }
00:02:27 #5239 [Verbose] >
00:02:27 #5240 [Verbose] > /// ## catch
00:02:27 #5241 [Verbose] >
00:02:27 #5242 [Verbose] > let inline catch a =
00:02:27 #5243 [Verbose] > ...
00:02:28 #5244 [Verbose] >
00:02:28 #5245 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:28 #5246 [Verbose] > #if !INTERACTIVE
00:02:28 #5247 [Verbose] > namespace Polyglot
00:02:28 #5248 [Verbose] > #endif
00:02:28 #5249 [Verbose] >
00:02:28 #5250 [Verbose] > module Runtime =
00:02:28 #5251 [Verbose] >
00:02:28 #5252 [Verbose] > #if !INTERACTIVE
00:02:28 #5253 [Verbose] > open Lib
00:02:28 #5254 [Verbose] > #endif
00:02:28 #5255 [Verbose] >
00:02:28 #5256 [Verbose] > open Common
00:02:28 #5257 [Verbose] >
00:02:28 #5258 [Verbose] > /// ## isWindows
00:02:28 #5259 [Verbose] >
00:02:28 #5260 [Verbose] > let isWindows =
00:02:28 #5261 [Verbose] > fun () ->
00:02:28 #5262 [Verbose] > System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
00:02:28 #5263 [Verbose] > System.Runtime.InteropServices.OSPlatform.Windows
00:02:28 #5264 [Verbose] > |> memoize
00:02:28 #5265 [Verbose] >
00:02:28 #5266 [Verbose] > /// ## getExecutableSuffix
00:02:28 #5267 [Verbose] >
00:02:28 #5268 [Verbose] > let inline getExecutableSuffix () =
00:02:28 #5269 [Verbose] > if isWindows ()
00:02:28 #5270 [Verbose] > then ".exe"
00:02:28 #5271 [Verbose] > else ""
00:02:28 #5272 [Verbose] >
00:02:28 #5273 [Verbose] > /// ## splitCommand
00:02:28 #5274 [Verbose] >
00:02:28 #5275 [Verbose] > type private CommandParseStep =
00:02:28 #5276 [Verbose] > | Start
00:02:28 #5277 [Verbose] > | Path of quoted: bool
00:02:28 #5278 [Verbose] > | Arguments
00:02:28 #5279 [Verbose] >
00:02:28 #5280 [Verbose] > let splitCommand (command: string) =
00:02:28 #5281 [Verbose] > let rec loop (path, args) chars step =
00:02:28 #5282 [Verbose] > match chars, step with
00:02:28 #5283 [Verbose] > | ('"' | '\'') ...
00:02:28 #5284 [Verbose] >
00:02:28 #5285 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:28 #5286 [Verbose] > #if !INTERACTIVE
00:02:28 #5287 [Verbose] > open Lib
00:02:28 #5288 [Verbose] > #endif
00:02:28 #5289 [Verbose] >
00:02:28 #5290 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:28 #5291 [Verbose] > open Common
00:02:28 #5292 [Verbose] >
00:02:28 #5293 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:28 #5294 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:28 #5295 [Verbose] > │ ## testPortOpen │
00:02:28 #5296 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:28 #5297 [Verbose] >
00:02:28 #5298 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:28 #5299 [Verbose] > let inline testPortOpen port = async {
00:02:28 #5300 [Verbose] > let! ct = Async.CancellationToken
00:02:28 #5301 [Verbose] > use client = new System.Net.Sockets.TcpClient ()
00:02:28 #5302 [Verbose] > try
00:02:28 #5303 [Verbose] > do! client.ConnectAsync ("127.0.0.1", port, ct) |>
00:02:28 #5304 [Verbose] > Async.awaitValueTaskUnit
00:02:28 #5305 [Verbose] > return true
00:02:28 #5306 [Verbose] > with ex ->
00:02:28 #5307 [Verbose] > trace Verbose (fun () -> $"testPortOpen / ex: {ex |>
00:02:28 #5308 [Verbose] > Sm.format_exception}") getLocals
00:02:28 #5309 [Verbose] > return false
00:02:28 #5310 [Verbose] > }
00:02:28 #5311 [Verbose] >
00:02:28 #5312 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:28 #5313 [Verbose] > //// test
00:02:28 #5314 [Verbose] >
00:02:28 #5315 [Verbose] > testPortOpen 65536
00:02:28 #5316 [Verbose] > |> Async.runWithTimeout 120
00:02:28 #5317 [Verbose] > |> _assertEqual (Some false)
00:02:28 #5318 [Verbose] >
00:02:28 #5319 [Verbose] > ╭─[ 135.04ms - stdout ]────────────────────────────────────────────────────────╮
00:02:28 #5320 [Verbose] > │ 00:00:00 #1 [Verbose] testPortOpen / ex: System.ArgumentOutOfRangeException: │
00:02:28 #5321 [Verbose] > │ Specified argument was out of the range of valid values. (Parameter 'port') │
00:02:28 #5322 [Verbose] > │ FSharpOption<Boolean> │
00:02:28 #5323 [Verbose] > │ Value: False │
00:02:28 #5324 [Verbose] > │ │
00:02:28 #5325 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:28 #5326 [Verbose] >
00:02:28 #5327 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:28 #5328 [Verbose] > let inline testPortOpenTimeout timeout port = async {
00:02:28 #5329 [Verbose] > let! result =
00:02:28 #5330 [Verbose] > testPortOpen port
00:02:28 #5331 [Verbose] > |> Async.runWithTimeoutAsync timeout
00:02:28 #5332 [Verbose] > return
00:02:28 #5333 [Verbose] > match result with
00:02:28 #5334 [Verbose] > | None -> false
00:02:28 #5335 [Verbose] > | Some result -> result
00:02:28 #5336 [Verbose] > }
00:02:28 #5337 [Verbose] >
00:02:28 #5338 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:28 #5339 [Verbose] > //// test
00:02:28 #5340 [Verbose] >
00:02:28 #5341 [Verbose] > testPortOpenTimeout 120 65535
00:02:28 #5342 [Verbose] > |> Async.RunSynchronously
00:02:28 #5343 [Verbose] > |> _assertEqual false
00:02:29 #5344 [Verbose] >
00:02:29 #5345 [Verbose] > ╭─[ 302.42ms - stdout ]────────────────────────────────────────────────────────╮
00:02:29 #5346 [Verbose] > │ 00:00:00 #2 [Debug] runWithTimeoutChildAsync / timeout: 120 │
00:02:29 #5347 [Verbose] > │ False │
00:02:29 #5348 [Verbose] > │ │
00:02:29 #5349 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:29 #5350 [Verbose] >
00:02:29 #5351 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:29 #5352 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:29 #5353 [Verbose] > │ ## waitForPortAccess │
00:02:29 #5354 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:29 #5355 [Verbose] >
00:02:29 #5356 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:29 #5357 [Verbose] > let inline waitForPortAccess timeout status port =
00:02:29 #5358 [Verbose] > let rec loop retry = async {
00:02:29 #5359 [Verbose] > let! isPortOpen =
00:02:29 #5360 [Verbose] > match timeout with
00:02:29 #5361 [Verbose] > | None -> testPortOpen port
00:02:29 #5362 [Verbose] > | Some timeout -> testPortOpenTimeout timeout port
00:02:29 #5363 [Verbose] > if isPortOpen = status
00:02:29 #5364 [Verbose] > then return retry
00:02:29 #5365 [Verbose] > else
00:02:29 #5366 [Verbose] > if retry % 100 = 0 then
00:02:29 #5367 [Verbose] > let getLocals () = $"port: {port} / retry: {retry} / {getLocals
00:02:29 #5368 [Verbose] > ()}"
00:02:29 #5369 [Verbose] > trace Verbose (fun () -> "waitForPortAccess") getLocals
00:02:29 #5370 [Verbose] > do! Async.Sleep 10
00:02:29 #5371 [Verbose] > return! loop (retry + 1)
00:02:29 #5372 [Verbose] > }
00:02:29 #5373 [Verbose] > loop 0
00:02:29 #5374 [Verbose] >
00:02:29 #5375 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:29 #5376 [Verbose] > //// test
00:02:29 #5377 [Verbose] >
00:02:29 #5378 [Verbose] > let port = 5555
00:02:29 #5379 [Verbose] >
00:02:29 #5380 [Verbose] > let inline lockPort () = async {
00:02:29 #5381 [Verbose] > trace Debug (fun () -> "_1") getLocals
00:02:29 #5382 [Verbose] > do! Async.Sleep 5000
00:02:29 #5383 [Verbose] > use listener = new System.Net.Sockets.TcpListener
00:02:29 #5384 [Verbose] > (System.Net.IPAddress.Parse "127.0.0.1", port)
00:02:29 #5385 [Verbose] > trace Debug (fun () -> "_2") getLocals
00:02:29 #5386 [Verbose] > listener.Start ()
00:02:29 #5387 [Verbose] > trace Debug (fun () -> "_3") getLocals
00:02:29 #5388 [Verbose] > do! Async.Sleep 2000
00:02:29 #5389 [Verbose] > trace Debug (fun () -> "_4") getLocals
00:02:29 #5390 [Verbose] > listener.Stop ()
00:02:29 #5391 [Verbose] > trace Debug (fun () -> "_5") getLocals
00:02:29 #5392 [Verbose] > }
00:02:29 #5393 [Verbose] >
00:02:29 #5394 [Verbose] > async {
00:02:29 #5395 [Verbose] > trace Debug (fun () -> "1") getLocals
00:02:29 #5396 [Verbose] > let! child = lockPort () |> Async.StartChild
00:02:29 #5397 [Verbose] > trace Debug (fun () -> "2") getLocals
00:02:29 #5398 [Verbose] > do! Async.Sleep 1
00:02:29 #5399 [Verbose] > trace Debug (fun () -> "3") getLocals
00:02:29 #5400 [Verbose] > let! retries1 = waitForPortAccess None true port
00:02:29 #5401 [Verbose] > trace Debug (fun () -> "4") getLocals
00:02:29 #5402 [Verbose] > let! retries2 = waitForPortAccess None false port
00:02:29 #5403 [Verbose] > trace Debug (fun () -> "5") getLocals
00:02:29 #5404 [Verbose] > do! child
00:02:29 #5405 [Verbose] > trace Debug (fun () -> "6") getLocals
00:02:29 #5406 [Verbose] > return retries1, retries2
00:02:29 #5407 [Verbose] > }
00:02:29 #5408 [Verbose] > |> Async.runWithTimeout 20000
00:02:29 #5409 [Verbose] > |> function
00:02:29 #5410 [Verbose] > | Some (retries1, retries2) ->
00:02:29 #5411 [Verbose] > retries1
00:02:29 #5412 [Verbose] > |> _isBetween
00:02:29 #5413 [Verbose] > (if Runtime.isWindows () then 2 else 2)
00:02:29 #5414 [Verbose] > (if Runtime.isWindows () then 5 else 1500)
00:02:29 #5415 [Verbose] >
00:02:29 #5416 [Verbose] > retries2
00:02:29 #5417 [Verbose] > |> _isBetween
00:02:29 #5418 [Verbose] > (if Runtime.isWindows () then 80 else 80)
00:02:29 #5419 [Verbose] > (if Runtime.isWindows () then 150 else 600)
00:02:29 #5420 [Verbose] >
00:02:29 #5421 [Verbose] > true
00:02:29 #5422 [Verbose] > | _ -> false
00:02:29 #5423 [Verbose] > |> _assertEqual true
00:02:38 #5424 [Verbose] >
00:02:38 #5425 [Verbose] > ╭─[ 9.52s - stdout ]───────────────────────────────────────────────────────────╮
00:02:38 #5426 [Verbose] > │ 00:00:00 #3 [Debug] 1 │
00:02:38 #5427 [Verbose] > │ 00:00:00 #5 [Debug] 2 │
00:02:38 #5428 [Verbose] > │ 00:00:00 #4 [Debug] _1 │
00:02:38 #5429 [Verbose] > │ 00:00:01 #6 [Debug] 3 │
00:02:38 #5430 [Verbose] > │ 00:00:03 #7 [Verbose] testPortOpen / ex: System.AggregateException: One or │
00:02:38 #5431 [Verbose] > │ more errors occurred. (No connection could be made because the target │
00:02:38 #5432 [Verbose] > │ machine actively refused it.) │
00:02:38 #5433 [Verbose] > │ 00:00:03 #8 [Verbose] waitForPortAccess / port: 5555 / retry: 0 │
00:02:38 #5434 [Verbose] > │ 00:00:05 #9 [Verbose] testPortOpen / ex: System.AggregateException: One or │
00:02:38 #5435 [Verbose] > │ more errors occurred. (No connection could be made because the target │
00:02:38 #5436 [Verbose] > │ machine actively refused it.) │
00:02:38 #5437 [Verbose] > │ 00:00:06 #10 [Debug] _2 │
00:02:38 #5438 [Verbose] > │ 00:00:06 #11 [Debug] _3 │
00:02:38 #5439 [Verbose] > │ 00:00:06 #12 [Debug] 4 │
00:02:38 #5440 [Verbose] > │ 00:00:06 #13 [Verbose] waitForPortAccess / port: 5555 / retry: 0 │
00:02:38 #5441 [Verbose] > │ 00:00:07 #14 [Verbose] waitForPortAccess / port: 5555 / retry: 100 │
00:02:38 #5442 [Verbose] > │ 00:00:08 #15 [Debug] _4 │
00:02:38 #5443 [Verbose] > │ 00:00:08 #16 [Debug] _5 │
00:02:38 #5444 [Verbose] > │ 00:00:10 #17 [Verbose] testPortOpen / ex: System.AggregateException: One or │
00:02:38 #5445 [Verbose] > │ more errors occurred. (No connection could be made because the target │
00:02:38 #5446 [Verbose] > │ machine actively refused it.) │
00:02:38 #5447 [Verbose] > │ 00:00:10 #18 [Debug] 5 │
00:02:38 #5448 [Verbose] > │ 00:00:10 #19 [Debug] 6 │
00:02:38 #5449 [Verbose] > │ 2 │
00:02:38 #5450 [Verbose] > │ 2 │
00:02:38 #5451 [Verbose] > │ 2 │
00:02:38 #5452 [Verbose] > │ 117 │
00:02:38 #5453 [Verbose] > │ 117 │
00:02:39 #5454 [Verbose] > │ 117 │
00:02:39 #5455 [Verbose] > │ True │
00:02:39 #5456 [Verbose] > │ │
00:02:39 #5457 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:39 #5458 [Verbose] >
00:02:39 #5459 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:39 #5460 [Verbose] > //// test
00:02:39 #5461 [Verbose] >
00:02:39 #5462 [Verbose] > let port = 5555
00:02:39 #5463 [Verbose] >
00:02:39 #5464 [Verbose] > let inline lockPort () = async {
00:02:39 #5465 [Verbose] > trace Debug (fun () -> "_1") getLocals
00:02:39 #5466 [Verbose] > do! Async.Sleep 500
00:02:39 #5467 [Verbose] > use listener = new System.Net.Sockets.TcpListener
00:02:39 #5468 [Verbose] > (System.Net.IPAddress.Parse "127.0.0.1", port)
00:02:39 #5469 [Verbose] > trace Debug (fun () -> "_2") getLocals
00:02:39 #5470 [Verbose] > listener.Start ()
00:02:39 #5471 [Verbose] > trace Debug (fun () -> "_3") getLocals
00:02:39 #5472 [Verbose] > do! Async.Sleep 200
00:02:39 #5473 [Verbose] > trace Debug (fun () -> "_4") getLocals
00:02:39 #5474 [Verbose] > listener.Stop ()
00:02:39 #5475 [Verbose] > trace Debug (fun () -> "_5") getLocals
00:02:39 #5476 [Verbose] > }
00:02:39 #5477 [Verbose] >
00:02:39 #5478 [Verbose] > async {
00:02:39 #5479 [Verbose] > trace Debug (fun () -> "1") getLocals
00:02:39 #5480 [Verbose] > let! child = lockPort () |> Async.StartChild
00:02:39 #5481 [Verbose] > trace Debug (fun () -> "2") getLocals
00:02:39 #5482 [Verbose] > do! Async.Sleep 1
00:02:39 #5483 [Verbose] > trace Debug (fun () -> "3") getLocals
00:02:39 #5484 [Verbose] > let! retries1 = waitForPortAccess (Some 60) true port
00:02:39 #5485 [Verbose] > trace Debug (fun () -> "4") getLocals
00:02:39 #5486 [Verbose] > let! retries2 = waitForPortAccess (Some 60) false port
00:02:39 #5487 [Verbose] > trace Debug (fun () -> "5") getLocals
00:02:39 #5488 [Verbose] > do! child
00:02:39 #5489 [Verbose] > trace Debug (fun () -> "6") getLocals
00:02:39 #5490 [Verbose] > return retries1, retries2
00:02:39 #5491 [Verbose] > }
00:02:39 #5492 [Verbose] > |> Async.runWithTimeout 2000
00:02:39 #5493 [Verbose] > |> function
00:02:39 #5494 [Verbose] > | Some (retries1, retries2) ->
00:02:39 #5495 [Verbose] > retries1
00:02:39 #5496 [Verbose] > |> _isBetween
00:02:39 #5497 [Verbose] > (if Runtime.isWindows () then 4 else 2)
00:02:39 #5498 [Verbose] > (if Runtime.isWindows () then 15 else 150)
00:02:39 #5499 [Verbose] >
00:02:39 #5500 [Verbose] > retries2
00:02:39 #5501 [Verbose] > |> _isBetween
00:02:39 #5502 [Verbose] > (if Runtime.isWindows () then 5 else 0)
00:02:39 #5503 [Verbose] > (if Runtime.isWindows () then 20 else 60)
00:02:39 #5504 [Verbose] >
00:02:39 #5505 [Verbose] > true
00:02:39 #5506 [Verbose] > | _ -> false
00:02:39 #5507 [Verbose] > |> _assertEqual true
00:02:40 #5508 [Verbose] >
00:02:40 #5509 [Verbose] > ╭─[ 1.35s - stdout ]───────────────────────────────────────────────────────────╮
00:02:40 #5510 [Verbose] > │ 00:00:10 #20 [Debug] 1 │
00:02:40 #5511 [Verbose] > │ 00:00:10 #21 [Debug] 2 │
00:02:40 #5512 [Verbose] > │ 00:00:10 #22 [Debug] _1 │
00:02:40 #5513 [Verbose] > │ 00:00:10 #23 [Debug] 3 │
00:02:40 #5514 [Verbose] > │ 00:00:10 #24 [Debug] runWithTimeoutChildAsync / timeout: 60 │
00:02:40 #5515 [Verbose] > │ 00:00:10 #25 [Verbose] waitForPortAccess / port: 5555 / retry: 0 │
00:02:40 #5516 [Verbose] > │ 00:00:10 #26 [Debug] runWithTimeoutChildAsync / timeout: 60 │
00:02:40 #5517 [Verbose] > │ 00:00:10 #27 [Debug] runWithTimeoutChildAsync / timeout: 60 │
00:02:40 #5518 [Verbose] > │ 00:00:11 #28 [Debug] runWithTimeoutChildAsync / timeout: 60 │
00:02:40 #5519 [Verbose] > │ 00:00:11 #29 [Debug] runWithTimeoutChildAsync / timeout: 60 │
00:02:40 #5520 [Verbose] > │ 00:00:11 #30 [Debug] runWithTimeoutChildAsync / timeout: 60 │
00:02:40 #5521 [Verbose] > │ 00:00:11 #31 [Debug] _2 │
00:02:40 #5522 [Verbose] > │ 00:00:11 #32 [Debug] _3 │
00:02:40 #5523 [Verbose] > │ 00:00:11 #33 [Debug] runWithTimeoutChildAsync / timeout: 60 │
00:02:40 #5524 [Verbose] > │ 00:00:11 #34 [Debug] 4 │
00:02:40 #5525 [Verbose] > │ 00:00:11 #35 [Verbose] waitForPortAccess / port: 5555 / retry: 0 │
00:02:40 #5526 [Verbose] > │ 00:00:11 #36 [Debug] _4 │
00:02:40 #5527 [Verbose] > │ 00:00:11 #37 [Debug] _5 │
00:02:40 #5528 [Verbose] > │ 00:00:11 #38 [Debug] runWithTimeoutChildAsync / timeout: 60 │
00:02:40 #5529 [Verbose] > │ 00:00:11 #39 [Debug] 5 │
00:02:40 #5530 [Verbose] > │ 00:00:11 #40 [Debug] 6 │
00:02:40 #5531 [Verbose] > │ 7 │
00:02:40 #5532 [Verbose] > │ 7 │
00:02:40 #5533 [Verbose] > │ 7 │
00:02:40 #5534 [Verbose] > │ 8 │
00:02:40 #5535 [Verbose] > │ 8 │
00:02:40 #5536 [Verbose] > │ 8 │
00:02:40 #5537 [Verbose] > │ True │
00:02:40 #5538 [Verbose] > │ │
00:02:40 #5539 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:40 #5540 [Verbose] >
00:02:40 #5541 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:40 #5542 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:40 #5543 [Verbose] > │ ## getAvailablePort │
00:02:40 #5544 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:40 #5545 [Verbose] >
00:02:40 #5546 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:40 #5547 [Verbose] > let inline getAvailablePort timeout initialPort =
00:02:40 #5548 [Verbose] > let rec loop port = async {
00:02:40 #5549 [Verbose] > let! isPortOpen =
00:02:40 #5550 [Verbose] > match timeout with
00:02:40 #5551 [Verbose] > | None -> testPortOpen port
00:02:40 #5552 [Verbose] > | Some timeout -> testPortOpenTimeout timeout port
00:02:40 #5553 [Verbose] > if not isPortOpen
00:02:40 #5554 [Verbose] > then return port
00:02:40 #5555 [Verbose] > else return! loop (port + 1)
00:02:40 #5556 [Verbose] > }
00:02:40 #5557 [Verbose] > loop initialPort
00:02:40 #5558 [Verbose] >
00:02:40 #5559 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:40 #5560 [Verbose] > //// test
00:02:40 #5561 [Verbose] >
00:02:40 #5562 [Verbose] > let port = 5555
00:02:40 #5563 [Verbose] >
00:02:40 #5564 [Verbose] > let inline lockPorts () = async {
00:02:40 #5565 [Verbose] > trace Debug (fun () -> "_1") getLocals
00:02:40 #5566 [Verbose] > use listener1 = new System.Net.Sockets.TcpListener
00:02:40 #5567 [Verbose] > (System.Net.IPAddress.Parse "127.0.0.1", port)
00:02:40 #5568 [Verbose] > use listener2 = new System.Net.Sockets.TcpListener
00:02:40 #5569 [Verbose] > (System.Net.IPAddress.Parse "127.0.0.1", port + 1)
00:02:40 #5570 [Verbose] > trace Debug (fun () -> "_2") getLocals
00:02:40 #5571 [Verbose] > listener1.Start ()
00:02:40 #5572 [Verbose] > listener2.Start ()
00:02:40 #5573 [Verbose] > trace Debug (fun () -> "_3") getLocals
00:02:40 #5574 [Verbose] > do! Async.Sleep 4000
00:02:40 #5575 [Verbose] > trace Debug (fun () -> "_4") getLocals
00:02:40 #5576 [Verbose] > listener1.Stop ()
00:02:40 #5577 [Verbose] > listener2.Stop ()
00:02:40 #5578 [Verbose] > trace Debug (fun () -> "_5") getLocals
00:02:40 #5579 [Verbose] > }
00:02:40 #5580 [Verbose] >
00:02:40 #5581 [Verbose] > async {
00:02:40 #5582 [Verbose] > trace Debug (fun () -> "1") getLocals
00:02:40 #5583 [Verbose] > let! child = lockPorts () |> Async.StartChild
00:02:40 #5584 [Verbose] > trace Debug (fun () -> "2") getLocals
00:02:40 #5585 [Verbose] > do! Async.Sleep 240
00:02:40 #5586 [Verbose] > trace Debug (fun () -> "3") getLocals
00:02:40 #5587 [Verbose] > let! availablePort = getAvailablePort None port
00:02:40 #5588 [Verbose] > trace Debug (fun () -> "4") getLocals
00:02:40 #5589 [Verbose] > let! retries = waitForPortAccess None false port
00:02:40 #5590 [Verbose] > trace Debug (fun () -> "5") getLocals
00:02:40 #5591 [Verbose] > do! child
00:02:40 #5592 [Verbose] > trace Debug (fun () -> "6") getLocals
00:02:40 #5593 [Verbose] > return availablePort, retries
00:02:40 #5594 [Verbose] > }
00:02:40 #5595 [Verbose] > |> Async.runWithTimeout 15000
00:02:40 #5596 [Verbose] > |> function
00:02:40 #5597 [Verbose] > | Some (availablePort, retries) ->
00:02:40 #5598 [Verbose] > availablePort |> _assertEqual (port + 2)
00:02:40 #5599 [Verbose] >
00:02:40 #5600 [Verbose] > retries
00:02:40 #5601 [Verbose] > |> _isBetween
00:02:40 #5602 [Verbose] > (if Runtime.isWindows () then 100 else 100)
00:02:40 #5603 [Verbose] > (if Runtime.isWindows () then 150 else 1200)
00:02:40 #5604 [Verbose] >
00:02:40 #5605 [Verbose] > true
00:02:40 #5606 [Verbose] > | _ -> false
00:02:40 #5607 [Verbose] > |> _assertEqual true
00:02:46 #5608 [Verbose] >
00:02:46 #5609 [Verbose] > ╭─[ 6.38s - stdout ]───────────────────────────────────────────────────────────╮
00:02:46 #5610 [Verbose] > │ 00:00:12 #41 [Debug] 1 │
00:02:46 #5611 [Verbose] > │ 00:00:12 #42 [Debug] 2 │
00:02:46 #5612 [Verbose] > │ 00:00:12 #43 [Debug] _1 │
00:02:46 #5613 [Verbose] > │ 00:00:12 #44 [Debug] _2 │
00:02:46 #5614 [Verbose] > │ 00:00:12 #45 [Debug] _3 │
00:02:46 #5615 [Verbose] > │ 00:00:12 #46 [Debug] 3 │
00:02:46 #5616 [Verbose] > │ 00:00:14 #47 [Verbose] testPortOpen / ex: System.AggregateException: One or │
00:02:46 #5617 [Verbose] > │ more errors occurred. (No connection could be made because the target │
00:02:46 #5618 [Verbose] > │ machine actively refused it.) │
00:02:46 #5619 [Verbose] > │ 00:00:14 #48 [Debug] 4 │
00:02:46 #5620 [Verbose] > │ 00:00:14 #49 [Verbose] waitForPortAccess / port: 5555 / retry: 0 │
00:02:46 #5621 [Verbose] > │ 00:00:15 #50 [Verbose] waitForPortAccess / port: 5555 / retry: 100 │
00:02:46 #5622 [Verbose] > │ 00:00:16 #51 [Debug] _4 │
00:02:46 #5623 [Verbose] > │ 00:00:16 #52 [Debug] _5 │
00:02:46 #5624 [Verbose] > │ 00:00:18 #53 [Verbose] testPortOpen / ex: System.AggregateException: One or │
00:02:46 #5625 [Verbose] > │ more errors occurred. (No connection could be made because the target │
00:02:46 #5626 [Verbose] > │ machine actively refused it.) │
00:02:46 #5627 [Verbose] > │ 00:00:18 #54 [Debug] 5 │
00:02:46 #5628 [Verbose] > │ 00:00:18 #55 [Debug] 6 │
00:02:46 #5629 [Verbose] > │ 5557 │
00:02:46 #5630 [Verbose] > │ 110 │
00:02:46 #5631 [Verbose] > │ 110 │
00:02:46 #5632 [Verbose] > │ 110 │
00:02:46 #5633 [Verbose] > │ True │
00:02:46 #5634 [Verbose] > │ │
00:02:46 #5635 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:46 #5636 [Verbose] >
00:02:46 #5637 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:46 #5638 [Verbose] > //// test
00:02:46 #5639 [Verbose] >
00:02:46 #5640 [Verbose] > let port = 5555
00:02:46 #5641 [Verbose] >
00:02:46 #5642 [Verbose] > let inline lockPorts () = async {
00:02:46 #5643 [Verbose] > trace Debug (fun () -> "_1") getLocals
00:02:46 #5644 [Verbose] > use listener1 = new System.Net.Sockets.TcpListener
00:02:46 #5645 [Verbose] > (System.Net.IPAddress.Parse "127.0.0.1", port)
00:02:46 #5646 [Verbose] > use listener2 = new System.Net.Sockets.TcpListener
00:02:46 #5647 [Verbose] > (System.Net.IPAddress.Parse "127.0.0.1", port + 1)
00:02:46 #5648 [Verbose] > trace Debug (fun () -> "_2") getLocals
00:02:46 #5649 [Verbose] > listener1.Start ()
00:02:46 #5650 [Verbose] > listener2.Start ()
00:02:46 #5651 [Verbose] > trace Debug (fun () -> "_3") getLocals
00:02:46 #5652 [Verbose] > do! Async.Sleep 400
00:02:46 #5653 [Verbose] > trace Debug (fun () -> "_4") getLocals
00:02:46 #5654 [Verbose] > listener1.Stop ()
00:02:46 #5655 [Verbose] > listener2.Stop ()
00:02:46 #5656 [Verbose] > trace Debug (fun () -> "_5") getLocals
00:02:46 #5657 [Verbose] > }
00:02:46 #5658 [Verbose] >
00:02:46 #5659 [Verbose] > async {
00:02:46 #5660 [Verbose] > trace Debug (fun () -> "1") getLocals
00:02:46 #5661 [Verbose] > let! child = lockPorts () |> Async.StartChild
00:02:46 #5662 [Verbose] > trace Debug (fun () -> "2") getLocals
00:02:46 #5663 [Verbose] > do! Async.Sleep 240
00:02:46 #5664 [Verbose] > trace Debug (fun () -> "3") getLocals
00:02:46 #5665 [Verbose] > let! availablePort = getAvailablePort (Some 60) port
00:02:46 #5666 [Verbose] > trace Debug (fun () -> "4") getLocals
00:02:46 #5667 [Verbose] > let! retries = waitForPortAccess (Some 60) false port
00:02:46 #5668 [Verbose] > trace Debug (fun () -> "5") getLocals
00:02:46 #5669 [Verbose] > do! child
00:02:46 #5670 [Verbose] > trace Debug (fun () -> "6") getLocals
00:02:46 #5671 [Verbose] > return availablePort, retries
00:02:46 #5672 [Verbose] > }
00:02:46 #5673 [Verbose] > |> Async.runWithTimeout 1500
00:02:46 #5674 [Verbose] > |> function
00:02:46 #5675 [Verbose] > | Some (availablePort, retries) ->
00:02:46 #5676 [Verbose] > availablePort |> _assertEqual (port + 2)
00:02:46 #5677 [Verbose] >
00:02:46 #5678 [Verbose] > retries
00:02:46 #5679 [Verbose] > |> _isBetween
00:02:46 #5680 [Verbose] > (if Runtime.isWindows () then 2 else 1)
00:02:46 #5681 [Verbose] > (if Runtime.isWindows () then 10 else 120)
00:02:46 #5682 [Verbose] >
00:02:46 #5683 [Verbose] > true
00:02:46 #5684 [Verbose] > | _ -> false
00:02:46 #5685 [Verbose] > |> _assertEqual true
00:02:47 #5686 [Verbose] >
00:02:47 #5687 [Verbose] > ╭─[ 928.58ms - stdout ]────────────────────────────────────────────────────────╮
00:02:47 #5688 [Verbose] > │ 00:00:18 #56 [Debug] 1 │
00:02:47 #5689 [Verbose] > │ 00:00:18 #58 [Debug] _1 │
00:02:47 #5690 [Verbose] > │ 00:00:18 #57 [Debug] 2 │
00:02:47 #5691 [Verbose] > │ 00:00:18 #59 [Debug] _2 │
00:02:47 #5692 [Verbose] > │ 00:00:18 #60 [Debug] _3 │
00:02:47 #5693 [Verbose] > │ 00:00:18 #61 [Debug] 3 │
00:02:47 #5694 [Verbose] > │ 00:00:18 #62 [Debug] runWithTimeoutChildAsync / timeout: 60 │
00:02:47 #5695 [Verbose] > │ 00:00:18 #63 [Debug] 4 │
00:02:47 #5696 [Verbose] > │ 00:00:18 #64 [Verbose] waitForPortAccess / port: 5555 / retry: 0 │
00:02:47 #5697 [Verbose] > │ 00:00:18 #65 [Debug] _4 │
00:02:47 #5698 [Verbose] > │ 00:00:18 #66 [Debug] _5 │
00:02:47 #5699 [Verbose] > │ 00:00:19 #67 [Debug] runWithTimeoutChildAsync / timeout: 60 │
00:02:47 #5700 [Verbose] > │ 00:00:19 #68 [Debug] 5 │
00:02:47 #5701 [Verbose] > │ 00:00:19 #69 [Debug] 6 │
00:02:47 #5702 [Verbose] > │ 5557 │
00:02:47 #5703 [Verbose] > │ 4 │
00:02:47 #5704 [Verbose] > │ 4 │
00:02:47 #5705 [Verbose] > │ 4 │
00:02:47 #5706 [Verbose] > │ True │
00:02:47 #5707 [Verbose] > │ │
00:02:47 #5708 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:49 #5709 [Verbose] > [NbConvertApp] Converting notebook Networking.dib.ipynb to html
00:02:49 #5710 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:02:49 #5711 [Verbose] > validate(nb)
00:02:49 #5712 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:02:49 #5713 [Verbose] > return _pygments_highlight(
00:02:50 #5714 [Verbose] > [NbConvertApp] Writing 326266 bytes to Networking.dib.html
00:02:50 #5715 [Debug] executeAsync / exitCode: 0 / output.Length: 31507
00:02:50 #5716 [Debug] main / executeCommand / exitCode: 0
00:02:50 #5717 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 Runtime.dib -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:02:52 #5718 [Verbose] >
00:02:53 #5719 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:53 #5720 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:53 #5721 [Verbose] > │ # Runtime (Polyglot) │
00:02:53 #5722 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:53 #5723 [Verbose] >
00:02:53 #5724 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:53 #5725 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib
00:02:53 #5726 [Verbose] > #!import ../../lib/fsharp/Testing.dib
00:02:53 #5727 [Verbose] >
00:02:53 #5728 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:53 #5729 [Verbose] > #r
00:02:53 #5730 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
00:02:53 #5731 [Verbose] > spNetCore.Html.Abstractions.dll"
00:02:53 #5732 [Verbose] > #r
00:02:53 #5733 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:02:53 #5734 [Verbose] > otNet.Interactive.dll"
00:02:53 #5735 [Verbose] > #r
00:02:53 #5736 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:02:53 #5737 [Verbose] > otNet.Interactive.FSharp.dll"
00:02:53 #5738 [Verbose] > #r
00:02:53 #5739 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:02:53 #5740 [Verbose] > otNet.Interactive.Formatting.dll"
00:02:53 #5741 [Verbose] > open System
00:02:53 #5742 [Verbose] > open System.IO
00:02:53 #5743 [Verbose] > open System.Text
00:02:53 #5744 [Verbose] > open Microsoft.DotNet.Interactive.Formatting
00:02:56 #5745 [Verbose] >
00:02:56 #5746 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:56 #5747 [Verbose] > #r
00:02:56 #5748 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:02:56 #5749 [Verbose] > otNet.Interactive.FSharp.dll"
00:02:56 #5750 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
00:02:56 #5751 [Verbose] > #r
00:02:56 #5752 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:02:56 #5753 [Verbose] > otNet.Interactive.dll"
00:02:56 #5754 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel
00:02:56 #5755 [Verbose] >
00:02:56 #5756 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:56 #5757 [Verbose] > //// test
00:02:56 #5758 [Verbose] >
00:02:56 #5759 [Verbose] > Formatter.ListExpansionLimit <- 100
00:02:56 #5760 [Verbose] >
00:02:56 #5761 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:56 #5762 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
00:02:56 #5763 [Verbose] >
00:02:56 #5764 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:56 #5765 [Verbose] > //// test
00:02:56 #5766 [Verbose] >
00:02:56 #5767 [Verbose] > type AssertExceptionFormatter (ex) =
00:02:56 #5768 [Verbose] > member _.Text =
00:02:56 #5769 [Verbose] > ex.ToString()
00:02:56 #5770 [Verbose] > .Replace("32m", "<span style=\"color: green;\">")
00:02:56 #5771 [Verbose] > .Replace("36m", "</span>")
00:02:56 #5772 [Verbose] > .Replace("31m", "<span style=\"color: red;\">")
00:02:56 #5773 [Verbose] > .Replace("\n", "<br/>\n")
00:02:56 #5774 [Verbose] >
00:02:56 #5775 [Verbose] >
00:02:56 #5776 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :
00:02:56 #5777 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")
00:02:57 #5778 [Verbose] >
00:02:57 #5779 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:57 #5780 [Verbose] > //// test
00:02:57 #5781 [Verbose] >
00:02:57 #5782 [Verbose] > let inline __expect fn log expected actual =
00:02:57 #5783 [Verbose] > if log then printfn $"{actual.ToDisplayString ()}"
00:02:57 #5784 [Verbose] > try
00:02:57 #5785 [Verbose] > "Testing.__expect" |> fn actual expected
00:02:57 #5786 [Verbose] > with :? Expecto.AssertException as ex ->
00:02:57 #5787 [Verbose] > AssertExceptionFormatter(ex).Display () |> ignore
00:02:57 #5788 [Verbose] > failwith (ex.GetType().FullName)
00:02:57 #5789 [Verbose] >
00:02:57 #5790 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log
00:02:57 #5791 [Verbose] > expected actual
00:02:57 #5792 [Verbose] > let inline _contains expected actual = __contains true expected actual
00:02:57 #5793 [Verbose] >
00:02:57 #5794 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
00:02:57 #5795 [Verbose] > expected actual
00:02:57 #5796 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual
00:02:57 #5797 [Verbose] >
00:02:57 #5798 [Verbose] > let inline __isGreaterThan log expected actual = __expect
00:02:57 #5799 [Verbose] > Expecto.Expect.isGreaterThan log ex...
00:02:57 #5800 [Verbose] >
00:02:57 #5801 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:57 #5802 [Verbose] > //// test
00:02:57 #5803 [Verbose] >
00:02:57 #5804 [Verbose] > let inline __isBetween log a b actual =
00:02:57 #5805 [Verbose] > let inline isBetween actual (a, b) _ =
00:02:57 #5806 [Verbose] > __isGreaterThanOrEqual log a actual
00:02:57 #5807 [Verbose] > __isLessThanOrEqual log b actual
00:02:57 #5808 [Verbose] > __expect isBetween log (a, b) actual
00:02:57 #5809 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual
00:02:57 #5810 [Verbose] >
00:02:57 #5811 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:57 #5812 [Verbose] > #r
00:02:57 #5813 [Verbose] > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
00:02:57 #5814 [Verbose] > dard2.1/FSharp.Control.AsyncSeq.dll"
00:02:57 #5815 [Verbose] > #r
00:02:57 #5816 [Verbose] > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
00:02:57 #5817 [Verbose] > 0/System.Reactive.dll"
00:02:57 #5818 [Verbose] > #r
00:02:57 #5819 [Verbose] > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib
00:02:57 #5820 [Verbose] > netstandard2.0/System.Reactive.Linq.dll"
00:02:57 #5821 [Verbose] > #r
00:02:57 #5822 [Verbose] > @"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
00:02:57 #5823 [Verbose] > #r
00:02:57 #5824 [Verbose] > @"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
00:02:57 #5825 [Verbose] > b/net6.0/System.CommandLine.dll"
00:02:57 #5826 [Verbose] >
00:02:57 #5827 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:57 #5828 [Verbose] > #!import ../../lib/spiral/common.fsx
00:02:57 #5829 [Verbose] > #!import ../../lib/spiral/sm.fsx
00:02:57 #5830 [Verbose] > #!import ../../lib/spiral/date_time.fsx
00:02:57 #5831 [Verbose] > #!import ../../lib/spiral/file_system.fsx
00:02:57 #5832 [Verbose] > #!import ../../lib/spiral/lib.fsx
00:02:57 #5833 [Verbose] > #!import ../../lib/fsharp/Common.fs
00:02:57 #5834 [Verbose] > #!import ../../lib/fsharp/CommonFSharp.fs
00:02:57 #5835 [Verbose] > #!import ../../lib/fsharp/Async.fs
00:02:57 #5836 [Verbose] > #!import ../../lib/fsharp/AsyncSeq.fs
00:02:57 #5837 [Verbose] > #!import ../../lib/fsharp/Runtime.fs
00:02:57 #5838 [Verbose] > #!import ../../lib/fsharp/FileSystem.fs
00:02:57 #5839 [Verbose] >
00:02:57 #5840 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:57 #5841 [Verbose] > type [[<Struct>]] US0 =
00:02:57 #5842 [Verbose] > | US0_0
00:02:57 #5843 [Verbose] > | US0_1
00:02:57 #5844 [Verbose] > and [[<Struct>]] US1 =
00:02:57 #5845 [Verbose] > | US1_0
00:02:57 #5846 [Verbose] > | US1_1 of f1_0 : US0
00:02:57 #5847 [Verbose] > let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
00:02:57 #5848 [Verbose] > v0
00:02:57 #5849 [Verbose] > and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
00:02:57 #5850 [Verbose] > let mutable result = None
00:02:57 #5851 [Verbose] > #if FABLE_COMPILER_RUST && !WASM
00:02:57 #5852 [Verbose] > let v1 : (unit -> unit) = method0(v0)
00:02:57 #5853 [Verbose] > let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
00:02:57 #5854 [Verbose] > () = Fable.Core.RustInterop.emitRustExpr () "v1()" }
00:02:57 #5855 [Verbose] > v2
00:02:57 #5856 [Verbose] > #endif
00:02:57 #5857 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:02:57 #5858 [Verbose] > let v3 : (unit -> unit) = method0(v0)
00:02:57 #5859 [Verbose] > let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
00:02:57 #5860 [Verbose] > () = Fable.Core.RustInterop.emitRustExpr () "v3()" }
00:02:57 #5861 [Verbose] > v4
00:02:57 #5862 [Verbose] > #endif
00:02:57 #5863 [Verbose] > #if !FABLE_COMPILER && !F...
00:02:58 #5864 [Verbose] >
00:02:58 #5865 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:58 #5866 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}
00:02:58 #5867 [Verbose] > and Mut1 = {mutable l0 : int32}
00:02:58 #5868 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =
00:02:58 #5869 [Verbose] > let v2 : bool = v1.Contains v0
00:02:58 #5870 [Verbose] > v2
00:02:58 #5871 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =
00:02:58 #5872 [Verbose] > closure1(v0)
00:02:58 #5873 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =
00:02:58 #5874 [Verbose] > let v2 : bool = v1.EndsWith v0
00:02:58 #5875 [Verbose] > v2
00:02:58 #5876 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =
00:02:58 #5877 [Verbose] > closure3(v0)
00:02:58 #5878 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
00:02:58 #5879 [Verbose] > let v3 : string = v2.PadLeft (v0, v1)
00:02:58 #5880 [Verbose] > v3
00:02:58 #5881 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =
00:02:58 #5882 [Verbose] > closure6(v0, v1)
00:02:58 #5883 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =
00:02:58 #5884 [Verbose] > closure5(v0)
00:02:58 #5885 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =
00:02:58 #5886 [Verbose] > let v2 : stri...
00:02:58 #5887 [Verbose] >
00:02:58 #5888 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:58 #5889 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
00:02:58 #5890 [Verbose] > let v2 : (System.Guid -> string) = _.ToString()
00:02:58 #5891 [Verbose] > let v3 : string = v2 v0
00:02:58 #5892 [Verbose] > let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
00:02:58 #5893 [Verbose] > let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
00:02:58 #5894 [Verbose] > v5
00:02:58 #5895 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
00:02:58 #5896 [Verbose] > closure1(v0)
00:02:58 #5897 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =
00:02:58 #5898 [Verbose] > let v3 : string = v2.Replace (v0, v1)
00:02:58 #5899 [Verbose] > v3
00:02:58 #5900 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =
00:02:58 #5901 [Verbose] > closure5(v0, v1)
00:02:58 #5902 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =
00:02:58 #5903 [Verbose] > closure4(v0)
00:02:58 #5904 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =
00:02:58 #5905 [Verbose] > closure3()
00:02:58 #5906 [Verbose] > and closure2 (...
00:02:58 #5907 [Verbose] >
00:02:58 #5908 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:58 #5909 [Verbose] > type [[<Struct>]] US0 =
00:02:58 #5910 [Verbose] > | US0_0
00:02:58 #5911 [Verbose] > | US0_1
00:02:58 #5912 [Verbose] > | US0_2
00:02:58 #5913 [Verbose] > and [[<Struct>]] US1 =
00:02:58 #5914 [Verbose] > | US1_0 of f0_0 : US0
00:02:58 #5915 [Verbose] > | US1_1 of f1_0 : US0
00:02:58 #5916 [Verbose] > let rec closure0 () () : string =
00:02:58 #5917 [Verbose] > let mutable result = None
00:02:58 #5918 [Verbose] > #if FABLE_COMPILER_RUST && !WASM
00:02:58 #5919 [Verbose] > let v0 : US0 = US0_1
00:02:58 #5920 [Verbose] > let v1 : US1 = US1_1(v0)
00:02:58 #5921 [Verbose] > let v2 : string = $"create_temp_directory_name target: {v1}"
00:02:58 #5922 [Verbose] > let v3 : string = failwith<string> v2
00:02:58 #5923 [Verbose] > v3
00:02:58 #5924 [Verbose] > #endif
00:02:58 #5925 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:02:58 #5926 [Verbose] > let v4 : US0 = US0_2
00:02:58 #5927 [Verbose] > let v5 : US1 = US1_1(v4)
00:02:58 #5928 [Verbose] > let v6 : string = $"create_temp_directory_name target: {v5}"
00:02:58 #5929 [Verbose] > let v7 : string = failwith<string> v6
00:02:58 #5930 [Verbose] > v7
00:02:58 #5931 [Verbose] > #endif
00:02:58 #5932 [Verbose] > #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM
00:02:58 #5933 [Verbose] > let v8 : string = System.Reflection.Assembly.GetEntryAssembly()...
00:02:59 #5934 [Verbose] >
00:02:59 #5935 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:59 #5936 [Verbose] > #if !WASM && !FABLE_COMPILER
00:02:59 #5937 [Verbose] > module Date_time =
00:02:59 #5938 [Verbose] > let new_guid_from_date_time x =
00:02:59 #5939 [Verbose] > #if !INTERACTIVE
00:02:59 #5940 [Verbose] > Date_time.new_guid_from_date_time x
00:02:59 #5941 [Verbose] > #else
00:02:59 #5942 [Verbose] > new_guid_from_date_time x
00:02:59 #5943 [Verbose] > #endif
00:02:59 #5944 [Verbose] > #endif
00:02:59 #5945 [Verbose] >
00:02:59 #5946 [Verbose] > module Sm =
00:02:59 #5947 [Verbose] > let concat x =
00:02:59 #5948 [Verbose] > #if !INTERACTIVE
00:02:59 #5949 [Verbose] > Sm.concat x
00:02:59 #5950 [Verbose] > #else
00:02:59 #5951 [Verbose] > concat x
00:02:59 #5952 [Verbose] > #endif
00:02:59 #5953 [Verbose] >
00:02:59 #5954 [Verbose] > let contains x =
00:02:59 #5955 [Verbose] > #if !INTERACTIVE
00:02:59 #5956 [Verbose] > Sm.contains x
00:02:59 #5957 [Verbose] > #else
00:02:59 #5958 [Verbose] > contains x
00:02:59 #5959 [Verbose] > #endif
00:02:59 #5960 [Verbose] >
00:02:59 #5961 [Verbose] > let ellipsis x =
00:02:59 #5962 [Verbose] > #if !INTERACTIVE
00:02:59 #5963 [Verbose] > Sm.ellipsis x
00:02:59 #5964 [Verbose] > #else
00:02:59 #5965 [Verbose] > ellipsis x
00:02:59 #5966 [Verbose] > #endif
00:02:59 #5967 [Verbose] >
00:02:59 #5968 [Verbose] > let ellipsis_end x =
00:02:59 #5969 [Verbose] > #if !INTERACTIVE
00:02:59 #5970 [Verbose] > Sm.ellipsis_end x
00:02:59 #5971 [Verbose] > #else
00:02:59 #5972 [Verbose] > ellipsis_end x
00:02:59 #5973 [Verbose] > #endif
00:02:59 #5974 [Verbose] >
00:02:59 #5975 [Verbose] > let ends_with x =
00:02:59 #5976 [Verbose] > #if !INTERACTIVE
00:02:59 #5977 [Verbose] > Sm.ends_with x
00:02:59 #5978 [Verbose] > #else
00:02:59 #5979 [Verbose] > ends_with x
00:02:59 #5980 [Verbose] > #endif
00:02:59 #5981 [Verbose] >
00:02:59 #5982 [Verbose] > let format_exception x =
00:02:59 #5983 [Verbose] > #if !INTERACTIVE
00:02:59 #5984 [Verbose] > Sm.format_...
00:02:59 #5985 [Verbose] >
00:02:59 #5986 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:59 #5987 [Verbose] > #if !INTERACTIVE
00:02:59 #5988 [Verbose] > namespace Polyglot
00:02:59 #5989 [Verbose] > #endif
00:02:59 #5990 [Verbose] >
00:02:59 #5991 [Verbose] > module Common =
00:02:59 #5992 [Verbose] >
00:02:59 #5993 [Verbose] > #if !INTERACTIVE
00:02:59 #5994 [Verbose] > open Lib
00:02:59 #5995 [Verbose] > #endif
00:02:59 #5996 [Verbose] >
00:02:59 #5997 [Verbose] > let nl = System.Environment.NewLine
00:02:59 #5998 [Verbose] > let q = @""""
00:02:59 #5999 [Verbose] >
00:02:59 #6000 [Verbose] > let inline cons head tail = head :: tail
00:02:59 #6001 [Verbose] >
00:02:59 #6002 [Verbose] > /// ## memoize
00:02:59 #6003 [Verbose] >
00:02:59 #6004 [Verbose] > let inline memoize fn =
00:02:59 #6005 [Verbose] > let result = lazy fn ()
00:02:59 #6006 [Verbose] > fun () -> result.Value
00:02:59 #6007 [Verbose] >
00:02:59 #6008 [Verbose] > /// ## TraceLevel
00:02:59 #6009 [Verbose] >
00:02:59 #6010 [Verbose] > type TraceLevel =
00:02:59 #6011 [Verbose] > | Verbose
00:02:59 #6012 [Verbose] > | Debug
00:02:59 #6013 [Verbose] > | Info
00:02:59 #6014 [Verbose] > | Warning
00:02:59 #6015 [Verbose] > | Critical
00:02:59 #6016 [Verbose] >
00:02:59 #6017 [Verbose] > let inline getLocals () = ""
00:02:59 #6018 [Verbose] >
00:02:59 #6019 [Verbose] > let mutable traceEnabled = true
00:02:59 #6020 [Verbose] > let mutable traceCount = 0
00:02:59 #6021 [Verbose] > let mutable traceLevel = Verbose
00:02:59 #6022 [Verbose] > let mutable traceDump = false
00:02:59 #6023 [Verbose] >
00:02:59 #6024 [Verbose] > let testTraceLevel level =
00:02:59 #6025 [Verbose] > traceEnabled && level >= traceLevel
00:02:59 #6026 [Verbose] >
00:02:59 #6027 [Verbose] > /// ## traceRaw
00:02:59 #6028 [Verbose] >
00:02:59 #6029 [Verbose] > let rec traceRaw level fn =
00:02:59 #6030 [Verbose] > ...
00:02:59 #6031 [Verbose] >
00:02:59 #6032 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:59 #6033 [Verbose] > #if !INTERACTIVE
00:02:59 #6034 [Verbose] > namespace Polyglot
00:02:59 #6035 [Verbose] > #endif
00:02:59 #6036 [Verbose] >
00:02:59 #6037 [Verbose] > module CommonFSharp =
00:02:59 #6038 [Verbose] >
00:02:59 #6039 [Verbose] > open Common
00:02:59 #6040 [Verbose] >
00:02:59 #6041 [Verbose] > /// ## getUnionCaseName
00:02:59 #6042 [Verbose] >
00:02:59 #6043 [Verbose] > let inline getUnionCaseName<'T> (x: 'T) =
00:02:59 #6044 [Verbose] > match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
00:02:59 #6045 [Verbose] > | case, _ -> case.Name
00:02:59 #6046 [Verbose] >
00:02:59 #6047 [Verbose] >
00:02:59 #6048 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:59 #6049 [Verbose] > #if !INTERACTIVE
00:02:59 #6050 [Verbose] > namespace Polyglot
00:02:59 #6051 [Verbose] > #endif
00:02:59 #6052 [Verbose] >
00:02:59 #6053 [Verbose] > module Async =
00:02:59 #6054 [Verbose] >
00:02:59 #6055 [Verbose] > #if !INTERACTIVE
00:02:59 #6056 [Verbose] > open Lib
00:02:59 #6057 [Verbose] > #endif
00:02:59 #6058 [Verbose] >
00:02:59 #6059 [Verbose] > open Common
00:02:59 #6060 [Verbose] >
00:02:59 #6061 [Verbose] > /// ## choice
00:02:59 #6062 [Verbose] >
00:02:59 #6063 [Verbose] > let inline choice asyncs = async {
00:02:59 #6064 [Verbose] > let e = Event<_> ()
00:02:59 #6065 [Verbose] > use cts = new System.Threading.CancellationTokenSource ()
00:02:59 #6066 [Verbose] > let fn =
00:02:59 #6067 [Verbose] > asyncs
00:02:59 #6068 [Verbose] > |> Seq.map (fun a -> async {
00:02:59 #6069 [Verbose] > let! x = a
00:02:59 #6070 [Verbose] > e.Trigger x
00:02:59 #6071 [Verbose] > })
00:02:59 #6072 [Verbose] > |> Async.Parallel
00:02:59 #6073 [Verbose] > |> Async.Ignore
00:02:59 #6074 [Verbose] > Async.Start (fn, cts.Token)
00:02:59 #6075 [Verbose] > let! result = Async.AwaitEvent e.Publish
00:02:59 #6076 [Verbose] > cts.Cancel ()
00:02:59 #6077 [Verbose] > return result
00:02:59 #6078 [Verbose] > }
00:02:59 #6079 [Verbose] >
00:02:59 #6080 [Verbose] > /// ## map
00:02:59 #6081 [Verbose] >
00:02:59 #6082 [Verbose] > let inline map fn a = async {
00:02:59 #6083 [Verbose] > let! x = a
00:02:59 #6084 [Verbose] > return fn x
00:02:59 #6085 [Verbose] > }
00:02:59 #6086 [Verbose] >
00:02:59 #6087 [Verbose] > /// ## catch
00:02:59 #6088 [Verbose] >
00:02:59 #6089 [Verbose] > let inline catch a =
00:02:59 #6090 [Verbose] > ...
00:02:59 #6091 [Verbose] >
00:02:59 #6092 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:59 #6093 [Verbose] > #if !INTERACTIVE
00:02:59 #6094 [Verbose] > namespace Polyglot
00:02:59 #6095 [Verbose] > #endif
00:02:59 #6096 [Verbose] >
00:02:59 #6097 [Verbose] > module AsyncSeq =
00:02:59 #6098 [Verbose] >
00:02:59 #6099 [Verbose] > #if !INTERACTIVE
00:02:59 #6100 [Verbose] > open Lib
00:02:59 #6101 [Verbose] > #endif
00:02:59 #6102 [Verbose] >
00:02:59 #6103 [Verbose] > open Common
00:02:59 #6104 [Verbose] >
00:02:59 #6105 [Verbose] > /// ## subscribeEvent
00:02:59 #6106 [Verbose] >
00:02:59 #6107 [Verbose] > let inline subscribeEvent (event: IEvent<'H, 'A>) map =
00:02:59 #6108 [Verbose] > let observable = System.Reactive.Linq.Observable.FromEventPattern<'H,
00:02:59 #6109 [Verbose] > 'A>(event.AddHandler, event.RemoveHandler)
00:02:59 #6110 [Verbose] > System.Reactive.Linq.Observable.Select (observable, fun event -> map
00:02:59 #6111 [Verbose] > event.EventArgs)
00:02:59 #6112 [Verbose] > |> FSharp.Control.AsyncSeq.ofObservableBuffered
00:02:59 #6113 [Verbose] >
00:02:59 #6114 [Verbose] > let subscribeToken (token : System.Threading.CancellationToken) =
00:02:59 #6115 [Verbose] > let tcs = new System.Threading.Tasks.TaskCompletionSource ()
00:02:59 #6116 [Verbose] > System.Action tcs.SetResult |> token.Register |> ignore
00:02:59 #6117 [Verbose] > let start = System.DateTime.Now.Ticks
00:02:59 #6118 [Verbose] > FSharp.Control.A...
00:02:59 #6119 [Verbose] >
00:02:59 #6120 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:59 #6121 [Verbose] > #if !INTERACTIVE
00:02:59 #6122 [Verbose] > namespace Polyglot
00:02:59 #6123 [Verbose] > #endif
00:02:59 #6124 [Verbose] >
00:02:59 #6125 [Verbose] > module Runtime =
00:02:59 #6126 [Verbose] >
00:02:59 #6127 [Verbose] > #if !INTERACTIVE
00:02:59 #6128 [Verbose] > open Lib
00:02:59 #6129 [Verbose] > #endif
00:02:59 #6130 [Verbose] >
00:02:59 #6131 [Verbose] > open Common
00:02:59 #6132 [Verbose] >
00:02:59 #6133 [Verbose] > /// ## isWindows
00:02:59 #6134 [Verbose] >
00:02:59 #6135 [Verbose] > let isWindows =
00:02:59 #6136 [Verbose] > fun () ->
00:02:59 #6137 [Verbose] > System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
00:02:59 #6138 [Verbose] > System.Runtime.InteropServices.OSPlatform.Windows
00:02:59 #6139 [Verbose] > |> memoize
00:02:59 #6140 [Verbose] >
00:02:59 #6141 [Verbose] > /// ## getExecutableSuffix
00:02:59 #6142 [Verbose] >
00:02:59 #6143 [Verbose] > let inline getExecutableSuffix () =
00:02:59 #6144 [Verbose] > if isWindows ()
00:02:59 #6145 [Verbose] > then ".exe"
00:02:59 #6146 [Verbose] > else ""
00:02:59 #6147 [Verbose] >
00:02:59 #6148 [Verbose] > /// ## splitCommand
00:02:59 #6149 [Verbose] >
00:02:59 #6150 [Verbose] > type private CommandParseStep =
00:02:59 #6151 [Verbose] > | Start
00:02:59 #6152 [Verbose] > | Path of quoted: bool
00:02:59 #6153 [Verbose] > | Arguments
00:02:59 #6154 [Verbose] >
00:02:59 #6155 [Verbose] > let splitCommand (command: string) =
00:02:59 #6156 [Verbose] > let rec loop (path, args) chars step =
00:02:59 #6157 [Verbose] > match chars, step with
00:02:59 #6158 [Verbose] > | ('"' | '\'') ...
00:03:00 #6159 [Verbose] >
00:03:00 #6160 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:00 #6161 [Verbose] > #if !INTERACTIVE
00:03:00 #6162 [Verbose] > namespace Polyglot
00:03:00 #6163 [Verbose] > #endif
00:03:00 #6164 [Verbose] >
00:03:00 #6165 [Verbose] > module FileSystem =
00:03:00 #6166 [Verbose] >
00:03:00 #6167 [Verbose] > #if !INTERACTIVE
00:03:00 #6168 [Verbose] > open Lib
00:03:00 #6169 [Verbose] > #endif
00:03:00 #6170 [Verbose] >
00:03:00 #6171 [Verbose] > open Common
00:03:00 #6172 [Verbose] >
00:03:00 #6173 [Verbose] > /// ## Operators
00:03:00 #6174 [Verbose] >
00:03:00 #6175 [Verbose] > module Operators =
00:03:00 #6176 [Verbose] > let inline (</>) a b =
00:03:00 #6177 [Verbose] > System.IO.Path.Combine (a, b)
00:03:00 #6178 [Verbose] >
00:03:00 #6179 [Verbose] > open Operators
00:03:00 #6180 [Verbose] >
00:03:00 #6181 [Verbose] > /// ## createTempDirectory
00:03:00 #6182 [Verbose] >
00:03:00 #6183 [Verbose] > let inline createTempDirectory () =
00:03:00 #6184 [Verbose] > let tempFolder = File_system.create_temp_directory_name ()
00:03:00 #6185 [Verbose] > let result = System.IO.Directory.CreateDirectory tempFolder
00:03:00 #6186 [Verbose] >
00:03:00 #6187 [Verbose] > if not result.Exists then
00:03:00 #6188 [Verbose] > let getLocals () =
00:03:00 #6189 [Verbose] > $"tempFolder: {tempFolder} / result: {({|
00:03:00 #6190 [Verbose] > Exists = result.Exists
00:03:00 #6191 [Verbose] > CreationTime = result.CreationTime
00:03:00 #6192 [Verbose] > |})} {getLocals ()}"
00:03:00 #6193 [Verbose] >
00:03:00 #6194 [Verbose] > trace Debug ...
00:03:02 #6195 [Verbose] >
00:03:02 #6196 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:02 #6197 [Verbose] > #if !INTERACTIVE
00:03:02 #6198 [Verbose] > open Lib
00:03:02 #6199 [Verbose] > #endif
00:03:02 #6200 [Verbose] >
00:03:02 #6201 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:02 #6202 [Verbose] > open Common
00:03:02 #6203 [Verbose] >
00:03:02 #6204 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:02 #6205 [Verbose] > //// test
00:03:02 #6206 [Verbose] >
00:03:02 #6207 [Verbose] > open FileSystem.Operators
00:03:02 #6208 [Verbose] >
00:03:02 #6209 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:02 #6210 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:02 #6211 [Verbose] > │ ## isWindows │
00:03:02 #6212 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:02 #6213 [Verbose] >
00:03:02 #6214 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:02 #6215 [Verbose] > let isWindows =
00:03:02 #6216 [Verbose] > fun () ->
00:03:02 #6217 [Verbose] > System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
00:03:02 #6218 [Verbose] > System.Runtime.InteropServices.OSPlatform.Windows
00:03:02 #6219 [Verbose] > |> memoize
00:03:02 #6220 [Verbose] >
00:03:02 #6221 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:02 #6222 [Verbose] > //// test
00:03:02 #6223 [Verbose] >
00:03:02 #6224 [Verbose] > isWindows ()
00:03:02 #6225 [Verbose] >
00:03:02 #6226 [Verbose] > ╭─[ 66.15ms - return value ]───────────────────────────────────────────────────╮
00:03:02 #6227 [Verbose] > │ <div class="dni-plaintext"><pre>True</pre></div><style> │
00:03:02 #6228 [Verbose] > │ .dni-code-hint { │
00:03:02 #6229 [Verbose] > │ font-style: italic; │
00:03:02 #6230 [Verbose] > │ overflow: hidden; │
00:03:02 #6231 [Verbose] > │ white-space: nowrap; │
00:03:02 #6232 [Verbose] > │ } │
00:03:02 #6233 [Verbose] > │ .dni-treeview { │
00:03:02 #6234 [Verbose] > │ white-space: nowrap; │
00:03:02 #6235 [Verbose] > │ } │
00:03:02 #6236 [Verbose] > │ .dni-treeview td { │
00:03:02 #6237 [Verbose] > │ vertical-align: top; │
00:03:02 #6238 [Verbose] > │ text-align: start; │
00:03:02 #6239 [Verbose] > │ } │
00:03:02 #6240 [Verbose] > │ details.dni-treeview { │
00:03:02 #6241 [Verbose] > │ padding-left: 1em; │
00:03:02 #6242 [Verbose] > │ } │
00:03:02 #6243 [Verbose] > │ table td { │
00:03:02 #6244 [Verbose] > │ text-align: start; │
00:03:02 #6245 [Verbose] > │ } │
00:03:02 #6246 [Verbose] > │ table tr { │
00:03:02 #6247 [Verbose] > │ vertical-align: top; │
00:03:02 #6248 [Verbose] > │ margin: 0em 0px; │
00:03:02 #6249 [Verbose] > │ } │
00:03:02 #6250 [Verbose] > │ table tr td pre │
00:03:02 #6251 [Verbose] > │ { │
00:03:02 #6252 [Verbose] > │ vertical-align: top !important; │
00:03:02 #6253 [Verbose] > │ margin: 0em 0px !important; │
00:03:02 #6254 [Verbose] > │ } │
00:03:02 #6255 [Verbose] > │ table th { │
00:03:02 #6256 [Verbose] > │ text-align: start; │
00:03:02 #6257 [Verbose] > │ } │
00:03:02 #6258 [Verbose] > │ </style> │
00:03:02 #6259 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:02 #6260 [Verbose] >
00:03:02 #6261 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:02 #6262 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:02 #6263 [Verbose] > │ ## getExecutableSuffix │
00:03:02 #6264 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:02 #6265 [Verbose] >
00:03:02 #6266 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:02 #6267 [Verbose] > let inline getExecutableSuffix () =
00:03:02 #6268 [Verbose] > if isWindows ()
00:03:02 #6269 [Verbose] > then ".exe"
00:03:02 #6270 [Verbose] > else ""
00:03:02 #6271 [Verbose] >
00:03:02 #6272 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:02 #6273 [Verbose] > //// test
00:03:02 #6274 [Verbose] >
00:03:02 #6275 [Verbose] > getExecutableSuffix ()
00:03:02 #6276 [Verbose] >
00:03:02 #6277 [Verbose] > ╭─[ 11.70ms - return value ]───────────────────────────────────────────────────╮
00:03:02 #6278 [Verbose] > │ .exe │
00:03:02 #6279 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:02 #6280 [Verbose] >
00:03:02 #6281 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:02 #6282 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:02 #6283 [Verbose] > │ ## splitCommand │
00:03:02 #6284 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:02 #6285 [Verbose] >
00:03:02 #6286 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:02 #6287 [Verbose] > type private CommandParseStep =
00:03:02 #6288 [Verbose] > | Start
00:03:02 #6289 [Verbose] > | Path of quoted: bool
00:03:02 #6290 [Verbose] > | Arguments
00:03:02 #6291 [Verbose] >
00:03:02 #6292 [Verbose] > let splitCommand (command: string) =
00:03:02 #6293 [Verbose] > let rec loop (path, args) chars step =
00:03:02 #6294 [Verbose] > match chars, step with
00:03:02 #6295 [Verbose] > | ('"' | '\'') :: tail, _ when path = "" -> loop (path, args) tail (Path
00:03:02 #6296 [Verbose] > true)
00:03:02 #6297 [Verbose] > | ('"' | '\'') :: tail, Path true -> loop (path, args) tail (Path false)
00:03:02 #6298 [Verbose] > | ' ' :: tail, Path true -> loop ($"{path} ", args) tail (Path true)
00:03:02 #6299 [Verbose] > | ' ' :: tail, (Start | Path _) -> loop (path, args) tail Arguments
00:03:02 #6300 [Verbose] > | char :: tail, Arguments -> loop (path, $"{args}{char}") tail Arguments
00:03:02 #6301 [Verbose] > | char :: tail, _ -> loop ($"{path}{char}", args) tail step
00:03:02 #6302 [Verbose] > | _, _ -> path |> Sm.replace @"\" "/", args
00:03:02 #6303 [Verbose] > loop ("", "") (command |> Seq.toList) Start
00:03:02 #6304 [Verbose] >
00:03:02 #6305 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:02 #6306 [Verbose] > //// test
00:03:02 #6307 [Verbose] >
00:03:02 #6308 [Verbose] > splitCommand ""
00:03:02 #6309 [Verbose] > |> _assertEqual ("", "")
00:03:02 #6310 [Verbose] >
00:03:02 #6311 [Verbose] > splitCommand "/a/b/c"
00:03:02 #6312 [Verbose] > |> _assertEqual ("/a/b/c", "")
00:03:02 #6313 [Verbose] >
00:03:02 #6314 [Verbose] > splitCommand "cat file.txt"
00:03:02 #6315 [Verbose] > |> _assertEqual ("cat", "file.txt")
00:03:02 #6316 [Verbose] >
00:03:02 #6317 [Verbose] > splitCommand """..\..\file.exe file1.txt file2.txt"""
00:03:02 #6318 [Verbose] > |> _assertEqual ("../../file.exe", "file1.txt file2.txt")
00:03:02 #6319 [Verbose] >
00:03:02 #6320 [Verbose] > splitCommand @"c:\dir\file.exe ""file1.txt file2.txt"""
00:03:02 #6321 [Verbose] > |> _assertEqual ("c:/dir/file.exe", @"""file1.txt file2.txt""")
00:03:02 #6322 [Verbose] >
00:03:02 #6323 [Verbose] > splitCommand @"""..\..\dir name\file.exe"" ""file 1.txt"" file2.txt"
00:03:02 #6324 [Verbose] > |> _assertEqual ("../../dir name/file.exe", @"""file 1.txt"" file2.txt")
00:03:02 #6325 [Verbose] >
00:03:02 #6326 [Verbose] > splitCommand @"""..\..\file 1.exe"" -c \\""echo 1\\"""
00:03:02 #6327 [Verbose] > |> _assertEqual ("../../file 1.exe", @"-c \\""echo 1\\""")
00:03:02 #6328 [Verbose] >
00:03:02 #6329 [Verbose] > splitCommand @"..\..\file 1.exe -c \\""echo 1\\"""
00:03:02 #6330 [Verbose] > |> _assertEqual ("../../file", @"1.exe -c \\""echo 1\\""")
00:03:03 #6331 [Verbose] >
00:03:03 #6332 [Verbose] > ╭─[ 85.12ms - stdout ]─────────────────────────────────────────────────────────╮
00:03:03 #6333 [Verbose] > │ ( , ) │
00:03:03 #6334 [Verbose] > │ ( /a/b/c, ) │
00:03:03 #6335 [Verbose] > │ ( cat, file.txt ) │
00:03:03 #6336 [Verbose] > │ ( ../../file.exe, file1.txt file2.txt ) │
00:03:03 #6337 [Verbose] > │ ( c:/dir/file.exe, "file1.txt file2.txt" ) │
00:03:03 #6338 [Verbose] > │ ( ../../dir name/file.exe, "file 1.txt" file2.txt ) │
00:03:03 #6339 [Verbose] > │ ( ../../file 1.exe, -c \\"echo 1\\" ) │
00:03:03 #6340 [Verbose] > │ ( ../../file, 1.exe -c \\"echo 1\\" ) │
00:03:03 #6341 [Verbose] > │ │
00:03:03 #6342 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:03 #6343 [Verbose] >
00:03:03 #6344 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:03 #6345 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:03 #6346 [Verbose] > │ ## executeAsync │
00:03:03 #6347 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:03 #6348 [Verbose] >
00:03:03 #6349 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:03 #6350 [Verbose] > type ExecutionLine =
00:03:03 #6351 [Verbose] > {
00:03:03 #6352 [Verbose] > ProcessId : int
00:03:03 #6353 [Verbose] > Line : string
00:03:03 #6354 [Verbose] > Error : bool
00:03:03 #6355 [Verbose] > }
00:03:03 #6356 [Verbose] >
00:03:03 #6357 [Verbose] > type ExecutionOptions =
00:03:03 #6358 [Verbose] > {
00:03:03 #6359 [Verbose] > Command : string
00:03:03 #6360 [Verbose] > WorkingDirectory : string option
00:03:03 #6361 [Verbose] > CancellationToken : System.Threading.CancellationToken option
00:03:03 #6362 [Verbose] > OnLine : (ExecutionLine -> Async<unit>) option
00:03:03 #6363 [Verbose] > }
00:03:03 #6364 [Verbose] >
00:03:03 #6365 [Verbose] > let inline executeWithOptionsAsync (options : ExecutionOptions) = async {
00:03:03 #6366 [Verbose] > let fileName, arguments = options.Command |> splitCommand
00:03:03 #6367 [Verbose] > let workingDirectory = options.WorkingDirectory |> Option.defaultValue ""
00:03:03 #6368 [Verbose] >
00:03:03 #6369 [Verbose] > trace Debug (fun () -> $"executeAsync / options: {options}") getLocals
00:03:03 #6370 [Verbose] >
00:03:03 #6371 [Verbose] > let startInfo = System.Diagnostics.ProcessStartInfo (
00:03:03 #6372 [Verbose] > Arguments = arguments,
00:03:03 #6373 [Verbose] > CreateNoWindow = true,
00:03:03 #6374 [Verbose] > FileName = fileName,
00:03:03 #6375 [Verbose] > RedirectStandardError = true,
00:03:03 #6376 [Verbose] > RedirectStandardOutput = true,
00:03:03 #6377 [Verbose] > StandardOutputEncoding = System.Text.Encoding.UTF8,
00:03:03 #6378 [Verbose] > UseShellExecute = false,
00:03:03 #6379 [Verbose] > WorkingDirectory = workingDirectory
00:03:03 #6380 [Verbose] > )
00:03:03 #6381 [Verbose] >
00:03:03 #6382 [Verbose] > use proc = new System.Diagnostics.Process (StartInfo = startInfo)
00:03:03 #6383 [Verbose] > let output = System.Collections.Concurrent.ConcurrentStack<string> ()
00:03:03 #6384 [Verbose] >
00:03:03 #6385 [Verbose] > let inline event error (e: System.Diagnostics.DataReceivedEventArgs) = async
00:03:03 #6386 [Verbose] > {
00:03:03 #6387 [Verbose] > if e.Data <> null then
00:03:03 #6388 [Verbose] > match options.OnLine with
00:03:03 #6389 [Verbose] > | Some onLine ->
00:03:03 #6390 [Verbose] > do!
00:03:03 #6391 [Verbose] > onLine
00:03:03 #6392 [Verbose] > {
00:03:03 #6393 [Verbose] > ProcessId = proc.Id
00:03:03 #6394 [Verbose] > Line = e.Data
00:03:03 #6395 [Verbose] > Error = error
00:03:03 #6396 [Verbose] > }
00:03:03 #6397 [Verbose] > | None -> ()
00:03:03 #6398 [Verbose] >
00:03:03 #6399 [Verbose] > trace
00:03:03 #6400 [Verbose] > Verbose
00:03:03 #6401 [Verbose] > (fun () -> $"> {e.Data}")
00:03:03 #6402 [Verbose] > Common.getLocals
00:03:03 #6403 [Verbose] >
00:03:03 #6404 [Verbose] > output.Push
00:03:03 #6405 [Verbose] > $"{
00:03:03 #6406 [Verbose] > if error then '[['.ToString() else System.String.Empty
00:03:03 #6407 [Verbose] > }{
00:03:03 #6408 [Verbose] > e.Data
00:03:03 #6409 [Verbose] > }{
00:03:03 #6410 [Verbose] > if error then ']]'.ToString() else System.String.Empty
00:03:03 #6411 [Verbose] > }"
00:03:03 #6412 [Verbose] > }
00:03:03 #6413 [Verbose] >
00:03:03 #6414 [Verbose] > proc.OutputDataReceived.Add (event false >> Async.StartImmediate)
00:03:03 #6415 [Verbose] > proc.ErrorDataReceived.Add (event true >> Async.StartImmediate)
00:03:03 #6416 [Verbose] >
00:03:03 #6417 [Verbose] > if proc.Start () |> not
00:03:03 #6418 [Verbose] > then failwith $"executeAsync / proc.Start () error"
00:03:03 #6419 [Verbose] >
00:03:03 #6420 [Verbose] > proc.BeginErrorReadLine ()
00:03:03 #6421 [Verbose] > proc.BeginOutputReadLine ()
00:03:03 #6422 [Verbose] >
00:03:03 #6423 [Verbose] > let! ct =
00:03:03 #6424 [Verbose] > options.CancellationToken
00:03:03 #6425 [Verbose] > |> Option.defaultValue System.Threading.CancellationToken.None
00:03:03 #6426 [Verbose] > |> Async.mergeCancellationTokenWithDefaultAsync
00:03:03 #6427 [Verbose] >
00:03:03 #6428 [Verbose] > use reg = ct.Register (fun _ ->
00:03:03 #6429 [Verbose] > if not proc.HasExited then proc.Kill ()
00:03:03 #6430 [Verbose] > )
00:03:03 #6431 [Verbose] >
00:03:03 #6432 [Verbose] > let! exitCode = async {
00:03:03 #6433 [Verbose] > try
00:03:03 #6434 [Verbose] > do! proc.WaitForExitAsync ct |> Async.AwaitTask
00:03:03 #6435 [Verbose] > return proc.ExitCode
00:03:03 #6436 [Verbose] > with :? System.Threading.Tasks.TaskCanceledException as ex ->
00:03:03 #6437 [Verbose] > trace Warning (fun () -> $"executeAsync / WaitForExitAsync / ex: {ex
00:03:03 #6438 [Verbose] > |> Sm.format_exception}") getLocals
00:03:03 #6439 [Verbose] > ex |> Sm.format_exception |> output.Push
00:03:03 #6440 [Verbose] > return System.Int32.MinValue
00:03:03 #6441 [Verbose] > }
00:03:03 #6442 [Verbose] >
00:03:03 #6443 [Verbose] > let output = output |> Seq.rev |> Sm.concat "\n"
00:03:03 #6444 [Verbose] >
00:03:03 #6445 [Verbose] > trace Debug (fun () ->
00:03:03 #6446 [Verbose] > $"executeAsync / exitCode: {exitCode} / output.Length: {output.Length}"
00:03:03 #6447 [Verbose] > ) getLocals
00:03:03 #6448 [Verbose] >
00:03:03 #6449 [Verbose] > return exitCode, output
00:03:03 #6450 [Verbose] > }
00:03:03 #6451 [Verbose] >
00:03:03 #6452 [Verbose] > let inline executeAsync command =
00:03:03 #6453 [Verbose] > executeWithOptionsAsync
00:03:03 #6454 [Verbose] > {
00:03:03 #6455 [Verbose] > Command = command
00:03:03 #6456 [Verbose] > CancellationToken = None
00:03:03 #6457 [Verbose] > OnLine = None
00:03:03 #6458 [Verbose] > WorkingDirectory = None
00:03:03 #6459 [Verbose] > }
00:03:03 #6460 [Verbose] >
00:03:03 #6461 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:03 #6462 [Verbose] > //// test
00:03:03 #6463 [Verbose] >
00:03:03 #6464 [Verbose] > let tempFolder = FileSystem.createTempDirectory ()
00:03:03 #6465 [Verbose] > let fileName = "test.txt"
00:03:03 #6466 [Verbose] > let path = tempFolder </> fileName
00:03:03 #6467 [Verbose] >
00:03:03 #6468 [Verbose] > async {
00:03:03 #6469 [Verbose] > let! exitCode, result = executeAsync @$"pwsh -c ""Get-Content {path}"""
00:03:03 #6470 [Verbose] > exitCode |> _assertEqual 1
00:03:03 #6471 [Verbose] > result |> _stringContains "not exist"
00:03:03 #6472 [Verbose] >
00:03:03 #6473 [Verbose] > do! "0" |> FileSystem.writeAllTextAsync path
00:03:03 #6474 [Verbose] >
00:03:03 #6475 [Verbose] > return!
00:03:03 #6476 [Verbose] > executeWithOptionsAsync
00:03:03 #6477 [Verbose] > {
00:03:03 #6478 [Verbose] > Command = @$"pwsh -c ""Get-Content {fileName}"""
00:03:03 #6479 [Verbose] > CancellationToken = None
00:03:03 #6480 [Verbose] > OnLine = None
00:03:03 #6481 [Verbose] > WorkingDirectory = Some tempFolder
00:03:03 #6482 [Verbose] > }
00:03:03 #6483 [Verbose] >
00:03:03 #6484 [Verbose] > }
00:03:03 #6485 [Verbose] > |> Async.runWithTimeout 10000
00:03:03 #6486 [Verbose] > |> function
00:03:03 #6487 [Verbose] > | Some (exitCode, output) ->
00:03:03 #6488 [Verbose] > exitCode |> _assertEqual 0
00:03:03 #6489 [Verbose] > output |> _assertEqual "0"
00:03:03 #6490 [Verbose] > true
00:03:03 #6491 [Verbose] > | _ -> false
00:03:03 #6492 [Verbose] > |> _assertEqual true
00:03:05 #6493 [Verbose] >
00:03:05 #6494 [Verbose] > ╭─[ 1.67s - stdout ]───────────────────────────────────────────────────────────╮
00:03:05 #6495 [Verbose] > │ 00:00:00 #1 [Debug] executeAsync / options: { Command = │
00:03:05 #6496 [Verbose] > │ "pwsh -c "Get-Content │
00:03:05 #6497 [Verbose] > │ C:\Users\i574n\AppData\Local\Temp\dotnet-repl\20240330-1712-3076-7653-72fbb4 │
00:03:05 #6498 [Verbose] > │ 9dea96\test.txt"" │
00:03:05 #6499 [Verbose] > │ WorkingDirectory = None │
00:03:05 #6500 [Verbose] > │ CancellationToken = None │
00:03:05 #6501 [Verbose] > │ OnLine = None } │
00:03:05 #6502 [Verbose] > │ 00:00:00 #2 [Verbose] > Get-Content: Cannot find path │
00:03:05 #6503 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\dotnet-repl\20240330-1712-3076-7653-72fbb │
00:03:05 #6504 [Verbose] > │ 49dea96\test.txt' because it does not exist. │
00:03:05 #6505 [Verbose] > │ 00:00:00 #3 [Debug] executeAsync / exitCode: 1 / output.Length: 170 │
00:03:05 #6506 [Verbose] > │ 1 │
00:03:05 #6507 [Verbose] > │ [Get-Content: Cannot find path │
00:03:05 #6508 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\dotnet-repl\20240330-1712-3076-7653-72fbb │
00:03:05 #6509 [Verbose] > │ 49dea96\test.txt' because it does not exist.] │
00:03:05 #6510 [Verbose] > │ 00:00:00 #4 [Debug] executeAsync / options: { Command = "pwsh -c │
00:03:05 #6511 [Verbose] > │ "Get-Content test.txt"" │
00:03:05 #6512 [Verbose] > │ WorkingDirectory = │
00:03:05 #6513 [Verbose] > │ Some │
00:03:05 #6514 [Verbose] > │ │
00:03:05 #6515 [Verbose] > │ "C:\Users\i574n\AppData\Local\Temp\dotnet-repl\20240330-1712-3076-7653-72fbb │
00:03:05 #6516 [Verbose] > │ 49dea96" │
00:03:05 #6517 [Verbose] > │ CancellationToken = None │
00:03:05 #6518 [Verbose] > │ OnLine = None } │
00:03:05 #6519 [Verbose] > │ 00:00:01 #5 [Verbose] > 0 │
00:03:05 #6520 [Verbose] > │ 00:00:01 #6 [Debug] executeAsync / exitCode: 0 / output.Length: 1 │
00:03:05 #6521 [Verbose] > │ 0 │
00:03:05 #6522 [Verbose] > │ 0 │
00:03:05 #6523 [Verbose] > │ True │
00:03:05 #6524 [Verbose] > │ │
00:03:05 #6525 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:05 #6526 [Verbose] >
00:03:05 #6527 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:05 #6528 [Verbose] > //// test
00:03:05 #6529 [Verbose] >
00:03:05 #6530 [Verbose] > let tempFolder = FileSystem.createTempDirectory ()
00:03:05 #6531 [Verbose] > let path = tempFolder </> "test.txt"
00:03:05 #6532 [Verbose] >
00:03:05 #6533 [Verbose] > let command = @$"pwsh -c ""Get-Content {path}"""
00:03:05 #6534 [Verbose] >
00:03:05 #6535 [Verbose] > async {
00:03:05 #6536 [Verbose] > do! "0" |> FileSystem.writeAllTextAsync path
00:03:05 #6537 [Verbose] > let cts = new System.Threading.CancellationTokenSource ()
00:03:05 #6538 [Verbose] > trace Debug (fun () -> "1") getLocals
00:03:05 #6539 [Verbose] > let! result =
00:03:05 #6540 [Verbose] > executeWithOptionsAsync
00:03:05 #6541 [Verbose] > {
00:03:05 #6542 [Verbose] > Command = command
00:03:05 #6543 [Verbose] > CancellationToken = Some cts.Token
00:03:05 #6544 [Verbose] > OnLine = None
00:03:05 #6545 [Verbose] > WorkingDirectory = None
00:03:05 #6546 [Verbose] > }
00:03:05 #6547 [Verbose] > |> Async.StartChild
00:03:05 #6548 [Verbose] > trace Debug (fun () -> "2") getLocals
00:03:05 #6549 [Verbose] > do! Async.Sleep 100
00:03:05 #6550 [Verbose] > trace Debug (fun () -> "3") getLocals
00:03:05 #6551 [Verbose] > cts.Cancel ()
00:03:05 #6552 [Verbose] > trace Debug (fun () -> "4") getLocals
00:03:05 #6553 [Verbose] > let! exitCode, output = result
00:03:05 #6554 [Verbose] > trace Debug (fun () -> "5") getLocals
00:03:05 #6555 [Verbose] > return exitCode, output
00:03:05 #6556 [Verbose] > }
00:03:05 #6557 [Verbose] > |> Async.runWithTimeout 10000
00:03:05 #6558 [Verbose] > |> function
00:03:05 #6559 [Verbose] > | Some (exitCode, output) ->
00:03:05 #6560 [Verbose] > exitCode |> _assertEqual -2147483648
00:03:05 #6561 [Verbose] > output |> _assertEqual "System.Threading.Tasks.TaskCanceledException: A
00:03:05 #6562 [Verbose] > task was canceled."
00:03:05 #6563 [Verbose] >
00:03:05 #6564 [Verbose] > true
00:03:05 #6565 [Verbose] > | _ -> false
00:03:05 #6566 [Verbose] > |> _assertEqual true
00:03:05 #6567 [Verbose] >
00:03:05 #6568 [Verbose] > ╭─[ 552.52ms - stdout ]────────────────────────────────────────────────────────╮
00:03:05 #6569 [Verbose] > │ 00:00:01 #7 [Debug] 1 │
00:03:05 #6570 [Verbose] > │ 00:00:01 #9 [Debug] 2 │
00:03:05 #6571 [Verbose] > │ 00:00:01 #8 [Debug] executeAsync / options: { Command = │
00:03:05 #6572 [Verbose] > │ "pwsh -c "Get-Content │
00:03:05 #6573 [Verbose] > │ C:\Users\i574n\AppData\Local\Temp\dotnet-repl\20240330-1712-3236-3686-34469a │
00:03:05 #6574 [Verbose] > │ 235ae6\test.txt"" │
00:03:05 #6575 [Verbose] > │ WorkingDirectory = None │
00:03:05 #6576 [Verbose] > │ CancellationToken = Some System.Threading.CancellationToken │
00:03:05 #6577 [Verbose] > │ OnLine = None } │
00:03:05 #6578 [Verbose] > │ 00:00:01 #10 [Debug] 3 │
00:03:05 #6579 [Verbose] > │ 00:00:01 #11 [Debug] 4 │
00:03:05 #6580 [Verbose] > │ 00:00:01 #12 [Warning] executeAsync / WaitForExitAsync / ex: │
00:03:05 #6581 [Verbose] > │ System.Threading.Tasks.TaskCanceledException: A task was canceled. │
00:03:05 #6582 [Verbose] > │ 00:00:01 #13 [Debug] executeAsync / exitCode: -2147483648 / output.Length: │
00:03:05 #6583 [Verbose] > │ 66 │
00:03:05 #6584 [Verbose] > │ 00:00:01 #14 [Debug] 5 │
00:03:05 #6585 [Verbose] > │ -2147483648 │
00:03:05 #6586 [Verbose] > │ System.Threading.Tasks.TaskCanceledException: A task was canceled. │
00:03:05 #6587 [Verbose] > │ True │
00:03:05 #6588 [Verbose] > │ │
00:03:05 #6589 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:05 #6590 [Verbose] >
00:03:05 #6591 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:05 #6592 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:05 #6593 [Verbose] > │ ## splitArgs │
00:03:05 #6594 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:05 #6595 [Verbose] >
00:03:05 #6596 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:05 #6597 [Verbose] > let inline splitArgs commandLine =
00:03:05 #6598 [Verbose] > commandLine
00:03:05 #6599 [Verbose] > |> System.CommandLine.Parsing.CommandLineStringSplitter.Instance.Split
00:03:05 #6600 [Verbose] >
00:03:05 #6601 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:05 #6602 [Verbose] > //// test
00:03:05 #6603 [Verbose] >
00:03:05 #6604 [Verbose] > """a b "c d" e"""
00:03:05 #6605 [Verbose] > |> splitArgs
00:03:05 #6606 [Verbose] > |> Seq.toArray
00:03:05 #6607 [Verbose] > |> _assertEqual [[| "a"; "b"; "c d"; "e" |]]
00:03:05 #6608 [Verbose] >
00:03:05 #6609 [Verbose] > ╭─[ 26.93ms - stdout ]─────────────────────────────────────────────────────────╮
00:03:05 #6610 [Verbose] > │ [ a, b, c d, e ] │
00:03:05 #6611 [Verbose] > │ │
00:03:05 #6612 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:05 #6613 [Verbose] >
00:03:05 #6614 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:05 #6615 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:05 #6616 [Verbose] > │ ## parseArgs │
00:03:05 #6617 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:05 #6618 [Verbose] >
00:03:05 #6619 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:05 #6620 [Verbose] > let inline parseArgs<'T when 'T :> Argu.IArgParserTemplate> args =
00:03:05 #6621 [Verbose] > let assemblyName =
00:03:05 #6622 [Verbose] > System.Reflection.Assembly.GetEntryAssembly().GetName().Name
00:03:05 #6623 [Verbose] > let errorHandler : Argu.IExiter =
00:03:05 #6624 [Verbose] > if [[ "Microsoft.DotNet.Interactive.App"; "dotnet-repl" ]] |>
00:03:05 #6625 [Verbose] > List.contains assemblyName
00:03:05 #6626 [Verbose] > then Argu.ExceptionExiter ()
00:03:05 #6627 [Verbose] > else Argu.ProcessExiter (function Argu.ErrorCode.HelpText -> None | _ ->
00:03:05 #6628 [Verbose] > Some System.ConsoleColor.Red)
00:03:05 #6629 [Verbose] >
00:03:05 #6630 [Verbose] > let parser =
00:03:05 #6631 [Verbose] > Argu.ArgumentParser.Create<'T> (
00:03:05 #6632 [Verbose] > programName = $"{assemblyName}{getExecutableSuffix ()}",
00:03:05 #6633 [Verbose] > errorHandler = errorHandler
00:03:05 #6634 [Verbose] > )
00:03:05 #6635 [Verbose] >
00:03:05 #6636 [Verbose] > parser.ParseCommandLine args
00:03:05 #6637 [Verbose] >
00:03:05 #6638 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:05 #6639 [Verbose] > //// test
00:03:05 #6640 [Verbose] >
00:03:05 #6641 [Verbose] > [[<RequireQualifiedAccess>]]
00:03:05 #6642 [Verbose] > type Arguments =
00:03:05 #6643 [Verbose] > | [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.ExactlyOnce;
00:03:05 #6644 [Verbose] > Argu.ArguAttributes.Last>]]
00:03:05 #6645 [Verbose] > Paths of paths : string list
00:03:05 #6646 [Verbose] >
00:03:05 #6647 [Verbose] > interface Argu.IArgParserTemplate with
00:03:05 #6648 [Verbose] > member s.Usage =
00:03:05 #6649 [Verbose] > match s with
00:03:05 #6650 [Verbose] > | Paths _ -> nameof Paths
00:03:05 #6651 [Verbose] >
00:03:05 #6652 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:05 #6653 [Verbose] > //// test
00:03:05 #6654 [Verbose] >
00:03:05 #6655 [Verbose] > Argu.ArgumentParser.Create<Arguments>().PrintUsage ()
00:03:05 #6656 [Verbose] >
00:03:05 #6657 [Verbose] > ╭─[ 82.00ms - return value ]───────────────────────────────────────────────────╮
00:03:05 #6658 [Verbose] > │ USAGE: dotnet-repl [--help] <paths>... │
00:03:05 #6659 [Verbose] > │ │
00:03:05 #6660 [Verbose] > │ PATHS: │
00:03:05 #6661 [Verbose] > │ │
00:03:05 #6662 [Verbose] > │ <paths>... Paths │
00:03:05 #6663 [Verbose] > │ │
00:03:05 #6664 [Verbose] > │ OPTIONS: │
00:03:05 #6665 [Verbose] > │ │
00:03:05 #6666 [Verbose] > │ --help display this list of options. │
00:03:05 #6667 [Verbose] > │ │
00:03:05 #6668 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:05 #6669 [Verbose] >
00:03:05 #6670 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:05 #6671 [Verbose] > //// test
00:03:05 #6672 [Verbose] >
00:03:05 #6673 [Verbose] > fun () -> parseArgs<Arguments> [[||]] |> ignore
00:03:05 #6674 [Verbose] > |> _throwsC (fun ex _ ->
00:03:05 #6675 [Verbose] > Sm.format_exception ex
00:03:05 #6676 [Verbose] > |> _stringContains "Argu.ArguParseException: ERROR: missing parameter
00:03:05 #6677 [Verbose] > '<paths>...'."
00:03:05 #6678 [Verbose] > )
00:03:06 #6679 [Verbose] >
00:03:06 #6680 [Verbose] > ╭─[ 62.61ms - stdout ]─────────────────────────────────────────────────────────╮
00:03:06 #6681 [Verbose] > │ FSI_0035+it@3-216 │
00:03:06 #6682 [Verbose] > │ Argu.ArguParseException: ERROR: missing parameter '<paths>...'. │
00:03:06 #6683 [Verbose] > │ USAGE: dotnet-repl.exe [--help] <paths>... │
00:03:06 #6684 [Verbose] > │ │
00:03:06 #6685 [Verbose] > │ PATHS: │
00:03:06 #6686 [Verbose] > │ │
00:03:06 #6687 [Verbose] > │ <paths>... Paths │
00:03:06 #6688 [Verbose] > │ │
00:03:06 #6689 [Verbose] > │ OPTIONS: │
00:03:06 #6690 [Verbose] > │ │
00:03:06 #6691 [Verbose] > │ --help display this list of options. │
00:03:06 #6692 [Verbose] > │ │
00:03:06 #6693 [Verbose] > │ │
00:03:06 #6694 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:06 #6695 [Verbose] >
00:03:06 #6696 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:06 #6697 [Verbose] > let inline parseAllArgs<'T when 'T :> Argu.IArgParserTemplate> args =
00:03:06 #6698 [Verbose] > args
00:03:06 #6699 [Verbose] > |> parseArgs<'T>
00:03:06 #6700 [Verbose] > |> fun results -> results.GetAllResults ()
00:03:06 #6701 [Verbose] >
00:03:06 #6702 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:06 #6703 [Verbose] > //// test
00:03:06 #6704 [Verbose] >
00:03:06 #6705 [Verbose] > [[<RequireQualifiedAccess>]]
00:03:06 #6706 [Verbose] > type Arguments =
00:03:06 #6707 [Verbose] > | [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.ExactlyOnce;
00:03:06 #6708 [Verbose] > Argu.ArguAttributes.Last>]]
00:03:06 #6709 [Verbose] > Paths of paths : string list
00:03:06 #6710 [Verbose] >
00:03:06 #6711 [Verbose] > interface Argu.IArgParserTemplate with
00:03:06 #6712 [Verbose] > member s.Usage =
00:03:06 #6713 [Verbose] > match s with
00:03:06 #6714 [Verbose] > | Paths _ -> nameof Paths
00:03:06 #6715 [Verbose] >
00:03:06 #6716 [Verbose] > parseAllArgs<Arguments> [[| "a b"; "c" |]]
00:03:06 #6717 [Verbose] > |> _assertEqual [[ Arguments.Paths [[ "a b"; "c" ]] ]]
00:03:06 #6718 [Verbose] >
00:03:06 #6719 [Verbose] > ╭─[ 95.79ms - stdout ]─────────────────────────────────────────────────────────╮
00:03:06 #6720 [Verbose] > │ FSharpList<Arguments> │
00:03:06 #6721 [Verbose] > │ - paths: [ a b, c ] │
00:03:06 #6722 [Verbose] > │ │
00:03:06 #6723 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:06 #6724 [Verbose] >
00:03:06 #6725 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:06 #6726 [Verbose] > let inline parseArgsMap<'T when 'T :> Argu.IArgParserTemplate> args =
00:03:06 #6727 [Verbose] > args
00:03:06 #6728 [Verbose] > |> parseAllArgs<'T>
00:03:06 #6729 [Verbose] > |> List.groupBy CommonFSharp.getUnionCaseName<'T>
00:03:06 #6730 [Verbose] > |> Map.ofList
00:03:06 #6731 [Verbose] >
00:03:06 #6732 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:06 #6733 [Verbose] > //// test
00:03:06 #6734 [Verbose] >
00:03:06 #6735 [Verbose] > parseArgsMap<Arguments> [[| "a b"; "c" |]]
00:03:06 #6736 [Verbose] > |> _assertEqual (
00:03:06 #6737 [Verbose] > [[ nameof Arguments.Paths, [[ Arguments.Paths [[ "a b"; "c" ]] ]] ]]
00:03:06 #6738 [Verbose] > |> Map.ofList
00:03:06 #6739 [Verbose] > )
00:03:06 #6740 [Verbose] >
00:03:06 #6741 [Verbose] > ╭─[ 60.97ms - stdout ]─────────────────────────────────────────────────────────╮
00:03:06 #6742 [Verbose] > │ FSharpMap<String,FSharpList<Arguments>> │
00:03:06 #6743 [Verbose] > │ - Key: Paths │
00:03:06 #6744 [Verbose] > │ Value: FSharpList<Arguments> │
00:03:06 #6745 [Verbose] > │ - paths: [ a b, c ] │
00:03:06 #6746 [Verbose] > │ │
00:03:06 #6747 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:07 #6748 [Verbose] > [NbConvertApp] Converting notebook Runtime.dib.ipynb to html
00:03:07 #6749 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:03:07 #6750 [Verbose] > validate(nb)
00:03:08 #6751 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:03:08 #6752 [Verbose] > return _pygments_highlight(
00:03:08 #6753 [Verbose] > [NbConvertApp] Writing 340995 bytes to Runtime.dib.html
00:03:09 #6754 [Debug] executeAsync / exitCode: 0 / output.Length: 39245
00:03:09 #6755 [Debug] main / executeCommand / exitCode: 0
00:03:09 #6756 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 Toml.dib -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:03:11 #6757 [Verbose] >
00:03:11 #6758 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:11 #6759 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:11 #6760 [Verbose] > │ # Toml (Polyglot) │
00:03:11 #6761 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:11 #6762 [Verbose] >
00:03:11 #6763 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:11 #6764 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib
00:03:11 #6765 [Verbose] > #!import ../../lib/fsharp/Testing.dib
00:03:11 #6766 [Verbose] >
00:03:11 #6767 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:11 #6768 [Verbose] > #r
00:03:11 #6769 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
00:03:11 #6770 [Verbose] > spNetCore.Html.Abstractions.dll"
00:03:11 #6771 [Verbose] > #r
00:03:11 #6772 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:03:11 #6773 [Verbose] > otNet.Interactive.dll"
00:03:11 #6774 [Verbose] > #r
00:03:11 #6775 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:03:11 #6776 [Verbose] > otNet.Interactive.FSharp.dll"
00:03:11 #6777 [Verbose] > #r
00:03:11 #6778 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:03:11 #6779 [Verbose] > otNet.Interactive.Formatting.dll"
00:03:11 #6780 [Verbose] > open System
00:03:11 #6781 [Verbose] > open System.IO
00:03:11 #6782 [Verbose] > open System.Text
00:03:11 #6783 [Verbose] > open Microsoft.DotNet.Interactive.Formatting
00:03:14 #6784 [Verbose] >
00:03:14 #6785 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:14 #6786 [Verbose] > #r
00:03:14 #6787 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:03:14 #6788 [Verbose] > otNet.Interactive.FSharp.dll"
00:03:14 #6789 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
00:03:14 #6790 [Verbose] > #r
00:03:14 #6791 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:03:14 #6792 [Verbose] > otNet.Interactive.dll"
00:03:14 #6793 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel
00:03:14 #6794 [Verbose] >
00:03:14 #6795 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:14 #6796 [Verbose] > //// test
00:03:14 #6797 [Verbose] >
00:03:14 #6798 [Verbose] > Formatter.ListExpansionLimit <- 100
00:03:15 #6799 [Verbose] >
00:03:15 #6800 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:15 #6801 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
00:03:15 #6802 [Verbose] >
00:03:15 #6803 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:15 #6804 [Verbose] > //// test
00:03:15 #6805 [Verbose] >
00:03:15 #6806 [Verbose] > type AssertExceptionFormatter (ex) =
00:03:15 #6807 [Verbose] > member _.Text =
00:03:15 #6808 [Verbose] > ex.ToString()
00:03:15 #6809 [Verbose] > .Replace("32m", "<span style=\"color: green;\">")
00:03:15 #6810 [Verbose] > .Replace("36m", "</span>")
00:03:15 #6811 [Verbose] > .Replace("31m", "<span style=\"color: red;\">")
00:03:15 #6812 [Verbose] > .Replace("\n", "<br/>\n")
00:03:15 #6813 [Verbose] >
00:03:15 #6814 [Verbose] >
00:03:15 #6815 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :
00:03:15 #6816 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")
00:03:15 #6817 [Verbose] >
00:03:15 #6818 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:15 #6819 [Verbose] > //// test
00:03:15 #6820 [Verbose] >
00:03:15 #6821 [Verbose] > let inline __expect fn log expected actual =
00:03:15 #6822 [Verbose] > if log then printfn $"{actual.ToDisplayString ()}"
00:03:15 #6823 [Verbose] > try
00:03:15 #6824 [Verbose] > "Testing.__expect" |> fn actual expected
00:03:15 #6825 [Verbose] > with :? Expecto.AssertException as ex ->
00:03:15 #6826 [Verbose] > AssertExceptionFormatter(ex).Display () |> ignore
00:03:15 #6827 [Verbose] > failwith (ex.GetType().FullName)
00:03:15 #6828 [Verbose] >
00:03:15 #6829 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log
00:03:15 #6830 [Verbose] > expected actual
00:03:15 #6831 [Verbose] > let inline _contains expected actual = __contains true expected actual
00:03:15 #6832 [Verbose] >
00:03:15 #6833 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
00:03:15 #6834 [Verbose] > expected actual
00:03:15 #6835 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual
00:03:15 #6836 [Verbose] >
00:03:15 #6837 [Verbose] > let inline __isGreaterThan log expected actual = __expect
00:03:15 #6838 [Verbose] > Expecto.Expect.isGreaterThan log ex...
00:03:16 #6839 [Verbose] >
00:03:16 #6840 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:16 #6841 [Verbose] > //// test
00:03:16 #6842 [Verbose] >
00:03:16 #6843 [Verbose] > let inline __isBetween log a b actual =
00:03:16 #6844 [Verbose] > let inline isBetween actual (a, b) _ =
00:03:16 #6845 [Verbose] > __isGreaterThanOrEqual log a actual
00:03:16 #6846 [Verbose] > __isLessThanOrEqual log b actual
00:03:16 #6847 [Verbose] > __expect isBetween log (a, b) actual
00:03:16 #6848 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual
00:03:16 #6849 [Verbose] >
00:03:16 #6850 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:16 #6851 [Verbose] > #r @"../../../../../../../.nuget/packages/tomlyn/0.17.0/lib/net7.0/Tomlyn.dll"
00:03:16 #6852 [Verbose] >
00:03:16 #6853 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:16 #6854 [Verbose] > #!import ../../lib/spiral/common.fsx
00:03:16 #6855 [Verbose] > #!import ../../lib/spiral/sm.fsx
00:03:16 #6856 [Verbose] > #!import ../../lib/spiral/date_time.fsx
00:03:16 #6857 [Verbose] > #!import ../../lib/spiral/file_system.fsx
00:03:16 #6858 [Verbose] > #!import ../../lib/spiral/lib.fsx
00:03:16 #6859 [Verbose] > #!import ../../lib/fsharp/Common.fs
00:03:16 #6860 [Verbose] >
00:03:16 #6861 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:16 #6862 [Verbose] > type [[<Struct>]] US0 =
00:03:16 #6863 [Verbose] > | US0_0
00:03:16 #6864 [Verbose] > | US0_1
00:03:16 #6865 [Verbose] > and [[<Struct>]] US1 =
00:03:16 #6866 [Verbose] > | US1_0
00:03:16 #6867 [Verbose] > | US1_1 of f1_0 : US0
00:03:16 #6868 [Verbose] > let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
00:03:16 #6869 [Verbose] > v0
00:03:16 #6870 [Verbose] > and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
00:03:16 #6871 [Verbose] > let mutable result = None
00:03:16 #6872 [Verbose] > #if FABLE_COMPILER_RUST && !WASM
00:03:16 #6873 [Verbose] > let v1 : (unit -> unit) = method0(v0)
00:03:16 #6874 [Verbose] > let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
00:03:16 #6875 [Verbose] > () = Fable.Core.RustInterop.emitRustExpr () "v1()" }
00:03:16 #6876 [Verbose] > v2
00:03:16 #6877 [Verbose] > #endif
00:03:16 #6878 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:03:16 #6879 [Verbose] > let v3 : (unit -> unit) = method0(v0)
00:03:16 #6880 [Verbose] > let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
00:03:16 #6881 [Verbose] > () = Fable.Core.RustInterop.emitRustExpr () "v3()" }
00:03:16 #6882 [Verbose] > v4
00:03:16 #6883 [Verbose] > #endif
00:03:16 #6884 [Verbose] > #if !FABLE_COMPILER && !F...
00:03:16 #6885 [Verbose] >
00:03:16 #6886 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:16 #6887 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}
00:03:16 #6888 [Verbose] > and Mut1 = {mutable l0 : int32}
00:03:16 #6889 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =
00:03:16 #6890 [Verbose] > let v2 : bool = v1.Contains v0
00:03:16 #6891 [Verbose] > v2
00:03:16 #6892 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =
00:03:16 #6893 [Verbose] > closure1(v0)
00:03:16 #6894 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =
00:03:16 #6895 [Verbose] > let v2 : bool = v1.EndsWith v0
00:03:16 #6896 [Verbose] > v2
00:03:16 #6897 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =
00:03:16 #6898 [Verbose] > closure3(v0)
00:03:16 #6899 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
00:03:16 #6900 [Verbose] > let v3 : string = v2.PadLeft (v0, v1)
00:03:16 #6901 [Verbose] > v3
00:03:16 #6902 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =
00:03:16 #6903 [Verbose] > closure6(v0, v1)
00:03:16 #6904 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =
00:03:16 #6905 [Verbose] > closure5(v0)
00:03:16 #6906 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =
00:03:16 #6907 [Verbose] > let v2 : stri...
00:03:16 #6908 [Verbose] >
00:03:16 #6909 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:16 #6910 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
00:03:16 #6911 [Verbose] > let v2 : (System.Guid -> string) = _.ToString()
00:03:16 #6912 [Verbose] > let v3 : string = v2 v0
00:03:16 #6913 [Verbose] > let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
00:03:16 #6914 [Verbose] > let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
00:03:16 #6915 [Verbose] > v5
00:03:16 #6916 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
00:03:16 #6917 [Verbose] > closure1(v0)
00:03:16 #6918 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =
00:03:16 #6919 [Verbose] > let v3 : string = v2.Replace (v0, v1)
00:03:16 #6920 [Verbose] > v3
00:03:16 #6921 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =
00:03:16 #6922 [Verbose] > closure5(v0, v1)
00:03:16 #6923 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =
00:03:16 #6924 [Verbose] > closure4(v0)
00:03:16 #6925 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =
00:03:16 #6926 [Verbose] > closure3()
00:03:16 #6927 [Verbose] > and closure2 (...
00:03:17 #6928 [Verbose] >
00:03:17 #6929 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:17 #6930 [Verbose] > type [[<Struct>]] US0 =
00:03:17 #6931 [Verbose] > | US0_0
00:03:17 #6932 [Verbose] > | US0_1
00:03:17 #6933 [Verbose] > | US0_2
00:03:17 #6934 [Verbose] > and [[<Struct>]] US1 =
00:03:17 #6935 [Verbose] > | US1_0 of f0_0 : US0
00:03:17 #6936 [Verbose] > | US1_1 of f1_0 : US0
00:03:17 #6937 [Verbose] > let rec closure0 () () : string =
00:03:17 #6938 [Verbose] > let mutable result = None
00:03:17 #6939 [Verbose] > #if FABLE_COMPILER_RUST && !WASM
00:03:17 #6940 [Verbose] > let v0 : US0 = US0_1
00:03:17 #6941 [Verbose] > let v1 : US1 = US1_1(v0)
00:03:17 #6942 [Verbose] > let v2 : string = $"create_temp_directory_name target: {v1}"
00:03:17 #6943 [Verbose] > let v3 : string = failwith<string> v2
00:03:17 #6944 [Verbose] > v3
00:03:17 #6945 [Verbose] > #endif
00:03:17 #6946 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:03:17 #6947 [Verbose] > let v4 : US0 = US0_2
00:03:17 #6948 [Verbose] > let v5 : US1 = US1_1(v4)
00:03:17 #6949 [Verbose] > let v6 : string = $"create_temp_directory_name target: {v5}"
00:03:17 #6950 [Verbose] > let v7 : string = failwith<string> v6
00:03:17 #6951 [Verbose] > v7
00:03:17 #6952 [Verbose] > #endif
00:03:17 #6953 [Verbose] > #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM
00:03:17 #6954 [Verbose] > let v8 : string = System.Reflection.Assembly.GetEntryAssembly()...
00:03:17 #6955 [Verbose] >
00:03:17 #6956 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:17 #6957 [Verbose] > #if !WASM && !FABLE_COMPILER
00:03:17 #6958 [Verbose] > module Date_time =
00:03:17 #6959 [Verbose] > let new_guid_from_date_time x =
00:03:17 #6960 [Verbose] > #if !INTERACTIVE
00:03:17 #6961 [Verbose] > Date_time.new_guid_from_date_time x
00:03:17 #6962 [Verbose] > #else
00:03:17 #6963 [Verbose] > new_guid_from_date_time x
00:03:17 #6964 [Verbose] > #endif
00:03:17 #6965 [Verbose] > #endif
00:03:17 #6966 [Verbose] >
00:03:17 #6967 [Verbose] > module Sm =
00:03:17 #6968 [Verbose] > let concat x =
00:03:17 #6969 [Verbose] > #if !INTERACTIVE
00:03:17 #6970 [Verbose] > Sm.concat x
00:03:17 #6971 [Verbose] > #else
00:03:17 #6972 [Verbose] > concat x
00:03:17 #6973 [Verbose] > #endif
00:03:17 #6974 [Verbose] >
00:03:17 #6975 [Verbose] > let contains x =
00:03:17 #6976 [Verbose] > #if !INTERACTIVE
00:03:17 #6977 [Verbose] > Sm.contains x
00:03:17 #6978 [Verbose] > #else
00:03:17 #6979 [Verbose] > contains x
00:03:17 #6980 [Verbose] > #endif
00:03:17 #6981 [Verbose] >
00:03:17 #6982 [Verbose] > let ellipsis x =
00:03:17 #6983 [Verbose] > #if !INTERACTIVE
00:03:17 #6984 [Verbose] > Sm.ellipsis x
00:03:17 #6985 [Verbose] > #else
00:03:17 #6986 [Verbose] > ellipsis x
00:03:17 #6987 [Verbose] > #endif
00:03:17 #6988 [Verbose] >
00:03:17 #6989 [Verbose] > let ellipsis_end x =
00:03:17 #6990 [Verbose] > #if !INTERACTIVE
00:03:17 #6991 [Verbose] > Sm.ellipsis_end x
00:03:17 #6992 [Verbose] > #else
00:03:17 #6993 [Verbose] > ellipsis_end x
00:03:17 #6994 [Verbose] > #endif
00:03:17 #6995 [Verbose] >
00:03:17 #6996 [Verbose] > let ends_with x =
00:03:17 #6997 [Verbose] > #if !INTERACTIVE
00:03:17 #6998 [Verbose] > Sm.ends_with x
00:03:17 #6999 [Verbose] > #else
00:03:17 #7000 [Verbose] > ends_with x
00:03:17 #7001 [Verbose] > #endif
00:03:17 #7002 [Verbose] >
00:03:17 #7003 [Verbose] > let format_exception x =
00:03:17 #7004 [Verbose] > #if !INTERACTIVE
00:03:17 #7005 [Verbose] > Sm.format_...
00:03:17 #7006 [Verbose] >
00:03:17 #7007 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:17 #7008 [Verbose] > #if !INTERACTIVE
00:03:17 #7009 [Verbose] > namespace Polyglot
00:03:17 #7010 [Verbose] > #endif
00:03:17 #7011 [Verbose] >
00:03:17 #7012 [Verbose] > module Common =
00:03:17 #7013 [Verbose] >
00:03:17 #7014 [Verbose] > #if !INTERACTIVE
00:03:17 #7015 [Verbose] > open Lib
00:03:17 #7016 [Verbose] > #endif
00:03:17 #7017 [Verbose] >
00:03:17 #7018 [Verbose] > let nl = System.Environment.NewLine
00:03:17 #7019 [Verbose] > let q = @""""
00:03:17 #7020 [Verbose] >
00:03:17 #7021 [Verbose] > let inline cons head tail = head :: tail
00:03:17 #7022 [Verbose] >
00:03:17 #7023 [Verbose] > /// ## memoize
00:03:17 #7024 [Verbose] >
00:03:17 #7025 [Verbose] > let inline memoize fn =
00:03:17 #7026 [Verbose] > let result = lazy fn ()
00:03:17 #7027 [Verbose] > fun () -> result.Value
00:03:17 #7028 [Verbose] >
00:03:17 #7029 [Verbose] > /// ## TraceLevel
00:03:17 #7030 [Verbose] >
00:03:17 #7031 [Verbose] > type TraceLevel =
00:03:17 #7032 [Verbose] > | Verbose
00:03:17 #7033 [Verbose] > | Debug
00:03:17 #7034 [Verbose] > | Info
00:03:17 #7035 [Verbose] > | Warning
00:03:17 #7036 [Verbose] > | Critical
00:03:17 #7037 [Verbose] >
00:03:17 #7038 [Verbose] > let inline getLocals () = ""
00:03:17 #7039 [Verbose] >
00:03:17 #7040 [Verbose] > let mutable traceEnabled = true
00:03:17 #7041 [Verbose] > let mutable traceCount = 0
00:03:17 #7042 [Verbose] > let mutable traceLevel = Verbose
00:03:17 #7043 [Verbose] > let mutable traceDump = false
00:03:17 #7044 [Verbose] >
00:03:17 #7045 [Verbose] > let testTraceLevel level =
00:03:17 #7046 [Verbose] > traceEnabled && level >= traceLevel
00:03:17 #7047 [Verbose] >
00:03:17 #7048 [Verbose] > /// ## traceRaw
00:03:17 #7049 [Verbose] >
00:03:17 #7050 [Verbose] > let rec traceRaw level fn =
00:03:17 #7051 [Verbose] > ...
00:03:17 #7052 [Verbose] >
00:03:17 #7053 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:17 #7054 [Verbose] > open Common
00:03:17 #7055 [Verbose] >
00:03:17 #7056 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:17 #7057 [Verbose] > let inline (/./) (table: Tomlyn.Model.TomlTable) (key: string) :
00:03:17 #7058 [Verbose] > Tomlyn.Model.TomlTable =
00:03:17 #7059 [Verbose] > table.[[key]] :?> Tomlyn.Model.TomlTable
00:03:17 #7060 [Verbose] >
00:03:17 #7061 [Verbose] > let inline (/../) (table: Tomlyn.Model.TomlTable) (key: string) : 'T seq =
00:03:17 #7062 [Verbose] > table.[[key]] :?> Tomlyn.Model.TomlArray |> Seq.cast<'T>
00:03:17 #7063 [Verbose] >
00:03:17 #7064 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:17 #7065 [Verbose] > //// test
00:03:17 #7066 [Verbose] >
00:03:17 #7067 [Verbose] > let tomlContent =
00:03:17 #7068 [Verbose] > """
00:03:17 #7069 [Verbose] > [[extension]]
00:03:17 #7070 [Verbose] > paths = [["/a", "/b"]]
00:03:17 #7071 [Verbose] > """
00:03:17 #7072 [Verbose] >
00:03:17 #7073 [Verbose] > let toml = Tomlyn.Toml.Parse tomlContent
00:03:17 #7074 [Verbose] > let tomlModel = Tomlyn.Toml.ToModel toml
00:03:17 #7075 [Verbose] >
00:03:17 #7076 [Verbose] > let paths : string seq = tomlModel /./ "extension" /../ "paths"
00:03:17 #7077 [Verbose] >
00:03:17 #7078 [Verbose] > paths
00:03:17 #7079 [Verbose] > |> Seq.toList
00:03:17 #7080 [Verbose] > |> _assertEqual [[ "/a"; "/b" ]]
00:03:17 #7081 [Verbose] >
00:03:17 #7082 [Verbose] > ╭─[ 102.27ms - stdout ]────────────────────────────────────────────────────────╮
00:03:17 #7083 [Verbose] > │ [ /a, /b ] │
00:03:17 #7084 [Verbose] > │ │
00:03:17 #7085 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:19 #7086 [Verbose] > [NbConvertApp] Converting notebook Toml.dib.ipynb to html
00:03:19 #7087 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:03:19 #7088 [Verbose] > validate(nb)
00:03:19 #7089 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:03:19 #7090 [Verbose] > return _pygments_highlight(
00:03:19 #7091 [Verbose] > [NbConvertApp] Writing 278296 bytes to Toml.dib.html
00:03:20 #7092 [Debug] executeAsync / exitCode: 0 / output.Length: 10876
00:03:20 #7093 [Debug] main / executeCommand / exitCode: 0
00:00:00 #2 [Debug] writeDibCode / output: Fs / path: CommonFSharp.dib
00:00:00 #2 [Debug] writeDibCode / output: Fs / path: Crypto.dib
00:00:00 #2 [Debug] writeDibCode / output: Fs / path: AsyncSeq.dib
00:00:00 #2 [Debug] writeDibCode / output: Fs / path: Threading.dib
00:00:00 #2 [Debug] writeDibCode / output: Fs / path: Async.dib
00:00:00 #2 [Debug] writeDibCode / output: Fs / path: Common.dib
00:00:00 #2 [Debug] writeDibCode / output: Fs / path: FileSystem.dib
00:00:00 #2 [Debug] writeDibCode / output: Fs / path: Networking.dib
00:00:00 #8 [Debug] parseDibCode / output: Fs / file: Networking.dib
00:00:00 #5 [Debug] parseDibCode / output: Fs / file: Common.dib
00:00:00 #8 [Debug] parseDibCode / output: Fs / file: Async.dib
00:00:00 #6 [Debug] parseDibCode / output: Fs / file: FileSystem.dib
00:00:00 #9 [Debug] parseDibCode / output: Fs / file: Crypto.dib
00:00:00 #6 [Debug] parseDibCode / output: Fs / file: CommonFSharp.dib
00:00:00 #5 [Debug] parseDibCode / output: Fs / file: AsyncSeq.dib
00:00:00 #5 [Debug] parseDibCode / output: Fs / file: Threading.dib
00:00:00 #11 [Debug] writeDibCode / output: Fs / path: Toml.dib
00:00:00 #11 [Debug] writeDibCode / output: Fs / path: Runtime.dib
00:00:00 #12 [Debug] parseDibCode / output: Fs / file: Toml.dib
00:00:00 #13 [Debug] parseDibCode / output: Fs / file: Runtime.dib
In [ ]:
{ . "$ScriptDir/../lib/rust/fable/build.ps1" } | Invoke-Block
── pwsh ──────────────────────────────────────────────────────────────────────── . ../../../scripts/nbs_header.ps1 . ../../../scripts/core.ps1 ── pwsh ──────────────────────────────────────────────────────────────────────── dotnet fable --optimize --lang rs --extension .rs ╭─[ 898.00ms - stdout ]────────────────────────────────────────────────────────╮ │ Fable 4.14.0: F# to Rust compiler (status: alpha) │ │ │ │ Thanks to the contributor! @xdaDaveShaw │ │ Stand with Ukraine! https://standwithukraine.com.ua/ │ │ │ │ Parsing fable-library-rust.fsproj... │ │ Retrieving project options from cache, in case of issues run `dotnet fable │ │ clean` or try `--noCache` option. │ │ Project and references (1 source files) parsed in 175ms │ │ │ │ Skipped compilation because all generated files are up-to-date! │ │ │ ╰──────────────────────────────────────────────────────────────────────────────╯ [NbConvertApp] Converting notebook build.dib.ipynb to html C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. validate(nb) C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 return _pygments_highlight( [NbConvertApp] Writing 272483 bytes to build.dib.html
In [ ]:
{ . "$ScriptDir/../apps/plot/build.ps1" } | Invoke-Block
Finished `release` profile [optimized] target(s) in 1.32s
In [ ]:
{ . "$ScriptDir/../lib/spiral/build.ps1" -sequential 1 } | Invoke-Block
00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60
00:00:00 #2 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 testing.dib -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:00:02 #3 [Verbose] >
00:00:02 #4 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:02 #5 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:02 #6 [Verbose] > │ # testing │
00:00:02 #7 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:02 #8 [Verbose] >
00:00:02 #9 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:02 #10 [Verbose] > inl __expect fn log b a =
00:00:02 #11 [Verbose] > if log then
00:00:02 #12 [Verbose] > a |> sm'.format_debug |> console.write_line
00:00:02 #13 [Verbose] > inl result = fn a b
00:00:02 #14 [Verbose] > inl result =
00:00:02 #15 [Verbose] > result || join result
00:00:02 #16 [Verbose] > if log
00:00:02 #17 [Verbose] > then $"$\"__expect / actual: %A{!a} / expected: %A{!b}\""
00:00:02 #18 [Verbose] > else "__expect"
00:00:02 #19 [Verbose] > |> assert result
00:00:02 #20 [Verbose] >
00:00:02 #21 [Verbose] > inl __assert_approx_eq log e b a = __expect (fun a b => abs (b - a) < (e |>
00:00:02 #22 [Verbose] > optionm.defaultWith 0.00000001)) log b a
00:00:02 #23 [Verbose] > inl _assert_approx_eq e b a = __assert_approx_eq true e b a
00:00:02 #24 [Verbose] >
00:00:02 #25 [Verbose] > inl __assert_eq log b a = __expect (=) log b a
00:00:02 #26 [Verbose] > inl _assert_eq b a = __assert_eq true b a
00:00:02 #27 [Verbose] >
00:00:02 #28 [Verbose] > inl __assert_eq' log b a = __expect (/=) log b a
00:00:02 #29 [Verbose] > inl _assert_eq' b a = __assert_eq' true b a
00:00:02 #30 [Verbose] >
00:00:02 #31 [Verbose] > inl __assert_ne log b a = __expect (fun a b => a = b |> fun x => join x |> not)
00:00:02 #32 [Verbose] > log b a
00:00:02 #33 [Verbose] > inl _assert_ne b a = __assert_ne true b a
00:00:02 #34 [Verbose] >
00:00:02 #35 [Verbose] > inl __assert_gt log b a = __expect (>) log b a
00:00:02 #36 [Verbose] > inl _assert_gt b a = __assert_gt true b a
00:00:02 #37 [Verbose] >
00:00:02 #38 [Verbose] > inl __assert_ge log b a = __expect (>=) log b a
00:00:02 #39 [Verbose] > inl _assert_ge b a = __assert_ge true b a
00:00:02 #40 [Verbose] >
00:00:02 #41 [Verbose] > inl __assert_lt log b a = __expect (<) log b a
00:00:02 #42 [Verbose] > inl _assert_lt b a = __assert_lt true b a
00:00:02 #43 [Verbose] >
00:00:02 #44 [Verbose] > inl __assert_le log b a = __expect (<=) log b a
00:00:02 #45 [Verbose] > inl _assert_le b a = __assert_le true b a
00:00:02 #46 [Verbose] >
00:00:02 #47 [Verbose] > inl __contains forall t. log (b : t) a =
00:00:02 #48 [Verbose] > __expect
00:00:02 #49 [Verbose] > (fun a b => a |> $'Seq.tryFind' ((=) b) |> optionm'.unbox |> fun (x :
00:00:02 #50 [Verbose] > option t) => x <> None)
00:00:02 #51 [Verbose] > log b a
00:00:02 #52 [Verbose] > inl _contains b a = __contains true b a
00:00:02 #53 [Verbose] >
00:00:02 #54 [Verbose] > inl _throws (fn : () -> ()) : option exn =
00:00:02 #55 [Verbose] > inl none = None : option exn
00:00:02 #56 [Verbose] > inl some (s : exn) = Some s
00:00:02 #57 [Verbose] > $"try !fn (); !none with ex -> ex |> !some"
00:00:06 #58 [Verbose] >
00:00:06 #59 [Verbose] > ╭─[ 3.67s - stdout ]───────────────────────────────────────────────────────────╮
00:00:06 #60 [Verbose] > │ () │
00:00:06 #61 [Verbose] > │ │
00:00:06 #62 [Verbose] > │ │
00:00:06 #63 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:06 #64 [Verbose] >
00:00:06 #65 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:06 #66 [Verbose] > // // test
00:00:06 #67 [Verbose] >
00:00:06 #68 [Verbose] > 1f64
00:00:06 #69 [Verbose] > |> _assert_approx_eq (Some 3) 2
00:00:07 #70 [Verbose] >
00:00:07 #71 [Verbose] > ╭─[ 893.90ms - stdout ]────────────────────────────────────────────────────────╮
00:00:07 #72 [Verbose] > │ let rec method0 () : unit = │
00:00:07 #73 [Verbose] > │ let v0 : string = $"%A{1.0}" │
00:00:07 #74 [Verbose] > │ System.Console.WriteLine v0 │
00:00:07 #75 [Verbose] > │ let v1 : string = $"__expect / actual: %A{1.0} / expected: %A{2.0}" │
00:00:07 #76 [Verbose] > │ () │
00:00:07 #77 [Verbose] > │ method0() │
00:00:07 #78 [Verbose] > │ │
00:00:07 #79 [Verbose] > │ 1.0 │
00:00:07 #80 [Verbose] > │ │
00:00:07 #81 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:07 #82 [Verbose] >
00:00:07 #83 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:07 #84 [Verbose] > // // test
00:00:07 #85 [Verbose] >
00:00:07 #86 [Verbose] > "abcd"
00:00:07 #87 [Verbose] > |> _contains 'b'
00:00:07 #88 [Verbose] >
00:00:07 #89 [Verbose] > ╭─[ 803.59ms - stdout ]────────────────────────────────────────────────────────╮
00:00:07 #90 [Verbose] > │ type [<Struct>] US0 = │
00:00:07 #91 [Verbose] > │ | US0_0 │
00:00:07 #92 [Verbose] > │ | US0_1 of f1_0 : char │
00:00:07 #93 [Verbose] > │ let rec closure0 () (v0 : char) : bool = │
00:00:07 #94 [Verbose] > │ let v1 : bool = 'b' = v0 │
00:00:07 #95 [Verbose] > │ v1 │
00:00:07 #96 [Verbose] > │ and closure1 () (v0 : char) : US0 = │
00:00:07 #97 [Verbose] > │ US0_1(v0) │
00:00:07 #98 [Verbose] > │ and method1 (v0 : bool) : bool = │
00:00:07 #99 [Verbose] > │ v0 │
00:00:07 #100 [Verbose] > │ and method0 () : unit = │
00:00:07 #101 [Verbose] > │ let v0 : string = "abcd" │
00:00:07 #102 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:00:07 #103 [Verbose] > │ System.Console.WriteLine v1 │
00:00:07 #104 [Verbose] > │ let v2 : ((char -> bool) -> (string -> char option)) = Seq.tryFind │
00:00:07 #105 [Verbose] > │ let v3 : (char -> bool) = closure0() │
00:00:07 #106 [Verbose] > │ let v4 : (string -> char option) = v2 v3 │
00:00:07 #107 [Verbose] > │ let v5 : char option = v4 v0 │
00:00:07 #108 [Verbose] > │ let v6 : (char -> US0) = closure1() │
00:00:07 #109 [Verbose] > │ let v7 : US0 = US0_0 │
00:00:07 #110 [Verbose] > │ let v8 : US0 = v5 |> Option.map v6 |> Option.defaultValue v7 │
00:00:07 #111 [Verbose] > │ let v10 : bool = │
00:00:07 #112 [Verbose] > │ match v8 with │
00:00:07 #113 [Verbose] > │ | US0_0 -> (* None *) │
00:00:07 #114 [Verbose] > │ true │
00:00:07 #115 [Verbose] > │ | _ -> │
00:00:07 #116 [Verbose] > │ false │
00:00:07 #117 [Verbose] > │ let v11 : bool = v10 <> true │
00:00:07 #118 [Verbose] > │ let v13 : bool = │
00:00:07 #119 [Verbose] > │ if v11 then │
00:00:07 #120 [Verbose] > │ true │
00:00:07 #121 [Verbose] > │ else │
00:00:07 #122 [Verbose] > │ method1(v11) │
00:00:07 #123 [Verbose] > │ let v14 : string = $"__expect / actual: %A{v0} / expected: %A{'b'}" │
00:00:07 #124 [Verbose] > │ let v15 : bool = v13 = false │
00:00:07 #125 [Verbose] > │ if v15 then │
00:00:07 #126 [Verbose] > │ failwith<unit> v14 │
00:00:07 #127 [Verbose] > │ method0() │
00:00:07 #128 [Verbose] > │ │
00:00:07 #129 [Verbose] > │ "abcd" │
00:00:07 #130 [Verbose] > │ │
00:00:07 #131 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:07 #132 [Verbose] >
00:00:07 #133 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:07 #134 [Verbose] > // // test
00:00:07 #135 [Verbose] >
00:00:07 #136 [Verbose] > (dyn 1f64)
00:00:07 #137 [Verbose] > |> _assert_approx_eq (Some 3) 2
00:00:08 #138 [Verbose] >
00:00:08 #139 [Verbose] > ╭─[ 351.79ms - stdout ]────────────────────────────────────────────────────────╮
00:00:08 #140 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:00:08 #141 [Verbose] > │ v0 │
00:00:08 #142 [Verbose] > │ and method0 () : unit = │
00:00:08 #143 [Verbose] > │ let v0 : float = 1.0 │
00:00:08 #144 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:00:08 #145 [Verbose] > │ System.Console.WriteLine v1 │
00:00:08 #146 [Verbose] > │ let v2 : float = 2.0 - v0 │
00:00:08 #147 [Verbose] > │ let v3 : float = -v2 │
00:00:08 #148 [Verbose] > │ let v4 : bool = v2 >= v3 │
00:00:08 #149 [Verbose] > │ let v5 : float = │
00:00:08 #150 [Verbose] > │ if v4 then │
00:00:08 #151 [Verbose] > │ v2 │
00:00:08 #152 [Verbose] > │ else │
00:00:08 #153 [Verbose] > │ v3 │
00:00:08 #154 [Verbose] > │ let v6 : bool = v5 < 3.0 │
00:00:08 #155 [Verbose] > │ let v8 : bool = │
00:00:08 #156 [Verbose] > │ if v6 then │
00:00:08 #157 [Verbose] > │ true │
00:00:08 #158 [Verbose] > │ else │
00:00:08 #159 [Verbose] > │ method1(v6) │
00:00:08 #160 [Verbose] > │ let v9 : string = $"__expect / actual: %A{v0} / expected: %A{2.0}" │
00:00:08 #161 [Verbose] > │ let v10 : bool = v8 = false │
00:00:08 #162 [Verbose] > │ if v10 then │
00:00:08 #163 [Verbose] > │ failwith<unit> v9 │
00:00:08 #164 [Verbose] > │ method0() │
00:00:08 #165 [Verbose] > │ │
00:00:08 #166 [Verbose] > │ 1.0 │
00:00:08 #167 [Verbose] > │ │
00:00:08 #168 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:08 #169 [Verbose] >
00:00:08 #170 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:08 #171 [Verbose] > inl print_and_return x =
00:00:08 #172 [Verbose] > $"printfn $\"print_and_return / x: {!x}\""
00:00:08 #173 [Verbose] > x
00:00:08 #174 [Verbose] >
00:00:08 #175 [Verbose] > ╭─[ 390.00ms - stdout ]────────────────────────────────────────────────────────╮
00:00:08 #176 [Verbose] > │ () │
00:00:08 #177 [Verbose] > │ │
00:00:08 #178 [Verbose] > │ │
00:00:08 #179 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #180 [Verbose] > [NbConvertApp] Converting notebook testing.dib.ipynb to html
00:00:10 #181 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:10 #182 [Verbose] > validate(nb)
00:00:10 #183 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:10 #184 [Verbose] > return _pygments_highlight(
00:00:10 #185 [Verbose] > [NbConvertApp] Writing 287018 bytes to testing.dib.html
00:00:11 #186 [Debug] executeAsync / exitCode: 0 / output.Length: 10822
00:00:11 #187 [Debug] main / executeCommand / exitCode: 0
00:00:11 #188 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 guid.dib -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:00:13 #189 [Verbose] >
00:00:13 #190 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:13 #191 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:13 #192 [Verbose] > │ # guid │
00:00:13 #193 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:13 #194 [Verbose] >
00:00:13 #195 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:13 #196 [Verbose] > // // test
00:00:13 #197 [Verbose] >
00:00:13 #198 [Verbose] > open testing
00:00:17 #199 [Verbose] >
00:00:17 #200 [Verbose] > ╭─[ 3.60s - stdout ]───────────────────────────────────────────────────────────╮
00:00:17 #201 [Verbose] > │ () │
00:00:17 #202 [Verbose] > │ │
00:00:17 #203 [Verbose] > │ │
00:00:17 #204 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:17 #205 [Verbose] >
00:00:17 #206 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:17 #207 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:17 #208 [Verbose] > │ ## guid │
00:00:17 #209 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:17 #210 [Verbose] >
00:00:17 #211 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:17 #212 [Verbose] > nominal guid = $"System.Guid"
00:00:17 #213 [Verbose] >
00:00:17 #214 [Verbose] > ╭─[ 221.08ms - stdout ]────────────────────────────────────────────────────────╮
00:00:17 #215 [Verbose] > │ () │
00:00:17 #216 [Verbose] > │ │
00:00:17 #217 [Verbose] > │ │
00:00:17 #218 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:17 #219 [Verbose] >
00:00:17 #220 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:17 #221 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:17 #222 [Verbose] > │ ## new_guid │
00:00:17 #223 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:17 #224 [Verbose] >
00:00:17 #225 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:17 #226 [Verbose] > inl new_guid (x : string) : guid =
00:00:17 #227 [Verbose] > $'`guid !x '
00:00:17 #228 [Verbose] >
00:00:17 #229 [Verbose] > ╭─[ 273.37ms - stdout ]────────────────────────────────────────────────────────╮
00:00:17 #230 [Verbose] > │ () │
00:00:17 #231 [Verbose] > │ │
00:00:17 #232 [Verbose] > │ │
00:00:17 #233 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:17 #234 [Verbose] >
00:00:17 #235 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:17 #236 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:17 #237 [Verbose] > │ ## new_raw_guid │
00:00:17 #238 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:17 #239 [Verbose] >
00:00:17 #240 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:17 #241 [Verbose] > inl new_raw_guid () : guid =
00:00:17 #242 [Verbose] > $"System.Guid.NewGuid ()"
00:00:18 #243 [Verbose] >
00:00:18 #244 [Verbose] > ╭─[ 212.54ms - stdout ]────────────────────────────────────────────────────────╮
00:00:18 #245 [Verbose] > │ () │
00:00:18 #246 [Verbose] > │ │
00:00:18 #247 [Verbose] > │ │
00:00:18 #248 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:18 #249 [Verbose] >
00:00:18 #250 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:18 #251 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:18 #252 [Verbose] > │ ## main │
00:00:18 #253 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:18 #254 [Verbose] >
00:00:18 #255 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:18 #256 [Verbose] > inl main () =
00:00:18 #257 [Verbose] > $"let new_guid x = !new_guid x" : ()
00:00:18 #258 [Verbose] > $"let new_raw_guid x = !new_raw_guid x" : ()
00:00:18 #259 [Verbose] >
00:00:18 #260 [Verbose] > ╭─[ 707.61ms - stdout ]────────────────────────────────────────────────────────╮
00:00:18 #261 [Verbose] > │ let rec closure0 () (v0 : string) : System.Guid = │
00:00:18 #262 [Verbose] > │ let v1 : System.Guid = System.Guid v0 │
00:00:18 #263 [Verbose] > │ v1 │
00:00:18 #264 [Verbose] > │ and closure1 () () : System.Guid = │
00:00:18 #265 [Verbose] > │ let v0 : System.Guid = System.Guid.NewGuid () │
00:00:18 #266 [Verbose] > │ v0 │
00:00:18 #267 [Verbose] > │ let v0 : (string -> System.Guid) = closure0() │
00:00:18 #268 [Verbose] > │ let new_guid x = v0 x │
00:00:18 #269 [Verbose] > │ let v1 : (unit -> System.Guid) = closure1() │
00:00:18 #270 [Verbose] > │ let new_raw_guid x = v1 x │
00:00:18 #271 [Verbose] > │ () │
00:00:18 #272 [Verbose] > │ │
00:00:18 #273 [Verbose] > │ │
00:00:18 #274 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:20 #275 [Verbose] > [NbConvertApp] Converting notebook guid.dib.ipynb to html
00:00:20 #276 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:20 #277 [Verbose] > validate(nb)
00:00:20 #278 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:20 #279 [Verbose] > return _pygments_highlight(
00:00:20 #280 [Verbose] > [NbConvertApp] Writing 278591 bytes to guid.dib.html
00:00:21 #281 [Debug] executeAsync / exitCode: 0 / output.Length: 5882
00:00:21 #282 [Debug] main / executeCommand / exitCode: 0
00:00:21 #283 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 common.dib -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:00:23 #284 [Verbose] >
00:00:23 #285 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:23 #286 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:23 #287 [Verbose] > │ # common │
00:00:23 #288 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:23 #289 [Verbose] >
00:00:23 #290 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:23 #291 [Verbose] > // // test
00:00:23 #292 [Verbose] >
00:00:23 #293 [Verbose] > open testing
00:00:27 #294 [Verbose] >
00:00:27 #295 [Verbose] > ╭─[ 3.47s - stdout ]───────────────────────────────────────────────────────────╮
00:00:27 #296 [Verbose] > │ () │
00:00:27 #297 [Verbose] > │ │
00:00:27 #298 [Verbose] > │ │
00:00:27 #299 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:27 #300 [Verbose] >
00:00:27 #301 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:27 #302 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:27 #303 [Verbose] > │ ## types │
00:00:27 #304 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:27 #305 [Verbose] >
00:00:27 #306 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:27 #307 [Verbose] > nominal any = $"obj"
00:00:27 #308 [Verbose] > nominal disposable = $"System.IDisposable"
00:00:27 #309 [Verbose] > nominal exn = $"exn"
00:00:27 #310 [Verbose] > nominal unativeint = $"unativeint"
00:00:27 #311 [Verbose] >
00:00:27 #312 [Verbose] > let array x = x
00:00:27 #313 [Verbose] >
00:00:27 #314 [Verbose] > inl unativeint forall t {int}. (n : t) : unativeint =
00:00:27 #315 [Verbose] > $"unativeint !n"
00:00:27 #316 [Verbose] >
00:00:27 #317 [Verbose] > ╭─[ 238.84ms - stdout ]────────────────────────────────────────────────────────╮
00:00:27 #318 [Verbose] > │ () │
00:00:27 #319 [Verbose] > │ │
00:00:27 #320 [Verbose] > │ │
00:00:27 #321 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:27 #322 [Verbose] >
00:00:27 #323 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:27 #324 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:27 #325 [Verbose] > │ ## prototype │
00:00:27 #326 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:27 #327 [Verbose] >
00:00:27 #328 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:27 #329 [Verbose] > prototype (~:>) r : forall t. t -> r
00:00:27 #330 [Verbose] > prototype append t : t -> t -> t
00:00:27 #331 [Verbose] > prototype of_string t : string -> t
00:00:27 #332 [Verbose] > prototype to_string t : t -> string
00:00:27 #333 [Verbose] >
00:00:27 #334 [Verbose] > ╭─[ 268.23ms - stdout ]────────────────────────────────────────────────────────╮
00:00:27 #335 [Verbose] > │ () │
00:00:27 #336 [Verbose] > │ │
00:00:27 #337 [Verbose] > │ │
00:00:27 #338 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:27 #339 [Verbose] >
00:00:27 #340 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:27 #341 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:27 #342 [Verbose] > │ ## null │
00:00:27 #343 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:27 #344 [Verbose] >
00:00:27 #345 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:27 #346 [Verbose] > inl null forall t. () : t =
00:00:27 #347 [Verbose] > $"null |> unbox<`t>"
00:00:28 #348 [Verbose] >
00:00:28 #349 [Verbose] > ╭─[ 251.52ms - stdout ]────────────────────────────────────────────────────────╮
00:00:28 #350 [Verbose] > │ () │
00:00:28 #351 [Verbose] > │ │
00:00:28 #352 [Verbose] > │ │
00:00:28 #353 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:28 #354 [Verbose] >
00:00:28 #355 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:28 #356 [Verbose] > inl i32 forall t. (x : t) : i32 =
00:00:28 #357 [Verbose] > $"int32 !x"
00:00:28 #358 [Verbose] >
00:00:28 #359 [Verbose] > inl i64 forall t. (x : t) : i64 =
00:00:28 #360 [Verbose] > $"int64 !x"
00:00:28 #361 [Verbose] >
00:00:28 #362 [Verbose] > inl f32 forall t. (x : t) : f32 =
00:00:28 #363 [Verbose] > $"float32 !x"
00:00:28 #364 [Verbose] >
00:00:28 #365 [Verbose] > inl f64 forall t. (x : t) : f64 =
00:00:28 #366 [Verbose] > $"float !x"
00:00:28 #367 [Verbose] >
00:00:28 #368 [Verbose] > ╭─[ 298.96ms - stdout ]────────────────────────────────────────────────────────╮
00:00:28 #369 [Verbose] > │ () │
00:00:28 #370 [Verbose] > │ │
00:00:28 #371 [Verbose] > │ │
00:00:28 #372 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:28 #373 [Verbose] >
00:00:28 #374 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:28 #375 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:28 #376 [Verbose] > │ ## pair │
00:00:28 #377 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:28 #378 [Verbose] >
00:00:28 #379 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:28 #380 [Verbose] > type pair a b = $"(`a * `b)"
00:00:28 #381 [Verbose] >
00:00:28 #382 [Verbose] > inl pair x y =
00:00:28 #383 [Verbose] > x, y
00:00:28 #384 [Verbose] >
00:00:28 #385 [Verbose] > ╭─[ 230.97ms - stdout ]────────────────────────────────────────────────────────╮
00:00:28 #386 [Verbose] > │ () │
00:00:28 #387 [Verbose] > │ │
00:00:28 #388 [Verbose] > │ │
00:00:28 #389 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:28 #390 [Verbose] >
00:00:28 #391 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:28 #392 [Verbose] > // // test
00:00:28 #393 [Verbose] >
00:00:28 #394 [Verbose] > pair 1i32 2i32
00:00:28 #395 [Verbose] > |> _assert_eq (1, 2)
00:00:29 #396 [Verbose] >
00:00:29 #397 [Verbose] > ╭─[ 876.11ms - stdout ]────────────────────────────────────────────────────────╮
00:00:29 #398 [Verbose] > │ let rec method0 () : unit = │
00:00:29 #399 [Verbose] > │ let v0 : string = $"%A{struct (1, 2)}" │
00:00:29 #400 [Verbose] > │ System.Console.WriteLine v0 │
00:00:29 #401 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (1, 2)} / expected: │
00:00:29 #402 [Verbose] > │ %A{struct (1, 2)}" │
00:00:29 #403 [Verbose] > │ () │
00:00:29 #404 [Verbose] > │ method0() │
00:00:29 #405 [Verbose] > │ │
00:00:29 #406 [Verbose] > │ struct (1, 2) │
00:00:29 #407 [Verbose] > │ │
00:00:29 #408 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:29 #409 [Verbose] >
00:00:29 #410 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:29 #411 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:29 #412 [Verbose] > │ ## new_pair │
00:00:29 #413 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:29 #414 [Verbose] >
00:00:29 #415 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:29 #416 [Verbose] > inl new_pair forall a b. (a : a) (b : b) : pair a b =
00:00:29 #417 [Verbose] > $"!a, !b"
00:00:29 #418 [Verbose] >
00:00:29 #419 [Verbose] > ╭─[ 274.06ms - stdout ]────────────────────────────────────────────────────────╮
00:00:29 #420 [Verbose] > │ () │
00:00:29 #421 [Verbose] > │ │
00:00:29 #422 [Verbose] > │ │
00:00:29 #423 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:29 #424 [Verbose] >
00:00:29 #425 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:29 #426 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:29 #427 [Verbose] > │ ## from_pair │
00:00:29 #428 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:29 #429 [Verbose] >
00:00:29 #430 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:29 #431 [Verbose] > inl from_pair forall a b. (pair : pair a b) : a * b =
00:00:29 #432 [Verbose] > $"let (a, b) = !pair"
00:00:29 #433 [Verbose] > $"a", $"b"
00:00:30 #434 [Verbose] >
00:00:30 #435 [Verbose] > ╭─[ 274.68ms - stdout ]────────────────────────────────────────────────────────╮
00:00:30 #436 [Verbose] > │ () │
00:00:30 #437 [Verbose] > │ │
00:00:30 #438 [Verbose] > │ │
00:00:30 #439 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:30 #440 [Verbose] >
00:00:30 #441 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:30 #442 [Verbose] > // // test
00:00:30 #443 [Verbose] >
00:00:30 #444 [Verbose] > new_pair "a" 1i32
00:00:30 #445 [Verbose] > |> from_pair
00:00:30 #446 [Verbose] > |> _assert_eq ("a", 1i32)
00:00:30 #447 [Verbose] >
00:00:30 #448 [Verbose] > ╭─[ 405.13ms - stdout ]────────────────────────────────────────────────────────╮
00:00:30 #449 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:00:30 #450 [Verbose] > │ v0 │
00:00:30 #451 [Verbose] > │ and method0 () : unit = │
00:00:30 #452 [Verbose] > │ let v0 : string = "a" │
00:00:30 #453 [Verbose] > │ let v1 : (string * int32) = v0, 1 │
00:00:30 #454 [Verbose] > │ let (a, b) = v1 │
00:00:30 #455 [Verbose] > │ let v2 : string = a │
00:00:30 #456 [Verbose] > │ let v3 : int32 = b │
00:00:30 #457 [Verbose] > │ let v4 : string = $"%A{struct (v2, v3)}" │
00:00:30 #458 [Verbose] > │ System.Console.WriteLine v4 │
00:00:30 #459 [Verbose] > │ let v5 : bool = v2 = "a" │
00:00:30 #460 [Verbose] > │ let v7 : bool = │
00:00:30 #461 [Verbose] > │ if v5 then │
00:00:30 #462 [Verbose] > │ let v6 : bool = v3 = 1 │
00:00:30 #463 [Verbose] > │ v6 │
00:00:30 #464 [Verbose] > │ else │
00:00:30 #465 [Verbose] > │ false │
00:00:30 #466 [Verbose] > │ let v9 : bool = │
00:00:30 #467 [Verbose] > │ if v7 then │
00:00:30 #468 [Verbose] > │ true │
00:00:30 #469 [Verbose] > │ else │
00:00:30 #470 [Verbose] > │ method1(v7) │
00:00:30 #471 [Verbose] > │ let v10 : string = $"__expect / actual: %A{struct (v2, v3)} / expected: │
00:00:30 #472 [Verbose] > │ %A{struct (v0, 1)}" │
00:00:30 #473 [Verbose] > │ let v11 : bool = v9 = false │
00:00:30 #474 [Verbose] > │ if v11 then │
00:00:30 #475 [Verbose] > │ failwith<unit> v10 │
00:00:30 #476 [Verbose] > │ method0() │
00:00:30 #477 [Verbose] > │ │
00:00:30 #478 [Verbose] > │ struct ("a", 1) │
00:00:30 #479 [Verbose] > │ │
00:00:30 #480 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:30 #481 [Verbose] >
00:00:30 #482 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:30 #483 [Verbose] > // // test
00:00:30 #484 [Verbose] >
00:00:30 #485 [Verbose] > new_pair "a" (new_pair 1i32 "b")
00:00:30 #486 [Verbose] > |> from_pair
00:00:30 #487 [Verbose] >
00:00:30 #488 [Verbose] > ╭─[ 421.66ms - return value ]──────────────────────────────────────────────────╮
00:00:30 #489 [Verbose] > │ <details open="open" class="dni-treeview"><summary><span │
00:00:30 #490 [Verbose] > │ class="dni-code-hint"><code>(a, (1, │
00:00:30 #491 [Verbose] > │ b))</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><t │
00:00:30 #492 [Verbose] > │ d>Item1</td><td><div │
00:00:30 #493 [Verbose] > │ class="dni-plaintext"><pre>a</pre></div></td></tr><tr><td>Item2</td><td><det │
00:00:30 #494 [Verbose] > │ ails class="dni-treeview"><summary><span class="dni-code-hint"><code>(1, │
00:00:30 #495 [Verbose] > │ b)</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
00:00:30 #496 [Verbose] > │ >Item1</td><td><div │
00:00:30 #497 [Verbose] > │ class="dni-plaintext"><pre>1</pre></div></td></tr><tr><td>Item2</td><td><div │
00:00:30 #498 [Verbose] > │ class="dni-plaintext"><pre>b</pre></div></td></tr></tbody></table></div></de │
00:00:30 #499 [Verbose] > │ tails></td></tr></tbody></table></div></details><style> │
00:00:30 #500 [Verbose] > │ .dni-code-hint { │
00:00:30 #501 [Verbose] > │ font-style: italic; │
00:00:30 #502 [Verbose] > │ overflow: hidden; │
00:00:30 #503 [Verbose] > │ white-space: nowrap; │
00:00:30 #504 [Verbose] > │ } │
00:00:30 #505 [Verbose] > │ .dni-treev... │
00:00:30 #506 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:30 #507 [Verbose] >
00:00:30 #508 [Verbose] > ╭─[ 436.71ms - stdout ]────────────────────────────────────────────────────────╮
00:00:30 #509 [Verbose] > │ let rec method0 () : struct (string * (int32 * string)) = │
00:00:30 #510 [Verbose] > │ let v0 : string = "b" │
00:00:30 #511 [Verbose] > │ let v1 : (int32 * string) = 1, v0 │
00:00:30 #512 [Verbose] > │ let v2 : string = "a" │
00:00:30 #513 [Verbose] > │ let v3 : (string * (int32 * string)) = v2, v1 │
00:00:30 #514 [Verbose] > │ let (a, b) = v3 │
00:00:30 #515 [Verbose] > │ let v4 : string = a │
00:00:30 #516 [Verbose] > │ let v5 : (int32 * string) = b │
00:00:30 #517 [Verbose] > │ struct (v4, v5) │
00:00:30 #518 [Verbose] > │ method0() │
00:00:30 #519 [Verbose] > │ │
00:00:30 #520 [Verbose] > │ │
00:00:30 #521 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:30 #522 [Verbose] >
00:00:30 #523 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:30 #524 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:30 #525 [Verbose] > │ ## log_level_type │
00:00:30 #526 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:30 #527 [Verbose] >
00:00:30 #528 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:30 #529 [Verbose] > union log_level_type =
00:00:30 #530 [Verbose] > | Verbose
00:00:30 #531 [Verbose] > | Debug
00:00:30 #532 [Verbose] > | Info
00:00:30 #533 [Verbose] > | Warning
00:00:30 #534 [Verbose] > | Critical
00:00:30 #535 [Verbose] >
00:00:30 #536 [Verbose] > instance to_string log_level_type = function
00:00:30 #537 [Verbose] > | Verbose => "Verbose"
00:00:30 #538 [Verbose] > | Debug => "Debug"
00:00:30 #539 [Verbose] > | Info => "Info"
00:00:30 #540 [Verbose] > | Warning => "Warning"
00:00:30 #541 [Verbose] > | Critical => "Critical"
00:00:30 #542 [Verbose] >
00:00:30 #543 [Verbose] > instance of_string log_level_type = function
00:00:30 #544 [Verbose] > | "Verbose" => Verbose
00:00:30 #545 [Verbose] > | "Debug" => Debug
00:00:30 #546 [Verbose] > | "Info" => Info
00:00:30 #547 [Verbose] > | "Warning" => Warning
00:00:30 #548 [Verbose] > | "Critical" => Critical
00:00:31 #549 [Verbose] >
00:00:31 #550 [Verbose] > ╭─[ 296.97ms - stdout ]────────────────────────────────────────────────────────╮
00:00:31 #551 [Verbose] > │ () │
00:00:31 #552 [Verbose] > │ │
00:00:31 #553 [Verbose] > │ │
00:00:31 #554 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:31 #555 [Verbose] >
00:00:31 #556 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:31 #557 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:31 #558 [Verbose] > │ ## to_any │
00:00:31 #559 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:31 #560 [Verbose] >
00:00:31 #561 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:31 #562 [Verbose] > inl to_any forall t. (obj : t) : any =
00:00:31 #563 [Verbose] > $"!obj"
00:00:31 #564 [Verbose] >
00:00:31 #565 [Verbose] > instance (~:>) any = to_any
00:00:31 #566 [Verbose] >
00:00:31 #567 [Verbose] > ╭─[ 315.66ms - stdout ]────────────────────────────────────────────────────────╮
00:00:31 #568 [Verbose] > │ () │
00:00:31 #569 [Verbose] > │ │
00:00:31 #570 [Verbose] > │ │
00:00:31 #571 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:31 #572 [Verbose] >
00:00:31 #573 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:31 #574 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:31 #575 [Verbose] > │ ## (/@) │
00:00:31 #576 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:31 #577 [Verbose] >
00:00:31 #578 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:31 #579 [Verbose] > inl (/@) a b =
00:00:31 #580 [Verbose] > b |> append a
00:00:31 #581 [Verbose] >
00:00:31 #582 [Verbose] > ╭─[ 276.42ms - stdout ]────────────────────────────────────────────────────────╮
00:00:31 #583 [Verbose] > │ () │
00:00:31 #584 [Verbose] > │ │
00:00:31 #585 [Verbose] > │ │
00:00:31 #586 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:31 #587 [Verbose] >
00:00:31 #588 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:31 #589 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:31 #590 [Verbose] > │ ## unbox │
00:00:31 #591 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:31 #592 [Verbose] >
00:00:31 #593 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:31 #594 [Verbose] > inl unbox forall t u. (x : t) : u =
00:00:31 #595 [Verbose] > $"!x |> unbox<`u>"
00:00:32 #596 [Verbose] >
00:00:32 #597 [Verbose] > ╭─[ 260.69ms - stdout ]────────────────────────────────────────────────────────╮
00:00:32 #598 [Verbose] > │ () │
00:00:32 #599 [Verbose] > │ │
00:00:32 #600 [Verbose] > │ │
00:00:32 #601 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:32 #602 [Verbose] >
00:00:32 #603 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:32 #604 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:32 #605 [Verbose] > │ ## (/+) │
00:00:32 #606 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:32 #607 [Verbose] >
00:00:32 #608 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:32 #609 [Verbose] > inl (/+) forall t. (a : t) (b : t) : t =
00:00:32 #610 [Verbose] > $"!a + !b"
00:00:32 #611 [Verbose] >
00:00:32 #612 [Verbose] > ╭─[ 376.95ms - stdout ]────────────────────────────────────────────────────────╮
00:00:32 #613 [Verbose] > │ () │
00:00:32 #614 [Verbose] > │ │
00:00:32 #615 [Verbose] > │ │
00:00:32 #616 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:32 #617 [Verbose] >
00:00:32 #618 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:32 #619 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:32 #620 [Verbose] > │ ## (/=) │
00:00:32 #621 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:32 #622 [Verbose] >
00:00:32 #623 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:32 #624 [Verbose] > inl (/=) forall t. (a : t) (b : t) : bool =
00:00:32 #625 [Verbose] > $"!a = !b"
00:00:32 #626 [Verbose] >
00:00:32 #627 [Verbose] > ╭─[ 282.83ms - stdout ]────────────────────────────────────────────────────────╮
00:00:32 #628 [Verbose] > │ () │
00:00:32 #629 [Verbose] > │ │
00:00:32 #630 [Verbose] > │ │
00:00:32 #631 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:32 #632 [Verbose] >
00:00:32 #633 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:32 #634 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:32 #635 [Verbose] > │ ## (||>) │
00:00:32 #636 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:32 #637 [Verbose] >
00:00:32 #638 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:32 #639 [Verbose] > inl (||>) (arg1, arg2) fn =
00:00:32 #640 [Verbose] > arg2 |> fn arg1
00:00:33 #641 [Verbose] >
00:00:33 #642 [Verbose] > ╭─[ 274.24ms - stdout ]────────────────────────────────────────────────────────╮
00:00:33 #643 [Verbose] > │ () │
00:00:33 #644 [Verbose] > │ │
00:00:33 #645 [Verbose] > │ │
00:00:33 #646 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:33 #647 [Verbose] >
00:00:33 #648 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:33 #649 [Verbose] > // // test
00:00:33 #650 [Verbose] >
00:00:33 #651 [Verbose] > (3i32, 2i32)
00:00:33 #652 [Verbose] > ||> fun a b => a - b
00:00:33 #653 [Verbose] > |> _assert_eq 1
00:00:33 #654 [Verbose] >
00:00:33 #655 [Verbose] > ╭─[ 238.80ms - stdout ]────────────────────────────────────────────────────────╮
00:00:33 #656 [Verbose] > │ let rec method0 () : unit = │
00:00:33 #657 [Verbose] > │ let v0 : string = $"%A{1}" │
00:00:33 #658 [Verbose] > │ System.Console.WriteLine v0 │
00:00:33 #659 [Verbose] > │ let v1 : string = $"__expect / actual: %A{1} / expected: %A{1}" │
00:00:33 #660 [Verbose] > │ () │
00:00:33 #661 [Verbose] > │ method0() │
00:00:33 #662 [Verbose] > │ │
00:00:33 #663 [Verbose] > │ 1 │
00:00:33 #664 [Verbose] > │ │
00:00:33 #665 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:33 #666 [Verbose] >
00:00:33 #667 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:33 #668 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:33 #669 [Verbose] > │ ## flip │
00:00:33 #670 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:33 #671 [Verbose] >
00:00:33 #672 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:33 #673 [Verbose] > inl flip fn a b =
00:00:33 #674 [Verbose] > fn b a
00:00:33 #675 [Verbose] >
00:00:33 #676 [Verbose] > ╭─[ 217.32ms - stdout ]────────────────────────────────────────────────────────╮
00:00:33 #677 [Verbose] > │ () │
00:00:33 #678 [Verbose] > │ │
00:00:33 #679 [Verbose] > │ │
00:00:33 #680 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:33 #681 [Verbose] >
00:00:33 #682 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:33 #683 [Verbose] > // // test
00:00:33 #684 [Verbose] >
00:00:33 #685 [Verbose] > (1i32, 2i32)
00:00:33 #686 [Verbose] > ||> flip pair
00:00:33 #687 [Verbose] > |> _assert_eq (2, 1)
00:00:33 #688 [Verbose] >
00:00:33 #689 [Verbose] > ╭─[ 260.63ms - stdout ]────────────────────────────────────────────────────────╮
00:00:33 #690 [Verbose] > │ let rec method0 () : unit = │
00:00:33 #691 [Verbose] > │ let v0 : string = $"%A{struct (2, 1)}" │
00:00:33 #692 [Verbose] > │ System.Console.WriteLine v0 │
00:00:33 #693 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (2, 1)} / expected: │
00:00:33 #694 [Verbose] > │ %A{struct (2, 1)}" │
00:00:33 #695 [Verbose] > │ () │
00:00:33 #696 [Verbose] > │ method0() │
00:00:33 #697 [Verbose] > │ │
00:00:33 #698 [Verbose] > │ struct (2, 1) │
00:00:33 #699 [Verbose] > │ │
00:00:33 #700 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:33 #701 [Verbose] >
00:00:33 #702 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:33 #703 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:33 #704 [Verbose] > │ ## join_body │
00:00:33 #705 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:33 #706 [Verbose] >
00:00:33 #707 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:33 #708 [Verbose] > inl join_body body acc x =
00:00:33 #709 [Verbose] > if var_is x |> not
00:00:33 #710 [Verbose] > then body acc x
00:00:33 #711 [Verbose] > else
00:00:33 #712 [Verbose] > inl acc = dyn acc
00:00:33 #713 [Verbose] > join body acc x
00:00:34 #714 [Verbose] >
00:00:34 #715 [Verbose] > ╭─[ 234.28ms - stdout ]────────────────────────────────────────────────────────╮
00:00:34 #716 [Verbose] > │ () │
00:00:34 #717 [Verbose] > │ │
00:00:34 #718 [Verbose] > │ │
00:00:34 #719 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:34 #720 [Verbose] >
00:00:34 #721 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:34 #722 [Verbose] > // // test
00:00:34 #723 [Verbose] >
00:00:34 #724 [Verbose] > inl rec fold_list f s = function
00:00:34 #725 [Verbose] > | Cons (x, x') => fold_list f (f s x) x'
00:00:34 #726 [Verbose] > | Nil => s
00:00:34 #727 [Verbose] >
00:00:34 #728 [Verbose] > ╭─[ 210.95ms - stdout ]────────────────────────────────────────────────────────╮
00:00:34 #729 [Verbose] > │ () │
00:00:34 #730 [Verbose] > │ │
00:00:34 #731 [Verbose] > │ │
00:00:34 #732 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:34 #733 [Verbose] >
00:00:34 #734 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:34 #735 [Verbose] > // // test
00:00:34 #736 [Verbose] >
00:00:34 #737 [Verbose] > [[5i32; 4; join 3; 2; 1]]
00:00:34 #738 [Verbose] > |> fold_list (+) 0
00:00:34 #739 [Verbose] > |> _assert_eq 15
00:00:34 #740 [Verbose] >
00:00:34 #741 [Verbose] > ╭─[ 322.35ms - stdout ]────────────────────────────────────────────────────────╮
00:00:34 #742 [Verbose] > │ let rec method1 () : int32 = │
00:00:34 #743 [Verbose] > │ 3 │
00:00:34 #744 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:00:34 #745 [Verbose] > │ v0 │
00:00:34 #746 [Verbose] > │ and method0 () : unit = │
00:00:34 #747 [Verbose] > │ let v0 : int32 = method1() │
00:00:34 #748 [Verbose] > │ let v1 : int32 = 9 + v0 │
00:00:34 #749 [Verbose] > │ let v2 : int32 = v1 + 2 │
00:00:34 #750 [Verbose] > │ let v3 : int32 = v2 + 1 │
00:00:34 #751 [Verbose] > │ let v4 : string = $"%A{v3}" │
00:00:34 #752 [Verbose] > │ System.Console.WriteLine v4 │
00:00:34 #753 [Verbose] > │ let v5 : bool = v3 = 15 │
00:00:34 #754 [Verbose] > │ let v7 : bool = │
00:00:34 #755 [Verbose] > │ if v5 then │
00:00:34 #756 [Verbose] > │ true │
00:00:34 #757 [Verbose] > │ else │
00:00:34 #758 [Verbose] > │ method2(v5) │
00:00:34 #759 [Verbose] > │ let v8 : string = $"__expect / actual: %A{v3} / expected: %A{15}" │
00:00:34 #760 [Verbose] > │ let v9 : bool = v7 = false │
00:00:34 #761 [Verbose] > │ if v9 then │
00:00:34 #762 [Verbose] > │ failwith<unit> v8 │
00:00:34 #763 [Verbose] > │ method0() │
00:00:34 #764 [Verbose] > │ │
00:00:34 #765 [Verbose] > │ 15 │
00:00:34 #766 [Verbose] > │ │
00:00:34 #767 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:34 #768 [Verbose] >
00:00:34 #769 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:34 #770 [Verbose] > // // test
00:00:34 #771 [Verbose] >
00:00:34 #772 [Verbose] > [[5i32; 4; join 3; 2; 1]]
00:00:34 #773 [Verbose] > |> fold_list (join_body (+)) 0
00:00:34 #774 [Verbose] > |> _assert_eq 15
00:00:34 #775 [Verbose] >
00:00:34 #776 [Verbose] > ╭─[ 268.75ms - stdout ]────────────────────────────────────────────────────────╮
00:00:34 #777 [Verbose] > │ let rec method1 () : int32 = │
00:00:34 #778 [Verbose] > │ 3 │
00:00:34 #779 [Verbose] > │ and method2 (v0 : int32, v1 : int32) : int32 = │
00:00:34 #780 [Verbose] > │ let v2 : int32 = v1 + v0 │
00:00:34 #781 [Verbose] > │ v2 │
00:00:34 #782 [Verbose] > │ and method3 (v0 : bool) : bool = │
00:00:34 #783 [Verbose] > │ v0 │
00:00:34 #784 [Verbose] > │ and method0 () : unit = │
00:00:34 #785 [Verbose] > │ let v0 : int32 = method1() │
00:00:34 #786 [Verbose] > │ let v1 : int32 = 9 │
00:00:34 #787 [Verbose] > │ let v2 : int32 = method2(v0, v1) │
00:00:34 #788 [Verbose] > │ let v3 : int32 = v2 + 2 │
00:00:34 #789 [Verbose] > │ let v4 : int32 = v3 + 1 │
00:00:34 #790 [Verbose] > │ let v5 : string = $"%A{v4}" │
00:00:34 #791 [Verbose] > │ System.Console.WriteLine v5 │
00:00:34 #792 [Verbose] > │ let v6 : bool = v4 = 15 │
00:00:34 #793 [Verbose] > │ let v8 : bool = │
00:00:34 #794 [Verbose] > │ if v6 then │
00:00:34 #795 [Verbose] > │ true │
00:00:34 #796 [Verbose] > │ else │
00:00:34 #797 [Verbose] > │ method3(v6) │
00:00:34 #798 [Verbose] > │ let v9 : string = $"__expect / actual: %A{v4} / expected: %A{15}" │
00:00:34 #799 [Verbose] > │ let v10 : bool = v8 = false │
00:00:34 #800 [Verbose] > │ if v10 then │
00:00:34 #801 [Verbose] > │ failwith<unit> v9 │
00:00:34 #802 [Verbose] > │ method0() │
00:00:34 #803 [Verbose] > │ │
00:00:34 #804 [Verbose] > │ 15 │
00:00:34 #805 [Verbose] > │ │
00:00:34 #806 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:34 #807 [Verbose] >
00:00:34 #808 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:34 #809 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:34 #810 [Verbose] > │ ## join_body_unit │
00:00:34 #811 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:34 #812 [Verbose] >
00:00:34 #813 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:34 #814 [Verbose] > inl join_body_unit body d x =
00:00:34 #815 [Verbose] > if var_is d |> not
00:00:34 #816 [Verbose] > then body x
00:00:34 #817 [Verbose] > else
00:00:34 #818 [Verbose] > inl x = dyn x
00:00:34 #819 [Verbose] > join body x
00:00:35 #820 [Verbose] >
00:00:35 #821 [Verbose] > ╭─[ 237.12ms - stdout ]────────────────────────────────────────────────────────╮
00:00:35 #822 [Verbose] > │ () │
00:00:35 #823 [Verbose] > │ │
00:00:35 #824 [Verbose] > │ │
00:00:35 #825 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:35 #826 [Verbose] >
00:00:35 #827 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:35 #828 [Verbose] > // // test
00:00:35 #829 [Verbose] >
00:00:35 #830 [Verbose] > [[5i32; 4; join 3; 2; 1]]
00:00:35 #831 [Verbose] > |> fold_list (fun acc n => join_body_unit ((+) acc) n n) 0
00:00:35 #832 [Verbose] > |> _assert_eq 15
00:00:35 #833 [Verbose] >
00:00:35 #834 [Verbose] > ╭─[ 268.12ms - stdout ]────────────────────────────────────────────────────────╮
00:00:35 #835 [Verbose] > │ let rec method1 () : int32 = │
00:00:35 #836 [Verbose] > │ 3 │
00:00:35 #837 [Verbose] > │ and method2 (v0 : int32) : int32 = │
00:00:35 #838 [Verbose] > │ let v1 : int32 = 9 + v0 │
00:00:35 #839 [Verbose] > │ v1 │
00:00:35 #840 [Verbose] > │ and method3 (v0 : bool) : bool = │
00:00:35 #841 [Verbose] > │ v0 │
00:00:35 #842 [Verbose] > │ and method0 () : unit = │
00:00:35 #843 [Verbose] > │ let v0 : int32 = method1() │
00:00:35 #844 [Verbose] > │ let v1 : int32 = method2(v0) │
00:00:35 #845 [Verbose] > │ let v2 : int32 = v1 + 2 │
00:00:35 #846 [Verbose] > │ let v3 : int32 = v2 + 1 │
00:00:35 #847 [Verbose] > │ let v4 : string = $"%A{v3}" │
00:00:35 #848 [Verbose] > │ System.Console.WriteLine v4 │
00:00:35 #849 [Verbose] > │ let v5 : bool = v3 = 15 │
00:00:35 #850 [Verbose] > │ let v7 : bool = │
00:00:35 #851 [Verbose] > │ if v5 then │
00:00:35 #852 [Verbose] > │ true │
00:00:35 #853 [Verbose] > │ else │
00:00:35 #854 [Verbose] > │ method3(v5) │
00:00:35 #855 [Verbose] > │ let v8 : string = $"__expect / actual: %A{v3} / expected: %A{15}" │
00:00:35 #856 [Verbose] > │ let v9 : bool = v7 = false │
00:00:35 #857 [Verbose] > │ if v9 then │
00:00:35 #858 [Verbose] > │ failwith<unit> v8 │
00:00:35 #859 [Verbose] > │ method0() │
00:00:35 #860 [Verbose] > │ │
00:00:35 #861 [Verbose] > │ 15 │
00:00:35 #862 [Verbose] > │ │
00:00:35 #863 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:35 #864 [Verbose] >
00:00:35 #865 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:35 #866 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:35 #867 [Verbose] > │ ## run_target │
00:00:35 #868 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:35 #869 [Verbose] >
00:00:35 #870 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:35 #871 [Verbose] > union target_runtime =
00:00:35 #872 [Verbose] > | Native
00:00:35 #873 [Verbose] > | Wasm
00:00:35 #874 [Verbose] > | Fable
00:00:35 #875 [Verbose] >
00:00:35 #876 [Verbose] > union target =
00:00:35 #877 [Verbose] > | Rust : target_runtime
00:00:35 #878 [Verbose] > | Fsharp : target_runtime
00:00:35 #879 [Verbose] >
00:00:35 #880 [Verbose] > inl run_target forall t. (fn : target -> (() -> t)) : t =
00:00:35 #881 [Verbose] > $"let mutable result = None"
00:00:35 #882 [Verbose] > $"#if FABLE_COMPILER_RUST && \!WASM"
00:00:35 #883 [Verbose] > fn (Rust Native) () |> fun x => $"!x"
00:00:35 #884 [Verbose] > $"#endif"
00:00:35 #885 [Verbose] > $"#if FABLE_COMPILER_RUST && WASM"
00:00:35 #886 [Verbose] > fn (Rust Wasm) () |> fun x => $"!x"
00:00:35 #887 [Verbose] > $"#endif"
00:00:35 #888 [Verbose] > $"#if \!FABLE_COMPILER && \!FABLE_COMPILER_RUST && \!WASM"
00:00:35 #889 [Verbose] > fn (Fsharp Native) () |> fun x => $"!x"
00:00:35 #890 [Verbose] > $"#endif"
00:00:35 #891 [Verbose] > $"#if FABLE_COMPILER && \!FABLE_COMPILER_RUST && \!WASM"
00:00:35 #892 [Verbose] > fn (Fsharp Fable) () |> fun x => $"!x"
00:00:35 #893 [Verbose] > $"#endif"
00:00:35 #894 [Verbose] > $"#if \!FABLE_COMPILER_RUST && WASM"
00:00:35 #895 [Verbose] > fn (Fsharp Wasm) () |> fun x => $"!x"
00:00:35 #896 [Verbose] > $"#endif"
00:00:35 #897 [Verbose] > $"|> fun x -> result <- Some x"
00:00:35 #898 [Verbose] > $"result |> Option.get"
00:00:35 #899 [Verbose] >
00:00:35 #900 [Verbose] > ╭─[ 217.50ms - stdout ]────────────────────────────────────────────────────────╮
00:00:35 #901 [Verbose] > │ () │
00:00:35 #902 [Verbose] > │ │
00:00:35 #903 [Verbose] > │ │
00:00:35 #904 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:35 #905 [Verbose] >
00:00:35 #906 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:35 #907 [Verbose] > // // test
00:00:35 #908 [Verbose] >
00:00:35 #909 [Verbose] > run_target function
00:00:35 #910 [Verbose] > | Fsharp (Native) => fun () => $"1uy"
00:00:35 #911 [Verbose] > | _ => fun () => $"2uy"
00:00:35 #912 [Verbose] > |> _assert_eq 1u8
00:00:35 #913 [Verbose] >
00:00:35 #914 [Verbose] > ╭─[ 294.22ms - stdout ]────────────────────────────────────────────────────────╮
00:00:35 #915 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:00:35 #916 [Verbose] > │ v0 │
00:00:35 #917 [Verbose] > │ and method0 () : unit = │
00:00:35 #918 [Verbose] > │ let mutable result = None │
00:00:35 #919 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:00:35 #920 [Verbose] > │ let v0 : uint8 = 2uy │
00:00:35 #921 [Verbose] > │ v0 │
00:00:35 #922 [Verbose] > │ #endif │
00:00:35 #923 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:00:35 #924 [Verbose] > │ let v1 : uint8 = 2uy │
00:00:35 #925 [Verbose] > │ v1 │
00:00:35 #926 [Verbose] > │ #endif │
00:00:35 #927 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:35 #928 [Verbose] > │ let v2 : uint8 = 1uy │
00:00:35 #929 [Verbose] > │ v2 │
00:00:35 #930 [Verbose] > │ #endif │
00:00:35 #931 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:35 #932 [Verbose] > │ let v3 : uint8 = 2uy │
00:00:35 #933 [Verbose] > │ v3 │
00:00:35 #934 [Verbose] > │ #endif │
00:00:35 #935 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:00:35 #936 [Verbose] > │ let v4 : uint8 = 2uy │
00:00:35 #937 [Verbose] > │ v4 │
00:00:35 #938 [Verbose] > │ #endif │
00:00:35 #939 [Verbose] > │ |> fun x -> result <- Some x │
00:00:35 #940 [Verbose] > │ let v5 : uint8 = result |> Option.get │
00:00:35 #941 [Verbose] > │ let v6 : string = $"%A{v5}" │
00:00:35 #942 [Verbose] > │ System.Console.WriteLine v6 │
00:00:35 #943 [Verbose] > │ let v7 : bool = v5 = 1uy │
00:00:35 #944 [Verbose] > │ let v9 : bool = │
00:00:35 #945 [Verbose] > │ if v7 then │
00:00:35 #946 [Verbose] > │ true │
00:00:35 #947 [Verbose] > │ else │
00:00:35 #948 [Verbose] > │ method1(v7) │
00:00:35 #949 [Verbose] > │ let v10 : string = $"__expect / actual: %A{v5} / expected: %A{1uy}" │
00:00:35 #950 [Verbose] > │ let v11 : bool = v9 = false │
00:00:35 #951 [Verbose] > │ if v11 then │
00:00:35 #952 [Verbose] > │ failwith<unit> v10 │
00:00:35 #953 [Verbose] > │ method0() │
00:00:35 #954 [Verbose] > │ │
00:00:35 #955 [Verbose] > │ 1uy │
00:00:35 #956 [Verbose] > │ │
00:00:35 #957 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:35 #958 [Verbose] >
00:00:35 #959 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:35 #960 [Verbose] > // // test
00:00:35 #961 [Verbose] > // // rust=
00:00:35 #962 [Verbose] >
00:00:35 #963 [Verbose] > run_target function
00:00:35 #964 [Verbose] > | Rust (Native) => fun () => $"1uy"
00:00:35 #965 [Verbose] > | _ => fun () => $"2uy"
00:00:35 #966 [Verbose] > |> (=) 1u8
00:00:35 #967 [Verbose] > |> _assert_eq true
00:00:41 #968 [Verbose] >
00:00:41 #969 [Verbose] > ╭─[ 5.94s - return value ]─────────────────────────────────────────────────────╮
00:00:41 #970 [Verbose] > │ .rs output: │
00:00:41 #971 [Verbose] > │ true │
00:00:41 #972 [Verbose] > │ │
00:00:41 #973 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:41 #974 [Verbose] >
00:00:41 #975 [Verbose] > ╭─[ 5.95s - stdout ]───────────────────────────────────────────────────────────╮
00:00:41 #976 [Verbose] > │ │
00:00:41 #977 [Verbose] > │ .fsx: │
00:00:41 #978 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:00:41 #979 [Verbose] > │ v0 │
00:00:41 #980 [Verbose] > │ and method0 () : unit = │
00:00:41 #981 [Verbose] > │ let mutable result = None │
00:00:41 #982 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:00:41 #983 [Verbose] > │ let v0 : uint8 = 1uy │
00:00:41 #984 [Verbose] > │ v0 │
00:00:41 #985 [Verbose] > │ #endif │
00:00:41 #986 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:00:41 #987 [Verbose] > │ let v1 : uint8 = 2uy │
00:00:41 #988 [Verbose] > │ v1 │
00:00:41 #989 [Verbose] > │ #endif │
00:00:41 #990 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:41 #991 [Verbose] > │ let v2 : uint8 = 2uy │
00:00:41 #992 [Verbose] > │ v2 │
00:00:41 #993 [Verbose] > │ #endif │
00:00:41 #994 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:41 #995 [Verbose] > │ let v3 : uint8 = 2uy │
00:00:41 #996 [Verbose] > │ v3 │
00:00:41 #997 [Verbose] > │ #endif │
00:00:41 #998 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:00:41 #999 [Verbose] > │ let v4 : uint8 = 2uy │
00:00:41 #1000 [Verbose] > │ v4 │
00:00:41 #1001 [Verbose] > │ #endif │
00:00:41 #1002 [Verbose] > │ |> fun x -> result <- Some x │
00:00:41 #1003 [Verbose] > │ let v5 : uint8 = result |> Option.get │
00:00:41 #1004 [Verbose] > │ let v6 : bool = 1uy = v5 │
00:00:41 #1005 [Verbose] > │ let v7 : string = $"%A{v6}" │
00:00:41 #1006 [Verbose] > │ System.Console.WriteLine v7 │
00:00:41 #1007 [Verbose] > │ let v9 : bool = │
00:00:41 #1008 [Verbose] > │ if v6 then │
00:00:41 #1009 [Verbose] > │ true │
00:00:41 #1010 [Verbose] > │ else │
00:00:41 #1011 [Verbose] > │ method1(v6) │
00:00:41 #1012 [Verbose] > │ let v10 : string = $"__expect / actual: %A{v6} / expected: %A{true}" │
00:00:41 #1013 [Verbose] > │ let v11 : bool = v9 = false │
00:00:41 #1014 [Verbose] > │ if v11 then │
00:00:41 #1015 [Verbose] > │ failwith<unit> v10 │
00:00:41 #1016 [Verbose] > │ method0() │
00:00:41 #1017 [Verbose] > │ │
00:00:41 #1018 [Verbose] > │ │
00:00:41 #1019 [Verbose] > │ .rs: │
00:00:41 #1020 [Verbose] > │ #![allow(dead_code,)] │
00:00:41 #1021 [Verbose] > │ #![allow(non_camel_case_types,)] │
00:00:41 #1022 [Verbose] > │ #![allow(non_snake_case,)] │
00:00:41 #1023 [Verbose] > │ #![allow(non_upper_case_globals,)] │
00:00:41 #1024 [Verbose] > │ #![allow(unreachable_code,)] │
00:00:41 #1025 [Verbose] > │ #![allow(unused_attributes,)] │
00:00:41 #1026 [Verbose] > │ #![allow(unused_imports,)] │
00:00:41 #1027 [Verbose] > │ #![allow(unused_macros,)] │
00:00:41 #1028 [Verbose] > │ #![allow(unused_parens,)] │
00:00:41 #1029 [Verbose] > │ #![allow(unused_variables,)] │
00:00:41 #1030 [Verbose] > │ mod module_ccfa04bf { │
00:00:41 #1031 [Verbose] > │ pub mod Spiral_eval { │
00:00:41 #1032 [Verbose] > │ use super::*; │
00:00:41 #1033 [Verbose] > │ use fable_library_rust::Native_::MutCell; │
00:00:41 #1034 [Verbose] > │ use fable_library_rust::Native_::on_startup; │
00:00:41 #1035 [Verbose] > │ use fable_library_rust::Option_::getValue; │
00:00:41 #1036 [Verbose] > │ use fable_library_rust::String_::printfn; │
00:00:41 #1037 [Verbose] > │ use fable_library_rust::String_::sprintf; │
00:00:41 #1038 [Verbose] > │ use fable_library_rust::String_::string; │
00:00:41 #1039 [Verbose] > │ pub fn method1(v0: bool) -> bool { v0 } │
00:00:41 #1040 [Verbose] > │ pub fn method0() { │
00:00:41 #1041 [Verbose] > │ let result: MutCell<Option<u8>> = MutCell::new(None::<u8>); │
00:00:41 #1042 [Verbose] > │ result.set(Some(1_u8)); │
00:00:41 #1043 [Verbose] > │ { │
00:00:41 #1044 [Verbose] > │ let v6: bool = 1_u8 == getValue(result.get().clone()); │
00:00:41 #1045 [Verbose] > │ let v7: string = sprintf!("{:?}", v6); │
00:00:41 #1046 [Verbose] > │ printfn!("{0}", v7); │
00:00:41 #1047 [Verbose] > │ if (if v6 { true } else { Spiral_eval::method1(v6) }) == │
00:00:41 #1048 [Verbose] > │ false │
00:00:41 #1049 [Verbose] > │ { │
00:00:41 #1050 [Verbose] > │ panic!("{}", │
00:00:41 #1051 [Verbose] > │ sprintf!("__expect / actual: {:?} / expected: │
00:00:41 #1052 [Verbose] > │ {:?}", v6, true)); │
00:00:41 #1053 [Verbose] > │ } │
00:00:41 #1054 [Verbose] > │ } │
00:00:41 #1055 [Verbose] > │ } │
00:00:41 #1056 [Verbose] > │ on_startup!(Spiral_eval::method0()); │
00:00:41 #1057 [Verbose] > │ } │
00:00:41 #1058 [Verbose] > │ } │
00:00:41 #1059 [Verbose] > │ pub use module_ccfa04bf::*; │
00:00:41 #1060 [Verbose] > │ │
00:00:41 #1061 [Verbose] > │ │
00:00:41 #1062 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:41 #1063 [Verbose] >
00:00:41 #1064 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:41 #1065 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:41 #1066 [Verbose] > │ ## nameof │
00:00:41 #1067 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:41 #1068 [Verbose] >
00:00:41 #1069 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:41 #1070 [Verbose] > inl nameof x : string =
00:00:41 #1071 [Verbose] > $"nameof !x"
00:00:42 #1072 [Verbose] >
00:00:42 #1073 [Verbose] > ╭─[ 252.14ms - stdout ]────────────────────────────────────────────────────────╮
00:00:42 #1074 [Verbose] > │ () │
00:00:42 #1075 [Verbose] > │ │
00:00:42 #1076 [Verbose] > │ │
00:00:42 #1077 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:42 #1078 [Verbose] >
00:00:42 #1079 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:42 #1080 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:42 #1081 [Verbose] > │ ## get_environment_variable │
00:00:42 #1082 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:42 #1083 [Verbose] >
00:00:42 #1084 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:42 #1085 [Verbose] > inl get_environment_variable (var : string) : string =
00:00:42 #1086 [Verbose] > $"System.Environment.GetEnvironmentVariable !var"
00:00:42 #1087 [Verbose] >
00:00:42 #1088 [Verbose] > ╭─[ 217.35ms - stdout ]────────────────────────────────────────────────────────╮
00:00:42 #1089 [Verbose] > │ () │
00:00:42 #1090 [Verbose] > │ │
00:00:42 #1091 [Verbose] > │ │
00:00:42 #1092 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:42 #1093 [Verbose] >
00:00:42 #1094 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:42 #1095 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:42 #1096 [Verbose] > │ ## memoize │
00:00:42 #1097 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:42 #1098 [Verbose] >
00:00:42 #1099 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:42 #1100 [Verbose] > nominal lazy t = $'Lazy<`t>'
00:00:42 #1101 [Verbose] >
00:00:42 #1102 [Verbose] > inl memoize forall t. (fn : () -> t) : () -> t =
00:00:42 #1103 [Verbose] > inl result : lazy t = $'lazy !fn ()'
00:00:42 #1104 [Verbose] > fun () => $'!result.Value'
00:00:42 #1105 [Verbose] >
00:00:42 #1106 [Verbose] > ╭─[ 215.41ms - stdout ]────────────────────────────────────────────────────────╮
00:00:42 #1107 [Verbose] > │ () │
00:00:42 #1108 [Verbose] > │ │
00:00:42 #1109 [Verbose] > │ │
00:00:42 #1110 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:42 #1111 [Verbose] >
00:00:42 #1112 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:42 #1113 [Verbose] > // // test
00:00:42 #1114 [Verbose] >
00:00:42 #1115 [Verbose] > inl count = mut 0i32
00:00:42 #1116 [Verbose] > inl add =
00:00:42 #1117 [Verbose] > fun () => count <- *count + 1
00:00:42 #1118 [Verbose] > |> memoize
00:00:42 #1119 [Verbose] >
00:00:42 #1120 [Verbose] > add ()
00:00:42 #1121 [Verbose] > add ()
00:00:42 #1122 [Verbose] > add ()
00:00:42 #1123 [Verbose] >
00:00:42 #1124 [Verbose] > *count
00:00:42 #1125 [Verbose] > |> _assert_eq 1
00:00:43 #1126 [Verbose] >
00:00:43 #1127 [Verbose] > ╭─[ 593.64ms - stdout ]────────────────────────────────────────────────────────╮
00:00:43 #1128 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:00:43 #1129 [Verbose] > │ let rec closure0 (v0 : Mut0) () : unit = │
00:00:43 #1130 [Verbose] > │ let v1 : int32 = v0.l0 │
00:00:43 #1131 [Verbose] > │ let v2 : int32 = v1 + 1 │
00:00:43 #1132 [Verbose] > │ v0.l0 <- v2 │
00:00:43 #1133 [Verbose] > │ () │
00:00:43 #1134 [Verbose] > │ and method1 (v0 : bool) : bool = │
00:00:43 #1135 [Verbose] > │ v0 │
00:00:43 #1136 [Verbose] > │ and method0 () : unit = │
00:00:43 #1137 [Verbose] > │ let v0 : Mut0 = {l0 = 0} : Mut0 │
00:00:43 #1138 [Verbose] > │ let v1 : (unit -> unit) = closure0(v0) │
00:00:43 #1139 [Verbose] > │ let v2 : Lazy<unit> = lazy v1 () │
00:00:43 #1140 [Verbose] > │ v2.Value │
00:00:43 #1141 [Verbose] > │ v2.Value │
00:00:43 #1142 [Verbose] > │ v2.Value │
00:00:43 #1143 [Verbose] > │ let v3 : int32 = v0.l0 │
00:00:43 #1144 [Verbose] > │ let v4 : string = $"%A{v3}" │
00:00:43 #1145 [Verbose] > │ System.Console.WriteLine v4 │
00:00:43 #1146 [Verbose] > │ let v5 : bool = v3 = 1 │
00:00:43 #1147 [Verbose] > │ let v7 : bool = │
00:00:43 #1148 [Verbose] > │ if v5 then │
00:00:43 #1149 [Verbose] > │ true │
00:00:43 #1150 [Verbose] > │ else │
00:00:43 #1151 [Verbose] > │ method1(v5) │
00:00:43 #1152 [Verbose] > │ let v8 : string = $"__expect / actual: %A{v3} / expected: %A{1}" │
00:00:43 #1153 [Verbose] > │ let v9 : bool = v7 = false │
00:00:43 #1154 [Verbose] > │ if v9 then │
00:00:43 #1155 [Verbose] > │ failwith<unit> v8 │
00:00:43 #1156 [Verbose] > │ method0() │
00:00:43 #1157 [Verbose] > │ │
00:00:43 #1158 [Verbose] > │ 1 │
00:00:43 #1159 [Verbose] > │ │
00:00:43 #1160 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:43 #1161 [Verbose] >
00:00:43 #1162 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:43 #1163 [Verbose] > // // test
00:00:43 #1164 [Verbose] >
00:00:43 #1165 [Verbose] > fun () => failwith "test"
00:00:43 #1166 [Verbose] > |> _throws
00:00:43 #1167 [Verbose] > |> optionm.map sm'.format_exception
00:00:43 #1168 [Verbose] > |> _assert_eq (Some "System.Exception: test")
00:00:43 #1169 [Verbose] >
00:00:43 #1170 [Verbose] > ╭─[ 568.43ms - stdout ]────────────────────────────────────────────────────────╮
00:00:43 #1171 [Verbose] > │ type [<Struct>] US0 = │
00:00:43 #1172 [Verbose] > │ | US0_0 │
00:00:43 #1173 [Verbose] > │ | US0_1 of f1_0 : exn │
00:00:43 #1174 [Verbose] > │ and [<Struct>] US1 = │
00:00:43 #1175 [Verbose] > │ | US1_0 │
00:00:43 #1176 [Verbose] > │ | US1_1 of f1_0 : string │
00:00:43 #1177 [Verbose] > │ let rec closure0 () () : unit = │
00:00:43 #1178 [Verbose] > │ failwith<unit> "test" │
00:00:43 #1179 [Verbose] > │ and closure1 () (v0 : exn) : US0 = │
00:00:43 #1180 [Verbose] > │ US0_1(v0) │
00:00:43 #1181 [Verbose] > │ and method1 (v0 : bool) : bool = │
00:00:43 #1182 [Verbose] > │ v0 │
00:00:43 #1183 [Verbose] > │ and method0 () : unit = │
00:00:43 #1184 [Verbose] > │ let v0 : (unit -> unit) = closure0() │
00:00:43 #1185 [Verbose] > │ let v1 : US0 = US0_0 │
00:00:43 #1186 [Verbose] > │ let v2 : (exn -> US0) = closure1() │
00:00:43 #1187 [Verbose] > │ let v3 : US0 = try v0 (); v1 with ex -> ex |> v2 │
00:00:43 #1188 [Verbose] > │ let v14 : US1 = │
00:00:43 #1189 [Verbose] > │ match v3 with │
00:00:43 #1190 [Verbose] > │ | US0_0 -> (* None *) │
00:00:43 #1191 [Verbose] > │ US1_0 │
00:00:43 #1192 [Verbose] > │ | US0_1(v4) -> (* Some *) │
00:00:43 #1193 [Verbose] > │ let mutable result = None │
00:00:43 #1194 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:00:43 #1195 [Verbose] > │ let v5 : string = $"%A{v4}" │
00:00:43 #1196 [Verbose] > │ v5 │
00:00:43 #1197 [Verbose] > │ #endif │
00:00:43 #1198 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:00:43 #1199 [Verbose] > │ let v6 : string = $"%A{v4}" │
00:00:43 #1200 [Verbose] > │ v6 │
00:00:43 #1201 [Verbose] > │ #endif │
00:00:43 #1202 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:43 #1203 [Verbose] > │ let v7 : string = $"{v4.GetType ()}: {v4.Message}" │
00:00:43 #1204 [Verbose] > │ v7 │
00:00:43 #1205 [Verbose] > │ #endif │
00:00:43 #1206 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:43 #1207 [Verbose] > │ let v8 : string = $"%A{v4}" │
00:00:43 #1208 [Verbose] > │ v8 │
00:00:43 #1209 [Verbose] > │ #endif │
00:00:43 #1210 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:00:43 #1211 [Verbose] > │ let v9 : string = $"%A{v4}" │
00:00:43 #1212 [Verbose] > │ v9 │
00:00:43 #1213 [Verbose] > │ #endif │
00:00:43 #1214 [Verbose] > │ |> fun x -> result <- Some x │
00:00:43 #1215 [Verbose] > │ let v10 : string = result |> Option.get │
00:00:43 #1216 [Verbose] > │ US1_1(v10) │
00:00:43 #1217 [Verbose] > │ let v15 : string = $"%A{v14}" │
00:00:43 #1218 [Verbose] > │ System.Console.WriteLine v15 │
00:00:43 #1219 [Verbose] > │ let v20 : bool = │
00:00:43 #1220 [Verbose] > │ match v14 with │
00:00:43 #1221 [Verbose] > │ | US1_1(v18) -> (* Some *) │
00:00:43 #1222 [Verbose] > │ let v19 : bool = v18 = "System.Exception: test" │
00:00:43 #1223 [Verbose] > │ v19 │
00:00:43 #1224 [Verbose] > │ | _ -> │
00:00:43 #1225 [Verbose] > │ false │
00:00:43 #1226 [Verbose] > │ let v22 : bool = │
00:00:43 #1227 [Verbose] > │ if v20 then │
00:00:43 #1228 [Verbose] > │ true │
00:00:43 #1229 [Verbose] > │ else │
00:00:43 #1230 [Verbose] > │ method1(v20) │
00:00:43 #1231 [Verbose] > │ let v23 : string = "System.Exception: test" │
00:00:43 #1232 [Verbose] > │ let v24 : US1 = US1_1(v23) │
00:00:43 #1233 [Verbose] > │ let v25 : string = $"__expect / actual: %A{v14} / expected: %A{v24}" │
00:00:43 #1234 [Verbose] > │ let v26 : bool = v22 = false │
00:00:43 #1235 [Verbose] > │ if v26 then │
00:00:43 #1236 [Verbose] > │ failwith<unit> v25 │
00:00:43 #1237 [Verbose] > │ method0() │
00:00:43 #1238 [Verbose] > │ │
00:00:43 #1239 [Verbose] > │ US1_1 "System.Exception: test" │
00:00:43 #1240 [Verbose] > │ │
00:00:43 #1241 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:43 #1242 [Verbose] >
00:00:43 #1243 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:43 #1244 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:43 #1245 [Verbose] > │ ## use_disposable │
00:00:43 #1246 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:43 #1247 [Verbose] >
00:00:43 #1248 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:43 #1249 [Verbose] > inl use_disposable (disposable : disposable) : disposable =
00:00:43 #1250 [Verbose] > $"use !disposable = !disposable" : ()
00:00:43 #1251 [Verbose] > $"!disposable"
00:00:44 #1252 [Verbose] >
00:00:44 #1253 [Verbose] > ╭─[ 246.06ms - stdout ]────────────────────────────────────────────────────────╮
00:00:44 #1254 [Verbose] > │ () │
00:00:44 #1255 [Verbose] > │ │
00:00:44 #1256 [Verbose] > │ │
00:00:44 #1257 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:44 #1258 [Verbose] >
00:00:44 #1259 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:44 #1260 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:44 #1261 [Verbose] > │ ## new_disposable │
00:00:44 #1262 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:44 #1263 [Verbose] >
00:00:44 #1264 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:44 #1265 [Verbose] > inl new_disposable (fn : () -> ()) : disposable =
00:00:44 #1266 [Verbose] > run_target function
00:00:44 #1267 [Verbose] > | Fsharp _ => fun () => $'{ new System.IDisposable with member _.Dispose
00:00:44 #1268 [Verbose] > () = !fn () }'
00:00:44 #1269 [Verbose] > | Rust _ =>
00:00:44 #1270 [Verbose] > inl fn = join fn
00:00:44 #1271 [Verbose] > fun () => $'{ new System.IDisposable with member _.Dispose () =
00:00:44 #1272 [Verbose] > Fable.Core.RustInterop.emitRustExpr () "!fn()" }'
00:00:44 #1273 [Verbose] >
00:00:44 #1274 [Verbose] > ╭─[ 250.49ms - stdout ]────────────────────────────────────────────────────────╮
00:00:44 #1275 [Verbose] > │ () │
00:00:44 #1276 [Verbose] > │ │
00:00:44 #1277 [Verbose] > │ │
00:00:44 #1278 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:44 #1279 [Verbose] >
00:00:44 #1280 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:44 #1281 [Verbose] > // // test
00:00:44 #1282 [Verbose] >
00:00:44 #1283 [Verbose] > inl new_disposable_test = mut 0i32
00:00:44 #1284 [Verbose] > new_disposable (fun () => new_disposable_test <- *new_disposable_test + 1)
00:00:44 #1285 [Verbose] > |> $'_.Dispose()'
00:00:44 #1286 [Verbose] > *new_disposable_test |> _assert_eq 1
00:00:44 #1287 [Verbose] >
00:00:44 #1288 [Verbose] > ╭─[ 582.64ms - stdout ]────────────────────────────────────────────────────────╮
00:00:44 #1289 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:00:44 #1290 [Verbose] > │ let rec closure0 (v0 : Mut0) () : unit = │
00:00:44 #1291 [Verbose] > │ let v1 : int32 = v0.l0 │
00:00:44 #1292 [Verbose] > │ let v2 : int32 = v1 + 1 │
00:00:44 #1293 [Verbose] > │ v0.l0 <- v2 │
00:00:44 #1294 [Verbose] > │ () │
00:00:44 #1295 [Verbose] > │ and method1 (v0 : Mut0) : (unit -> unit) = │
00:00:44 #1296 [Verbose] > │ closure0(v0) │
00:00:44 #1297 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:00:44 #1298 [Verbose] > │ v0 │
00:00:44 #1299 [Verbose] > │ and method0 () : unit = │
00:00:44 #1300 [Verbose] > │ let v0 : Mut0 = {l0 = 0} : Mut0 │
00:00:44 #1301 [Verbose] > │ let mutable result = None │
00:00:44 #1302 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:00:44 #1303 [Verbose] > │ let v1 : (unit -> unit) = method1(v0) │
00:00:44 #1304 [Verbose] > │ let v2 : System.IDisposable = { new System.IDisposable with member │
00:00:44 #1305 [Verbose] > │ _.Dispose () = Fable.Core.RustInterop.emitRustExpr () "v1()" } │
00:00:44 #1306 [Verbose] > │ v2 │
00:00:44 #1307 [Verbose] > │ #endif │
00:00:44 #1308 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:00:44 #1309 [Verbose] > │ let v3 : (unit -> unit) = method1(v0) │
00:00:44 #1310 [Verbose] > │ let v4 : System.IDisposable = { new System.IDisposable with member │
00:00:44 #1311 [Verbose] > │ _.Dispose () = Fable.Core.RustInterop.emitRustExpr () "v3()" } │
00:00:44 #1312 [Verbose] > │ v4 │
00:00:44 #1313 [Verbose] > │ #endif │
00:00:44 #1314 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:44 #1315 [Verbose] > │ let v5 : (unit -> unit) = closure0(v0) │
00:00:44 #1316 [Verbose] > │ let v6 : System.IDisposable = { new System.IDisposable with member │
00:00:44 #1317 [Verbose] > │ _.Dispose () = v5 () } │
00:00:44 #1318 [Verbose] > │ v6 │
00:00:44 #1319 [Verbose] > │ #endif │
00:00:44 #1320 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:44 #1321 [Verbose] > │ let v7 : System.IDisposable = { new System.IDisposable with member │
00:00:44 #1322 [Verbose] > │ _.Dispose () = v5 () } │
00:00:44 #1323 [Verbose] > │ v7 │
00:00:44 #1324 [Verbose] > │ #endif │
00:00:44 #1325 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:00:44 #1326 [Verbose] > │ let v8 : System.IDisposable = { new System.IDisposable with member │
00:00:44 #1327 [Verbose] > │ _.Dispose () = v5 () } │
00:00:44 #1328 [Verbose] > │ v8 │
00:00:44 #1329 [Verbose] > │ #endif │
00:00:44 #1330 [Verbose] > │ |> fun x -> result <- Some x │
00:00:44 #1331 [Verbose] > │ let v9 : System.IDisposable = result |> Option.get │
00:00:44 #1332 [Verbose] > │ let v10 : (System.IDisposable -> unit) = _.Dispose() │
00:00:44 #1333 [Verbose] > │ v10 v9 │
00:00:44 #1334 [Verbose] > │ let v11 : int32 = v0.l0 │
00:00:44 #1335 [Verbose] > │ let v12 : string = $"%A{v11}" │
00:00:44 #1336 [Verbose] > │ System.Console.WriteLine v12 │
00:00:44 #1337 [Verbose] > │ let v13 : bool = v11 = 1 │
00:00:44 #1338 [Verbose] > │ let v15 : bool = │
00:00:44 #1339 [Verbose] > │ if v13 then │
00:00:44 #1340 [Verbose] > │ true │
00:00:44 #1341 [Verbose] > │ else │
00:00:44 #1342 [Verbose] > │ method2(v13) │
00:00:44 #1343 [Verbose] > │ let v16 : string = $"__expect / actual: %A{v11} / expected: %A{1}" │
00:00:44 #1344 [Verbose] > │ let v17 : bool = v15 = false │
00:00:44 #1345 [Verbose] > │ if v17 then │
00:00:44 #1346 [Verbose] > │ failwith<unit> v16 │
00:00:44 #1347 [Verbose] > │ method0() │
00:00:44 #1348 [Verbose] > │ │
00:00:44 #1349 [Verbose] > │ 1 │
00:00:44 #1350 [Verbose] > │ │
00:00:44 #1351 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:44 #1352 [Verbose] >
00:00:44 #1353 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:44 #1354 [Verbose] > // // test
00:00:44 #1355 [Verbose] >
00:00:44 #1356 [Verbose] > inl new_disposable_test = mut 0i32
00:00:44 #1357 [Verbose] > fun () =>
00:00:44 #1358 [Verbose] > new_disposable fun () => new_disposable_test <- *new_disposable_test + 1
00:00:44 #1359 [Verbose] > |> use_disposable
00:00:44 #1360 [Verbose] > |> ignore
00:00:44 #1361 [Verbose] > |> async.new_task
00:00:44 #1362 [Verbose] > |> async.await_task
00:00:44 #1363 [Verbose] > |> async.run_synchronously
00:00:44 #1364 [Verbose] > *new_disposable_test |> _assert_eq 1
00:00:45 #1365 [Verbose] >
00:00:45 #1366 [Verbose] > ╭─[ 373.82ms - stdout ]────────────────────────────────────────────────────────╮
00:00:45 #1367 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:00:45 #1368 [Verbose] > │ let rec closure0 (v0 : Mut0) () : unit = │
00:00:45 #1369 [Verbose] > │ let v1 : int32 = v0.l0 │
00:00:45 #1370 [Verbose] > │ let v2 : int32 = v1 + 1 │
00:00:45 #1371 [Verbose] > │ v0.l0 <- v2 │
00:00:45 #1372 [Verbose] > │ () │
00:00:45 #1373 [Verbose] > │ and method1 (v0 : Mut0) : (unit -> unit) = │
00:00:45 #1374 [Verbose] > │ closure0(v0) │
00:00:45 #1375 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:00:45 #1376 [Verbose] > │ v0 │
00:00:45 #1377 [Verbose] > │ and method0 () : unit = │
00:00:45 #1378 [Verbose] > │ let v0 : Mut0 = {l0 = 0} : Mut0 │
00:00:45 #1379 [Verbose] > │ let mutable result = None │
00:00:45 #1380 [Verbose] > │ task { │
00:00:45 #1381 [Verbose] > │ let mutable result = None │
00:00:45 #1382 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:00:45 #1383 [Verbose] > │ let v1 : (unit -> unit) = method1(v0) │
00:00:45 #1384 [Verbose] > │ let v2 : System.IDisposable = { new System.IDisposable with member │
00:00:45 #1385 [Verbose] > │ _.Dispose () = Fable.Core.RustInterop.emitRustExpr () "v1()" } │
00:00:45 #1386 [Verbose] > │ v2 │
00:00:45 #1387 [Verbose] > │ #endif │
00:00:45 #1388 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:00:45 #1389 [Verbose] > │ let v3 : (unit -> unit) = method1(v0) │
00:00:45 #1390 [Verbose] > │ let v4 : System.IDisposable = { new System.IDisposable with member │
00:00:45 #1391 [Verbose] > │ _.Dispose () = Fable.Core.RustInterop.emitRustExpr () "v3()" } │
00:00:45 #1392 [Verbose] > │ v4 │
00:00:45 #1393 [Verbose] > │ #endif │
00:00:45 #1394 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:45 #1395 [Verbose] > │ let v5 : (unit -> unit) = closure0(v0) │
00:00:45 #1396 [Verbose] > │ let v6 : System.IDisposable = { new System.IDisposable with member │
00:00:45 #1397 [Verbose] > │ _.Dispose () = v5 () } │
00:00:45 #1398 [Verbose] > │ v6 │
00:00:45 #1399 [Verbose] > │ #endif │
00:00:45 #1400 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:45 #1401 [Verbose] > │ let v7 : System.IDisposable = { new System.IDisposable with member │
00:00:45 #1402 [Verbose] > │ _.Dispose () = v5 () } │
00:00:45 #1403 [Verbose] > │ v7 │
00:00:45 #1404 [Verbose] > │ #endif │
00:00:45 #1405 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:00:45 #1406 [Verbose] > │ let v8 : System.IDisposable = { new System.IDisposable with member │
00:00:45 #1407 [Verbose] > │ _.Dispose () = v5 () } │
00:00:45 #1408 [Verbose] > │ v8 │
00:00:45 #1409 [Verbose] > │ #endif │
00:00:45 #1410 [Verbose] > │ |> fun x -> result <- Some x │
00:00:45 #1411 [Verbose] > │ let v9 : System.IDisposable = result |> Option.get │
00:00:45 #1412 [Verbose] > │ use v9 = v9 │
00:00:45 #1413 [Verbose] > │ let v10 : System.IDisposable = v9 │
00:00:45 #1414 [Verbose] > │ return () │
00:00:45 #1415 [Verbose] > │ } │
00:00:45 #1416 [Verbose] > │ |> fun x -> result <- Some x │
00:00:45 #1417 [Verbose] > │ let v11 : System.Threading.Tasks.Task<unit> = result |> Option.get │
00:00:45 #1418 [Verbose] > │ let v12 : (System.Threading.Tasks.Task<unit> -> Async<unit>) = │
00:00:45 #1419 [Verbose] > │ Async.AwaitTask │
00:00:45 #1420 [Verbose] > │ let v13 : Async<unit> = v12 v11 │
00:00:45 #1421 [Verbose] > │ let v14 : (Async<unit> -> unit) = Async.RunSynchronously │
00:00:45 #1422 [Verbose] > │ v14 v13 │
00:00:45 #1423 [Verbose] > │ let v15 : int32 = v0.l0 │
00:00:45 #1424 [Verbose] > │ let v16 : string = $"%A{v15}" │
00:00:45 #1425 [Verbose] > │ System.Console.WriteLine v16 │
00:00:45 #1426 [Verbose] > │ let v17 : bool = v15 = 1 │
00:00:45 #1427 [Verbose] > │ let v19 : bool = │
00:00:45 #1428 [Verbose] > │ if v17 then │
00:00:45 #1429 [Verbose] > │ true │
00:00:45 #1430 [Verbose] > │ else │
00:00:45 #1431 [Verbose] > │ method2(v17) │
00:00:45 #1432 [Verbose] > │ let v20 : string = $"__expect / actual: %A{v15} / expected: %A{1}" │
00:00:45 #1433 [Verbose] > │ let v21 : bool = v19 = false │
00:00:45 #1434 [Verbose] > │ if v21 then │
00:00:45 #1435 [Verbose] > │ failwith<unit> v20 │
00:00:45 #1436 [Verbose] > │ method0() │
00:00:45 #1437 [Verbose] > │ │
00:00:45 #1438 [Verbose] > │ 1 │
00:00:45 #1439 [Verbose] > │ │
00:00:45 #1440 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:45 #1441 [Verbose] >
00:00:45 #1442 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:45 #1443 [Verbose] > // // test
00:00:45 #1444 [Verbose] >
00:00:45 #1445 [Verbose] > inl new_disposable_test = mut 0i32
00:00:45 #1446 [Verbose] > fun () =>
00:00:45 #1447 [Verbose] > new_disposable fun () => new_disposable_test <- *new_disposable_test + 1
00:00:45 #1448 [Verbose] > |> use_disposable
00:00:45 #1449 [Verbose] > |> ignore
00:00:45 #1450 [Verbose] > |> async.new_async
00:00:45 #1451 [Verbose] > |> async.run_synchronously
00:00:45 #1452 [Verbose] > *new_disposable_test |> _assert_eq 1
00:00:45 #1453 [Verbose] >
00:00:45 #1454 [Verbose] > ╭─[ 270.85ms - stdout ]────────────────────────────────────────────────────────╮
00:00:45 #1455 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:00:45 #1456 [Verbose] > │ let rec closure0 (v0 : Mut0) () : unit = │
00:00:45 #1457 [Verbose] > │ let v1 : int32 = v0.l0 │
00:00:45 #1458 [Verbose] > │ let v2 : int32 = v1 + 1 │
00:00:45 #1459 [Verbose] > │ v0.l0 <- v2 │
00:00:45 #1460 [Verbose] > │ () │
00:00:45 #1461 [Verbose] > │ and method1 (v0 : Mut0) : (unit -> unit) = │
00:00:45 #1462 [Verbose] > │ closure0(v0) │
00:00:45 #1463 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:00:45 #1464 [Verbose] > │ v0 │
00:00:45 #1465 [Verbose] > │ and method0 () : unit = │
00:00:45 #1466 [Verbose] > │ let v0 : Mut0 = {l0 = 0} : Mut0 │
00:00:45 #1467 [Verbose] > │ let mutable result = None │
00:00:45 #1468 [Verbose] > │ async { │
00:00:45 #1469 [Verbose] > │ let mutable result = None │
00:00:45 #1470 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:00:45 #1471 [Verbose] > │ let v1 : (unit -> unit) = method1(v0) │
00:00:45 #1472 [Verbose] > │ let v2 : System.IDisposable = { new System.IDisposable with member │
00:00:45 #1473 [Verbose] > │ _.Dispose () = Fable.Core.RustInterop.emitRustExpr () "v1()" } │
00:00:45 #1474 [Verbose] > │ v2 │
00:00:45 #1475 [Verbose] > │ #endif │
00:00:45 #1476 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:00:45 #1477 [Verbose] > │ let v3 : (unit -> unit) = method1(v0) │
00:00:45 #1478 [Verbose] > │ let v4 : System.IDisposable = { new System.IDisposable with member │
00:00:45 #1479 [Verbose] > │ _.Dispose () = Fable.Core.RustInterop.emitRustExpr () "v3()" } │
00:00:45 #1480 [Verbose] > │ v4 │
00:00:45 #1481 [Verbose] > │ #endif │
00:00:45 #1482 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:45 #1483 [Verbose] > │ let v5 : (unit -> unit) = closure0(v0) │
00:00:45 #1484 [Verbose] > │ let v6 : System.IDisposable = { new System.IDisposable with member │
00:00:45 #1485 [Verbose] > │ _.Dispose () = v5 () } │
00:00:45 #1486 [Verbose] > │ v6 │
00:00:45 #1487 [Verbose] > │ #endif │
00:00:45 #1488 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:45 #1489 [Verbose] > │ let v7 : System.IDisposable = { new System.IDisposable with member │
00:00:45 #1490 [Verbose] > │ _.Dispose () = v5 () } │
00:00:45 #1491 [Verbose] > │ v7 │
00:00:45 #1492 [Verbose] > │ #endif │
00:00:45 #1493 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:00:45 #1494 [Verbose] > │ let v8 : System.IDisposable = { new System.IDisposable with member │
00:00:45 #1495 [Verbose] > │ _.Dispose () = v5 () } │
00:00:45 #1496 [Verbose] > │ v8 │
00:00:45 #1497 [Verbose] > │ #endif │
00:00:45 #1498 [Verbose] > │ |> fun x -> result <- Some x │
00:00:45 #1499 [Verbose] > │ let v9 : System.IDisposable = result |> Option.get │
00:00:45 #1500 [Verbose] > │ use v9 = v9 │
00:00:45 #1501 [Verbose] > │ let v10 : System.IDisposable = v9 │
00:00:45 #1502 [Verbose] > │ return () │
00:00:45 #1503 [Verbose] > │ } │
00:00:45 #1504 [Verbose] > │ |> fun x -> result <- Some x │
00:00:45 #1505 [Verbose] > │ let v11 : Async<unit> = result |> Option.get │
00:00:45 #1506 [Verbose] > │ let v12 : (Async<unit> -> unit) = Async.RunSynchronously │
00:00:45 #1507 [Verbose] > │ v12 v11 │
00:00:45 #1508 [Verbose] > │ let v13 : int32 = v0.l0 │
00:00:45 #1509 [Verbose] > │ let v14 : string = $"%A{v13}" │
00:00:45 #1510 [Verbose] > │ System.Console.WriteLine v14 │
00:00:45 #1511 [Verbose] > │ let v15 : bool = v13 = 1 │
00:00:45 #1512 [Verbose] > │ let v17 : bool = │
00:00:45 #1513 [Verbose] > │ if v15 then │
00:00:45 #1514 [Verbose] > │ true │
00:00:45 #1515 [Verbose] > │ else │
00:00:45 #1516 [Verbose] > │ method2(v15) │
00:00:45 #1517 [Verbose] > │ let v18 : string = $"__expect / actual: %A{v13} / expected: %A{1}" │
00:00:45 #1518 [Verbose] > │ let v19 : bool = v17 = false │
00:00:45 #1519 [Verbose] > │ if v19 then │
00:00:45 #1520 [Verbose] > │ failwith<unit> v18 │
00:00:45 #1521 [Verbose] > │ method0() │
00:00:45 #1522 [Verbose] > │ │
00:00:45 #1523 [Verbose] > │ 1 │
00:00:45 #1524 [Verbose] > │ │
00:00:45 #1525 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:45 #1526 [Verbose] >
00:00:45 #1527 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:45 #1528 [Verbose] > // // test
00:00:45 #1529 [Verbose] >
00:00:45 #1530 [Verbose] > inl new_disposable_test = mut 0i32
00:00:45 #1531 [Verbose] > fun () =>
00:00:45 #1532 [Verbose] > new_disposable fun () => new_disposable_test <- *new_disposable_test + 1
00:00:45 #1533 [Verbose] > |> ignore
00:00:45 #1534 [Verbose] > |> async.new_async
00:00:45 #1535 [Verbose] > |> async.run_synchronously
00:00:45 #1536 [Verbose] > *new_disposable_test |> _assert_eq 0
00:00:45 #1537 [Verbose] >
00:00:45 #1538 [Verbose] > ╭─[ 263.20ms - stdout ]────────────────────────────────────────────────────────╮
00:00:45 #1539 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:00:45 #1540 [Verbose] > │ let rec closure0 (v0 : Mut0) () : unit = │
00:00:45 #1541 [Verbose] > │ let v1 : int32 = v0.l0 │
00:00:45 #1542 [Verbose] > │ let v2 : int32 = v1 + 1 │
00:00:45 #1543 [Verbose] > │ v0.l0 <- v2 │
00:00:45 #1544 [Verbose] > │ () │
00:00:45 #1545 [Verbose] > │ and method1 (v0 : Mut0) : (unit -> unit) = │
00:00:45 #1546 [Verbose] > │ closure0(v0) │
00:00:45 #1547 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:00:45 #1548 [Verbose] > │ v0 │
00:00:45 #1549 [Verbose] > │ and method0 () : unit = │
00:00:45 #1550 [Verbose] > │ let v0 : Mut0 = {l0 = 0} : Mut0 │
00:00:45 #1551 [Verbose] > │ let mutable result = None │
00:00:45 #1552 [Verbose] > │ async { │
00:00:45 #1553 [Verbose] > │ let mutable result = None │
00:00:45 #1554 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:00:45 #1555 [Verbose] > │ let v1 : (unit -> unit) = method1(v0) │
00:00:45 #1556 [Verbose] > │ let v2 : System.IDisposable = { new System.IDisposable with member │
00:00:45 #1557 [Verbose] > │ _.Dispose () = Fable.Core.RustInterop.emitRustExpr () "v1()" } │
00:00:45 #1558 [Verbose] > │ v2 │
00:00:45 #1559 [Verbose] > │ #endif │
00:00:45 #1560 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:00:45 #1561 [Verbose] > │ let v3 : (unit -> unit) = method1(v0) │
00:00:45 #1562 [Verbose] > │ let v4 : System.IDisposable = { new System.IDisposable with member │
00:00:45 #1563 [Verbose] > │ _.Dispose () = Fable.Core.RustInterop.emitRustExpr () "v3()" } │
00:00:45 #1564 [Verbose] > │ v4 │
00:00:45 #1565 [Verbose] > │ #endif │
00:00:45 #1566 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:45 #1567 [Verbose] > │ let v5 : (unit -> unit) = closure0(v0) │
00:00:45 #1568 [Verbose] > │ let v6 : System.IDisposable = { new System.IDisposable with member │
00:00:45 #1569 [Verbose] > │ _.Dispose () = v5 () } │
00:00:45 #1570 [Verbose] > │ v6 │
00:00:45 #1571 [Verbose] > │ #endif │
00:00:45 #1572 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:45 #1573 [Verbose] > │ let v7 : System.IDisposable = { new System.IDisposable with member │
00:00:45 #1574 [Verbose] > │ _.Dispose () = v5 () } │
00:00:45 #1575 [Verbose] > │ v7 │
00:00:45 #1576 [Verbose] > │ #endif │
00:00:45 #1577 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:00:45 #1578 [Verbose] > │ let v8 : System.IDisposable = { new System.IDisposable with member │
00:00:45 #1579 [Verbose] > │ _.Dispose () = v5 () } │
00:00:45 #1580 [Verbose] > │ v8 │
00:00:45 #1581 [Verbose] > │ #endif │
00:00:45 #1582 [Verbose] > │ |> fun x -> result <- Some x │
00:00:45 #1583 [Verbose] > │ let v9 : System.IDisposable = result |> Option.get │
00:00:45 #1584 [Verbose] > │ return () │
00:00:45 #1585 [Verbose] > │ } │
00:00:45 #1586 [Verbose] > │ |> fun x -> result <- Some x │
00:00:45 #1587 [Verbose] > │ let v10 : Async<unit> = result |> Option.get │
00:00:45 #1588 [Verbose] > │ let v11 : (Async<unit> -> unit) = Async.RunSynchronously │
00:00:45 #1589 [Verbose] > │ v11 v10 │
00:00:45 #1590 [Verbose] > │ let v12 : int32 = v0.l0 │
00:00:45 #1591 [Verbose] > │ let v13 : string = $"%A{v12}" │
00:00:45 #1592 [Verbose] > │ System.Console.WriteLine v13 │
00:00:45 #1593 [Verbose] > │ let v14 : bool = v12 = 0 │
00:00:45 #1594 [Verbose] > │ let v16 : bool = │
00:00:45 #1595 [Verbose] > │ if v14 then │
00:00:45 #1596 [Verbose] > │ true │
00:00:45 #1597 [Verbose] > │ else │
00:00:45 #1598 [Verbose] > │ method2(v14) │
00:00:45 #1599 [Verbose] > │ let v17 : string = $"__expect / actual: %A{v12} / expected: %A{0}" │
00:00:45 #1600 [Verbose] > │ let v18 : bool = v16 = false │
00:00:45 #1601 [Verbose] > │ if v18 then │
00:00:45 #1602 [Verbose] > │ failwith<unit> v17 │
00:00:45 #1603 [Verbose] > │ method0() │
00:00:45 #1604 [Verbose] > │ │
00:00:45 #1605 [Verbose] > │ 0 │
00:00:45 #1606 [Verbose] > │ │
00:00:45 #1607 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:45 #1608 [Verbose] >
00:00:45 #1609 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:45 #1610 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:45 #1611 [Verbose] > │ ## try │
00:00:45 #1612 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:45 #1613 [Verbose] >
00:00:45 #1614 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:45 #1615 [Verbose] > inl try forall t. (fn : () -> t) (ex_fn : exn -> ()) : option t =
00:00:45 #1616 [Verbose] > inl none = None : option t
00:00:45 #1617 [Verbose] > inl some (s : t) = Some s
00:00:45 #1618 [Verbose] > $'try !fn () |> !some with ex -> !ex_fn ex; !none '
00:00:46 #1619 [Verbose] >
00:00:46 #1620 [Verbose] > ╭─[ 216.20ms - stdout ]────────────────────────────────────────────────────────╮
00:00:46 #1621 [Verbose] > │ () │
00:00:46 #1622 [Verbose] > │ │
00:00:46 #1623 [Verbose] > │ │
00:00:46 #1624 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:46 #1625 [Verbose] >
00:00:46 #1626 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:46 #1627 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:46 #1628 [Verbose] > │ ## sleep │
00:00:46 #1629 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:46 #1630 [Verbose] >
00:00:46 #1631 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:46 #1632 [Verbose] > inl sleep (n : i32) : () =
00:00:46 #1633 [Verbose] > run_target function
00:00:46 #1634 [Verbose] > | Fsharp (Native) => fun () => $'System.Threading.Thread.Sleep' n
00:00:46 #1635 [Verbose] > | _ => fun () => ()
00:00:46 #1636 [Verbose] >
00:00:46 #1637 [Verbose] > ╭─[ 266.86ms - stdout ]────────────────────────────────────────────────────────╮
00:00:46 #1638 [Verbose] > │ () │
00:00:46 #1639 [Verbose] > │ │
00:00:46 #1640 [Verbose] > │ │
00:00:46 #1641 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:46 #1642 [Verbose] >
00:00:46 #1643 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:46 #1644 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:46 #1645 [Verbose] > │ ## retry_fn │
00:00:46 #1646 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:46 #1647 [Verbose] >
00:00:46 #1648 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:46 #1649 [Verbose] > inl retry_fn forall t. retries (fn : () -> t) : option t =
00:00:46 #1650 [Verbose] > let rec loop retry =
00:00:46 #1651 [Verbose] > try
00:00:46 #1652 [Verbose] > fun () =>
00:00:46 #1653 [Verbose] > if retry < retries
00:00:46 #1654 [Verbose] > then fn () |> Some
00:00:46 #1655 [Verbose] > else None
00:00:46 #1656 [Verbose] > fun ex =>
00:00:46 #1657 [Verbose] > let getLocals () = $"retry: {retry} / ex: {ex |>
00:00:46 #1658 [Verbose] > Sm.format_exception} / {getLocals ()}"
00:00:46 #1659 [Verbose] > // trace Warning (fun () => "retry_fn") getLocals
00:00:46 #1660 [Verbose] > sleep 1
00:00:46 #1661 [Verbose] > |> function
00:00:46 #1662 [Verbose] > | Some x => x
00:00:46 #1663 [Verbose] > | None => loop (retry + 1)
00:00:46 #1664 [Verbose] > loop 0
00:00:46 #1665 [Verbose] >
00:00:46 #1666 [Verbose] > ╭─[ 236.89ms - stdout ]────────────────────────────────────────────────────────╮
00:00:46 #1667 [Verbose] > │ () │
00:00:46 #1668 [Verbose] > │ │
00:00:46 #1669 [Verbose] > │ │
00:00:46 #1670 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:46 #1671 [Verbose] >
00:00:46 #1672 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:46 #1673 [Verbose] > // // test
00:00:46 #1674 [Verbose] >
00:00:46 #1675 [Verbose] > inl retry_fn_test = mut 0i32
00:00:46 #1676 [Verbose] > fun () =>
00:00:46 #1677 [Verbose] > retry_fn_test <- *retry_fn_test + 1
00:00:46 #1678 [Verbose] > *retry_fn_test
00:00:46 #1679 [Verbose] > |> retry_fn 3i32
00:00:46 #1680 [Verbose] > |> _assert_eq (Some 1i32)
00:00:46 #1681 [Verbose] >
00:00:46 #1682 [Verbose] > ╭─[ 279.79ms - stdout ]────────────────────────────────────────────────────────╮
00:00:46 #1683 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:00:46 #1684 [Verbose] > │ and [<Struct>] US0 = │
00:00:46 #1685 [Verbose] > │ | US0_0 │
00:00:46 #1686 [Verbose] > │ | US0_1 of f1_0 : int32 │
00:00:46 #1687 [Verbose] > │ and [<Struct>] US1 = │
00:00:46 #1688 [Verbose] > │ | US1_0 │
00:00:46 #1689 [Verbose] > │ | US1_1 of f1_0 : US0 │
00:00:46 #1690 [Verbose] > │ let rec closure0 (v0 : Mut0, v1 : int32) () : US0 = │
00:00:46 #1691 [Verbose] > │ let v2 : bool = v1 < 3 │
00:00:46 #1692 [Verbose] > │ if v2 then │
00:00:46 #1693 [Verbose] > │ let v3 : int32 = v0.l0 │
00:00:46 #1694 [Verbose] > │ let v4 : int32 = v3 + 1 │
00:00:46 #1695 [Verbose] > │ v0.l0 <- v4 │
00:00:46 #1696 [Verbose] > │ let v5 : int32 = v0.l0 │
00:00:46 #1697 [Verbose] > │ US0_1(v5) │
00:00:46 #1698 [Verbose] > │ else │
00:00:46 #1699 [Verbose] > │ US0_0 │
00:00:46 #1700 [Verbose] > │ and closure1 () (v0 : US0) : US1 = │
00:00:46 #1701 [Verbose] > │ US1_1(v0) │
00:00:46 #1702 [Verbose] > │ and closure2 () (v0 : exn) : unit = │
00:00:46 #1703 [Verbose] > │ let mutable result = None │
00:00:46 #1704 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:00:46 #1705 [Verbose] > │ () │
00:00:46 #1706 [Verbose] > │ #endif │
00:00:46 #1707 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:00:46 #1708 [Verbose] > │ () │
00:00:46 #1709 [Verbose] > │ #endif │
00:00:46 #1710 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:46 #1711 [Verbose] > │ let v1 : (int32 -> unit) = System.Threading.Thread.Sleep │
00:00:46 #1712 [Verbose] > │ v1 1 │
00:00:46 #1713 [Verbose] > │ () │
00:00:46 #1714 [Verbose] > │ #endif │
00:00:46 #1715 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:46 #1716 [Verbose] > │ () │
00:00:46 #1717 [Verbose] > │ #endif │
00:00:46 #1718 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:00:46 #1719 [Verbose] > │ () │
00:00:46 #1720 [Verbose] > │ #endif │
00:00:46 #1721 [Verbose] > │ |> fun x -> result <- Some x │
00:00:46 #1722 [Verbose] > │ result |> Option.get │
00:00:46 #1723 [Verbose] > │ () │
00:00:46 #1724 [Verbose] > │ and method1 (v0 : Mut0, v1 : int32) : US0 = │
00:00:46 #1725 [Verbose] > │ let v2 : (unit -> US0) = closure0(v0, v1) │
00:00:46 #1726 [Verbose] > │ let v3 : (US0 -> US1) = closure1() │
00:00:46 #1727 [Verbose] > │ let v4 : (exn -> unit) = closure2() │
00:00:46 #1728 [Verbose] > │ let v5 : US1 = US1_0 │
00:00:46 #1729 [Verbose] > │ let v6 : US1 = try v2 () |> v3 with ex -> v4 ex; v5 │
00:00:46 #1730 [Verbose] > │ match v6 with │
00:00:46 #1731 [Verbose] > │ | US1_0 -> (* None *) │
00:00:46 #1732 [Verbose] > │ let v8 : int32 = v1 + 1 │
00:00:46 #1733 [Verbose] > │ method1(v0, v8) │
00:00:46 #1734 [Verbose] > │ | US1_1(v7) -> (* Some *) │
00:00:46 #1735 [Verbose] > │ v7 │
00:00:46 #1736 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:00:46 #1737 [Verbose] > │ v0 │
00:00:46 #1738 [Verbose] > │ and method0 () : unit = │
00:00:46 #1739 [Verbose] > │ let v0 : Mut0 = {l0 = 0} : Mut0 │
00:00:46 #1740 [Verbose] > │ let v1 : int32 = 0 │
00:00:46 #1741 [Verbose] > │ let v2 : US0 = method1(v0, v1) │
00:00:46 #1742 [Verbose] > │ let v3 : string = $"%A{v2}" │
00:00:46 #1743 [Verbose] > │ System.Console.WriteLine v3 │
00:00:46 #1744 [Verbose] > │ let v7 : bool = │
00:00:46 #1745 [Verbose] > │ match v2 with │
00:00:46 #1746 [Verbose] > │ | US0_1(v5) -> (* Some *) │
00:00:46 #1747 [Verbose] > │ let v6 : bool = v5 = 1 │
00:00:46 #1748 [Verbose] > │ v6 │
00:00:46 #1749 [Verbose] > │ | _ -> │
00:00:46 #1750 [Verbose] > │ false │
00:00:46 #1751 [Verbose] > │ let v9 : bool = │
00:00:46 #1752 [Verbose] > │ if v7 then │
00:00:46 #1753 [Verbose] > │ true │
00:00:46 #1754 [Verbose] > │ else │
00:00:46 #1755 [Verbose] > │ method2(v7) │
00:00:46 #1756 [Verbose] > │ let v10 : US0 = US0_1(1) │
00:00:46 #1757 [Verbose] > │ let v11 : string = $"__expect / actual: %A{v2} / expected: %A{v10}" │
00:00:46 #1758 [Verbose] > │ let v12 : bool = v9 = false │
00:00:46 #1759 [Verbose] > │ if v12 then │
00:00:46 #1760 [Verbose] > │ failwith<unit> v11 │
00:00:46 #1761 [Verbose] > │ method0() │
00:00:46 #1762 [Verbose] > │ │
00:00:46 #1763 [Verbose] > │ US0_1 1 │
00:00:46 #1764 [Verbose] > │ │
00:00:46 #1765 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:46 #1766 [Verbose] >
00:00:46 #1767 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:46 #1768 [Verbose] > // // test
00:00:46 #1769 [Verbose] >
00:00:46 #1770 [Verbose] > inl retry_fn_test = mut 0i32
00:00:46 #1771 [Verbose] > fun () =>
00:00:46 #1772 [Verbose] > if *retry_fn_test >= 2
00:00:46 #1773 [Verbose] > then *retry_fn_test
00:00:46 #1774 [Verbose] > else
00:00:46 #1775 [Verbose] > retry_fn_test <- *retry_fn_test + 1
00:00:46 #1776 [Verbose] > failwith "test"
00:00:46 #1777 [Verbose] > |> retry_fn 3i32
00:00:46 #1778 [Verbose] > |> _assert_eq (Some 2i32)
00:00:47 #1779 [Verbose] >
00:00:47 #1780 [Verbose] > ╭─[ 295.58ms - stdout ]────────────────────────────────────────────────────────╮
00:00:47 #1781 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:00:47 #1782 [Verbose] > │ and [<Struct>] US0 = │
00:00:47 #1783 [Verbose] > │ | US0_0 │
00:00:47 #1784 [Verbose] > │ | US0_1 of f1_0 : int32 │
00:00:47 #1785 [Verbose] > │ and [<Struct>] US1 = │
00:00:47 #1786 [Verbose] > │ | US1_0 │
00:00:47 #1787 [Verbose] > │ | US1_1 of f1_0 : US0 │
00:00:47 #1788 [Verbose] > │ let rec closure0 (v0 : Mut0, v1 : int32) () : US0 = │
00:00:47 #1789 [Verbose] > │ let v2 : bool = v1 < 3 │
00:00:47 #1790 [Verbose] > │ if v2 then │
00:00:47 #1791 [Verbose] > │ let v3 : int32 = v0.l0 │
00:00:47 #1792 [Verbose] > │ let v4 : bool = v3 >= 2 │
00:00:47 #1793 [Verbose] > │ let v9 : int32 = │
00:00:47 #1794 [Verbose] > │ if v4 then │
00:00:47 #1795 [Verbose] > │ let v5 : int32 = v0.l0 │
00:00:47 #1796 [Verbose] > │ v5 │
00:00:47 #1797 [Verbose] > │ else │
00:00:47 #1798 [Verbose] > │ let v6 : int32 = v0.l0 │
00:00:47 #1799 [Verbose] > │ let v7 : int32 = v6 + 1 │
00:00:47 #1800 [Verbose] > │ v0.l0 <- v7 │
00:00:47 #1801 [Verbose] > │ failwith<int32> "test" │
00:00:47 #1802 [Verbose] > │ US0_1(v9) │
00:00:47 #1803 [Verbose] > │ else │
00:00:47 #1804 [Verbose] > │ US0_0 │
00:00:47 #1805 [Verbose] > │ and closure1 () (v0 : US0) : US1 = │
00:00:47 #1806 [Verbose] > │ US1_1(v0) │
00:00:47 #1807 [Verbose] > │ and closure2 () (v0 : exn) : unit = │
00:00:47 #1808 [Verbose] > │ let mutable result = None │
00:00:47 #1809 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:00:47 #1810 [Verbose] > │ () │
00:00:47 #1811 [Verbose] > │ #endif │
00:00:47 #1812 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:00:47 #1813 [Verbose] > │ () │
00:00:47 #1814 [Verbose] > │ #endif │
00:00:47 #1815 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:47 #1816 [Verbose] > │ let v1 : (int32 -> unit) = System.Threading.Thread.Sleep │
00:00:47 #1817 [Verbose] > │ v1 1 │
00:00:47 #1818 [Verbose] > │ () │
00:00:47 #1819 [Verbose] > │ #endif │
00:00:47 #1820 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:47 #1821 [Verbose] > │ () │
00:00:47 #1822 [Verbose] > │ #endif │
00:00:47 #1823 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:00:47 #1824 [Verbose] > │ () │
00:00:47 #1825 [Verbose] > │ #endif │
00:00:47 #1826 [Verbose] > │ |> fun x -> result <- Some x │
00:00:47 #1827 [Verbose] > │ result |> Option.get │
00:00:47 #1828 [Verbose] > │ () │
00:00:47 #1829 [Verbose] > │ and method1 (v0 : Mut0, v1 : int32) : US0 = │
00:00:47 #1830 [Verbose] > │ let v2 : (unit -> US0) = closure0(v0, v1) │
00:00:47 #1831 [Verbose] > │ let v3 : (US0 -> US1) = closure1() │
00:00:47 #1832 [Verbose] > │ let v4 : (exn -> unit) = closure2() │
00:00:47 #1833 [Verbose] > │ let v5 : US1 = US1_0 │
00:00:47 #1834 [Verbose] > │ let v6 : US1 = try v2 () |> v3 with ex -> v4 ex; v5 │
00:00:47 #1835 [Verbose] > │ match v6 with │
00:00:47 #1836 [Verbose] > │ | US1_0 -> (* None *) │
00:00:47 #1837 [Verbose] > │ let v8 : int32 = v1 + 1 │
00:00:47 #1838 [Verbose] > │ method1(v0, v8) │
00:00:47 #1839 [Verbose] > │ | US1_1(v7) -> (* Some *) │
00:00:47 #1840 [Verbose] > │ v7 │
00:00:47 #1841 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:00:47 #1842 [Verbose] > │ v0 │
00:00:47 #1843 [Verbose] > │ and method0 () : unit = │
00:00:47 #1844 [Verbose] > │ let v0 : Mut0 = {l0 = 0} : Mut0 │
00:00:47 #1845 [Verbose] > │ let v1 : int32 = 0 │
00:00:47 #1846 [Verbose] > │ let v2 : US0 = method1(v0, v1) │
00:00:47 #1847 [Verbose] > │ let v3 : string = $"%A{v2}" │
00:00:47 #1848 [Verbose] > │ System.Console.WriteLine v3 │
00:00:47 #1849 [Verbose] > │ let v7 : bool = │
00:00:47 #1850 [Verbose] > │ match v2 with │
00:00:47 #1851 [Verbose] > │ | US0_1(v5) -> (* Some *) │
00:00:47 #1852 [Verbose] > │ let v6 : bool = v5 = 2 │
00:00:47 #1853 [Verbose] > │ v6 │
00:00:47 #1854 [Verbose] > │ | _ -> │
00:00:47 #1855 [Verbose] > │ false │
00:00:47 #1856 [Verbose] > │ let v9 : bool = │
00:00:47 #1857 [Verbose] > │ if v7 then │
00:00:47 #1858 [Verbose] > │ true │
00:00:47 #1859 [Verbose] > │ else │
00:00:47 #1860 [Verbose] > │ method2(v7) │
00:00:47 #1861 [Verbose] > │ let v10 : US0 = US0_1(2) │
00:00:47 #1862 [Verbose] > │ let v11 : string = $"__expect / actual: %A{v2} / expected: %A{v10}" │
00:00:47 #1863 [Verbose] > │ let v12 : bool = v9 = false │
00:00:47 #1864 [Verbose] > │ if v12 then │
00:00:47 #1865 [Verbose] > │ failwith<unit> v11 │
00:00:47 #1866 [Verbose] > │ method0() │
00:00:47 #1867 [Verbose] > │ │
00:00:47 #1868 [Verbose] > │ US0_1 2 │
00:00:47 #1869 [Verbose] > │ │
00:00:47 #1870 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:47 #1871 [Verbose] >
00:00:47 #1872 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:47 #1873 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:47 #1874 [Verbose] > │ ## main │
00:00:47 #1875 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:47 #1876 [Verbose] >
00:00:47 #1877 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:47 #1878 [Verbose] > inl main () =
00:00:47 #1879 [Verbose] > inl retry_fn (r : i32) (x : () -> _) : optionm'.option' () =
00:00:47 #1880 [Verbose] > retry_fn r x |> optionm'.box
00:00:47 #1881 [Verbose] > $"let new_disposable x = !new_disposable x" : ()
00:00:47 #1882 [Verbose] > $"let retry_fn x = !retry_fn x" : ()
00:00:47 #1883 [Verbose] >
00:00:47 #1884 [Verbose] > ╭─[ 287.78ms - stdout ]────────────────────────────────────────────────────────╮
00:00:47 #1885 [Verbose] > │ type [<Struct>] US0 = │
00:00:47 #1886 [Verbose] > │ | US0_0 │
00:00:47 #1887 [Verbose] > │ | US0_1 │
00:00:47 #1888 [Verbose] > │ and [<Struct>] US1 = │
00:00:47 #1889 [Verbose] > │ | US1_0 │
00:00:47 #1890 [Verbose] > │ | US1_1 of f1_0 : US0 │
00:00:47 #1891 [Verbose] > │ let rec method0 (v0 : (unit -> unit)) : (unit -> unit) = │
00:00:47 #1892 [Verbose] > │ v0 │
00:00:47 #1893 [Verbose] > │ and closure0 () (v0 : (unit -> unit)) : System.IDisposable = │
00:00:47 #1894 [Verbose] > │ let mutable result = None │
00:00:47 #1895 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:00:47 #1896 [Verbose] > │ let v1 : (unit -> unit) = method0(v0) │
00:00:47 #1897 [Verbose] > │ let v2 : System.IDisposable = { new System.IDisposable with member │
00:00:47 #1898 [Verbose] > │ _.Dispose () = Fable.Core.RustInterop.emitRustExpr () "v1()" } │
00:00:47 #1899 [Verbose] > │ v2 │
00:00:47 #1900 [Verbose] > │ #endif │
00:00:47 #1901 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:00:47 #1902 [Verbose] > │ let v3 : (unit -> unit) = method0(v0) │
00:00:47 #1903 [Verbose] > │ let v4 : System.IDisposable = { new System.IDisposable with member │
00:00:47 #1904 [Verbose] > │ _.Dispose () = Fable.Core.RustInterop.emitRustExpr () "v3()" } │
00:00:47 #1905 [Verbose] > │ v4 │
00:00:47 #1906 [Verbose] > │ #endif │
00:00:47 #1907 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:47 #1908 [Verbose] > │ let v5 : System.IDisposable = { new System.IDisposable with member │
00:00:47 #1909 [Verbose] > │ _.Dispose () = v0 () } │
00:00:47 #1910 [Verbose] > │ v5 │
00:00:47 #1911 [Verbose] > │ #endif │
00:00:47 #1912 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:47 #1913 [Verbose] > │ let v6 : System.IDisposable = { new System.IDisposable with member │
00:00:47 #1914 [Verbose] > │ _.Dispose () = v0 () } │
00:00:47 #1915 [Verbose] > │ v6 │
00:00:47 #1916 [Verbose] > │ #endif │
00:00:47 #1917 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:00:47 #1918 [Verbose] > │ let v7 : System.IDisposable = { new System.IDisposable with member │
00:00:47 #1919 [Verbose] > │ _.Dispose () = v0 () } │
00:00:47 #1920 [Verbose] > │ v7 │
00:00:47 #1921 [Verbose] > │ #endif │
00:00:47 #1922 [Verbose] > │ |> fun x -> result <- Some x │
00:00:47 #1923 [Verbose] > │ let v8 : System.IDisposable = result |> Option.get │
00:00:47 #1924 [Verbose] > │ v8 │
00:00:47 #1925 [Verbose] > │ and closure3 (v0 : int32, v1 : (unit -> unit), v2 : int32) () : US0 = │
00:00:47 #1926 [Verbose] > │ let v3 : bool = v2 < v0 │
00:00:47 #1927 [Verbose] > │ if v3 then │
00:00:47 #1928 [Verbose] > │ v1 () │
00:00:47 #1929 [Verbose] > │ US0_1 │
00:00:47 #1930 [Verbose] > │ else │
00:00:47 #1931 [Verbose] > │ US0_0 │
00:00:47 #1932 [Verbose] > │ and closure4 () (v0 : US0) : US1 = │
00:00:47 #1933 [Verbose] > │ US1_1(v0) │
00:00:47 #1934 [Verbose] > │ and closure5 () (v0 : exn) : unit = │
00:00:47 #1935 [Verbose] > │ let mutable result = None │
00:00:47 #1936 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:00:47 #1937 [Verbose] > │ () │
00:00:47 #1938 [Verbose] > │ #endif │
00:00:47 #1939 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:00:47 #1940 [Verbose] > │ () │
00:00:47 #1941 [Verbose] > │ #endif │
00:00:47 #1942 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:47 #1943 [Verbose] > │ let v1 : (int32 -> unit) = System.Threading.Thread.Sleep │
00:00:47 #1944 [Verbose] > │ v1 1 │
00:00:47 #1945 [Verbose] > │ () │
00:00:47 #1946 [Verbose] > │ #endif │
00:00:47 #1947 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:47 #1948 [Verbose] > │ () │
00:00:47 #1949 [Verbose] > │ #endif │
00:00:47 #1950 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:00:47 #1951 [Verbose] > │ () │
00:00:47 #1952 [Verbose] > │ #endif │
00:00:47 #1953 [Verbose] > │ |> fun x -> result <- Some x │
00:00:47 #1954 [Verbose] > │ result |> Option.get │
00:00:47 #1955 [Verbose] > │ () │
00:00:47 #1956 [Verbose] > │ and method1 (v0 : int32, v1 : (unit -> unit), v2 : int32) : US0 = │
00:00:47 #1957 [Verbose] > │ let v3 : (unit -> US0) = closure3(v0, v1, v2) │
00:00:47 #1958 [Verbose] > │ let v4 : (US0 -> US1) = closure4() │
00:00:47 #1959 [Verbose] > │ let v5 : (exn -> unit) = closure5() │
00:00:47 #1960 [Verbose] > │ let v6 : US1 = US1_0 │
00:00:47 #1961 [Verbose] > │ let v7 : US1 = try v3 () |> v4 with ex -> v5 ex; v6 │
00:00:47 #1962 [Verbose] > │ match v7 with │
00:00:47 #1963 [Verbose] > │ | US1_0 -> (* None *) │
00:00:47 #1964 [Verbose] > │ let v9 : int32 = v2 + 1 │
00:00:47 #1965 [Verbose] > │ method1(v0, v1, v9) │
00:00:47 #1966 [Verbose] > │ | US1_1(v8) -> (* Some *) │
00:00:47 #1967 [Verbose] > │ v8 │
00:00:47 #1968 [Verbose] > │ and closure2 (v0 : int32) (v1 : (unit -> unit)) : unit option = │
00:00:47 #1969 [Verbose] > │ let v2 : int32 = 0 │
00:00:47 #1970 [Verbose] > │ let v3 : US0 = method1(v0, v1, v2) │
00:00:47 #1971 [Verbose] > │ match v3 with │
00:00:47 #1972 [Verbose] > │ | US0_0 -> (* None *) │
00:00:47 #1973 [Verbose] > │ let v5 : unit option = None │
00:00:47 #1974 [Verbose] > │ v5 │
00:00:47 #1975 [Verbose] > │ | US0_1 -> (* Some *) │
00:00:47 #1976 [Verbose] > │ let v4 : unit option = Some () │
00:00:47 #1977 [Verbose] > │ v4 │
00:00:47 #1978 [Verbose] > │ and closure1 () (v0 : int32) : ((unit -> unit) -> unit option) = │
00:00:47 #1979 [Verbose] > │ closure2(v0) │
00:00:47 #1980 [Verbose] > │ let v0 : ((unit -> unit) -> System.IDisposable) = closure0() │
00:00:47 #1981 [Verbose] > │ let new_disposable x = v0 x │
00:00:47 #1982 [Verbose] > │ let v1 : (int32 -> ((unit -> unit) -> unit option)) = closure1() │
00:00:47 #1983 [Verbose] > │ let retry_fn x = v1 x │
00:00:47 #1984 [Verbose] > │ () │
00:00:47 #1985 [Verbose] > │ │
00:00:47 #1986 [Verbose] > │ │
00:00:47 #1987 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:49 #1988 [Verbose] > [NbConvertApp] Converting notebook common.dib.ipynb to html
00:00:49 #1989 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:49 #1990 [Verbose] > validate(nb)
00:00:49 #1991 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:49 #1992 [Verbose] > return _pygments_highlight(
00:00:50 #1993 [Verbose] > [NbConvertApp] Writing 394373 bytes to common.dib.html
00:00:50 #1994 [Debug] executeAsync / exitCode: 0 / output.Length: 112185
00:00:50 #1995 [Debug] main / executeCommand / exitCode: 0
00:00:50 #1996 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 console.dib -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:00:53 #1997 [Verbose] >
00:00:53 #1998 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:53 #1999 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:53 #2000 [Verbose] > │ # console │
00:00:53 #2001 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:53 #2002 [Verbose] >
00:00:53 #2003 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:53 #2004 [Verbose] > // // test
00:00:53 #2005 [Verbose] >
00:00:53 #2006 [Verbose] > open testing
00:00:57 #2007 [Verbose] >
00:00:57 #2008 [Verbose] > ╭─[ 4.06s - stdout ]───────────────────────────────────────────────────────────╮
00:00:57 #2009 [Verbose] > │ () │
00:00:57 #2010 [Verbose] > │ │
00:00:57 #2011 [Verbose] > │ │
00:00:57 #2012 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:57 #2013 [Verbose] >
00:00:57 #2014 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:57 #2015 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:57 #2016 [Verbose] > │ ## write_line │
00:00:57 #2017 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:57 #2018 [Verbose] >
00:00:57 #2019 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:57 #2020 [Verbose] > inl write_line obj : () =
00:00:57 #2021 [Verbose] > $"System.Console.WriteLine !obj"
00:00:57 #2022 [Verbose] >
00:00:57 #2023 [Verbose] > ╭─[ 282.95ms - stdout ]────────────────────────────────────────────────────────╮
00:00:57 #2024 [Verbose] > │ () │
00:00:57 #2025 [Verbose] > │ │
00:00:57 #2026 [Verbose] > │ │
00:00:57 #2027 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:57 #2028 [Verbose] >
00:00:57 #2029 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:57 #2030 [Verbose] > inl write_line_ ~obj : () =
00:00:57 #2031 [Verbose] > $"System.Console.WriteLine !obj"
00:00:57 #2032 [Verbose] >
00:00:57 #2033 [Verbose] > ╭─[ 272.47ms - stdout ]────────────────────────────────────────────────────────╮
00:00:57 #2034 [Verbose] > │ () │
00:00:57 #2035 [Verbose] > │ │
00:00:57 #2036 [Verbose] > │ │
00:00:57 #2037 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:57 #2038 [Verbose] >
00:00:57 #2039 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:57 #2040 [Verbose] > nominal console_color = $"System.ConsoleColor"
00:00:57 #2041 [Verbose] >
00:00:57 #2042 [Verbose] > inl reset_color () : () =
00:00:57 #2043 [Verbose] > run_target function
00:00:57 #2044 [Verbose] > | Fsharp => fun () => $"System.Console.ResetColor ()"
00:00:57 #2045 [Verbose] > | _ => fun () => ()
00:00:57 #2046 [Verbose] >
00:00:57 #2047 [Verbose] > inl set_foreground_color (color : console_color) : () =
00:00:57 #2048 [Verbose] > run_target function
00:00:57 #2049 [Verbose] > | Fsharp => fun () => $"System.Console.ForegroundColor <- !color"
00:00:57 #2050 [Verbose] > | _ => fun () => ()
00:00:58 #2051 [Verbose] >
00:00:58 #2052 [Verbose] > ╭─[ 210.79ms - stdout ]────────────────────────────────────────────────────────╮
00:00:58 #2053 [Verbose] > │ () │
00:00:58 #2054 [Verbose] > │ │
00:00:58 #2055 [Verbose] > │ │
00:00:58 #2056 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:59 #2057 [Verbose] > [NbConvertApp] Converting notebook console.dib.ipynb to html
00:00:59 #2058 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:59 #2059 [Verbose] > validate(nb)
00:01:00 #2060 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:01:00 #2061 [Verbose] > return _pygments_highlight(
00:01:00 #2062 [Verbose] > [NbConvertApp] Writing 276933 bytes to console.dib.html
00:01:00 #2063 [Debug] executeAsync / exitCode: 0 / output.Length: 3869
00:01:00 #2064 [Debug] main / executeCommand / exitCode: 0
00:01:00 #2065 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 date_time.dib -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:01:03 #2066 [Verbose] >
00:01:03 #2067 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:03 #2068 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:03 #2069 [Verbose] > │ # date_time │
00:01:03 #2070 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:03 #2071 [Verbose] >
00:01:03 #2072 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:03 #2073 [Verbose] > open rust_operators
00:01:03 #2074 [Verbose] > open sm'_operators
00:01:06 #2075 [Verbose] >
00:01:06 #2076 [Verbose] > ╭─[ 3.80s - stdout ]───────────────────────────────────────────────────────────╮
00:01:06 #2077 [Verbose] > │ () │
00:01:06 #2078 [Verbose] > │ │
00:01:06 #2079 [Verbose] > │ │
00:01:06 #2080 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:06 #2081 [Verbose] >
00:01:06 #2082 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:06 #2083 [Verbose] > // // test
00:01:06 #2084 [Verbose] >
00:01:06 #2085 [Verbose] > open testing
00:01:07 #2086 [Verbose] >
00:01:07 #2087 [Verbose] > ╭─[ 279.75ms - stdout ]────────────────────────────────────────────────────────╮
00:01:07 #2088 [Verbose] > │ () │
00:01:07 #2089 [Verbose] > │ │
00:01:07 #2090 [Verbose] > │ │
00:01:07 #2091 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:07 #2092 [Verbose] >
00:01:07 #2093 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:07 #2094 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:07 #2095 [Verbose] > │ ## types │
00:01:07 #2096 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:07 #2097 [Verbose] >
00:01:07 #2098 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:07 #2099 [Verbose] > inl types () =
00:01:07 #2100 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"chrono::DateTime<$0>\")>]]
00:01:07 #2101 [Verbose] > type chrono_DateTime<'T> = class end"
00:01:07 #2102 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"chrono::Local\")>]] type
00:01:07 #2103 [Verbose] > chrono_Local = class end"
00:01:07 #2104 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"chrono::NaiveDateTime\")>]]
00:01:07 #2105 [Verbose] > type chrono_NaiveDateTime = class end"
00:01:07 #2106 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"chrono::Utc\")>]] type
00:01:07 #2107 [Verbose] > chrono_Utc = class end"
00:01:07 #2108 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::time::Duration\")>]]
00:01:07 #2109 [Verbose] > type std_time_Duration = class end"
00:01:07 #2110 [Verbose] >
00:01:07 #2111 [Verbose] > ╭─[ 278.25ms - stdout ]────────────────────────────────────────────────────────╮
00:01:07 #2112 [Verbose] > │ () │
00:01:07 #2113 [Verbose] > │ │
00:01:07 #2114 [Verbose] > │ │
00:01:07 #2115 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:07 #2116 [Verbose] >
00:01:07 #2117 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:07 #2118 [Verbose] > nominal ticks = i64
00:01:07 #2119 [Verbose] > nominal duration = $"std_time_Duration"
00:01:07 #2120 [Verbose] > nominal date_time = $"System.DateTime"
00:01:07 #2121 [Verbose] > nominal date_time' t = $"chrono_DateTime<`t>"
00:01:07 #2122 [Verbose] > nominal local = $"chrono_Local"
00:01:07 #2123 [Verbose] > nominal naive_date_time = $"chrono_NaiveDateTime"
00:01:07 #2124 [Verbose] > nominal utc = $"chrono_Utc"
00:01:07 #2125 [Verbose] >
00:01:07 #2126 [Verbose] > ╭─[ 421.99ms - stdout ]────────────────────────────────────────────────────────╮
00:01:07 #2127 [Verbose] > │ () │
00:01:07 #2128 [Verbose] > │ │
00:01:07 #2129 [Verbose] > │ │
00:01:07 #2130 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:07 #2131 [Verbose] >
00:01:07 #2132 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:07 #2133 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:07 #2134 [Verbose] > │ ## naive_utc │
00:01:07 #2135 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:07 #2136 [Verbose] >
00:01:07 #2137 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:07 #2138 [Verbose] > inl naive_utc (date_time : date_time' utc) : naive_date_time =
00:01:07 #2139 [Verbose] > inl date_time = join date_time
00:01:07 #2140 [Verbose] > !\($'"!date_time.naive_utc()"')
00:01:08 #2141 [Verbose] >
00:01:08 #2142 [Verbose] > ╭─[ 318.27ms - stdout ]────────────────────────────────────────────────────────╮
00:01:08 #2143 [Verbose] > │ () │
00:01:08 #2144 [Verbose] > │ │
00:01:08 #2145 [Verbose] > │ │
00:01:08 #2146 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:08 #2147 [Verbose] >
00:01:08 #2148 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:08 #2149 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:08 #2150 [Verbose] > │ ## to_local │
00:01:08 #2151 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:08 #2152 [Verbose] >
00:01:08 #2153 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:08 #2154 [Verbose] > inl to_local (date_time : date_time' utc) : date_time' local =
00:01:08 #2155 [Verbose] > inl naive_date_time = date_time |> naive_utc
00:01:08 #2156 [Verbose] > !\($'"chrono::offset::TimeZone::from_utc_datetime(&chrono::Local,
00:01:08 #2157 [Verbose] > &!naive_date_time)"')
00:01:08 #2158 [Verbose] >
00:01:08 #2159 [Verbose] > ╭─[ 210.23ms - stdout ]────────────────────────────────────────────────────────╮
00:01:08 #2160 [Verbose] > │ () │
00:01:08 #2161 [Verbose] > │ │
00:01:08 #2162 [Verbose] > │ │
00:01:08 #2163 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:08 #2164 [Verbose] >
00:01:08 #2165 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:08 #2166 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:08 #2167 [Verbose] > │ ## from_timestamp' │
00:01:08 #2168 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:08 #2169 [Verbose] >
00:01:08 #2170 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:08 #2171 [Verbose] > inl from_timestamp' forall t {number; int}. (timestamp : t) : option (date_time'
00:01:08 #2172 [Verbose] > utc) =
00:01:08 #2173 [Verbose] > inl timestamp = join timestamp
00:01:08 #2174 [Verbose] > inl result : optionm'.option' (date_time' utc) =
00:01:08 #2175 [Verbose] > !\($'"chrono::DateTime::from_timestamp_micros(!timestamp / 1000i64)"')
00:01:08 #2176 [Verbose] > result |> optionm'.unbox
00:01:08 #2177 [Verbose] >
00:01:08 #2178 [Verbose] > ╭─[ 294.29ms - stdout ]────────────────────────────────────────────────────────╮
00:01:08 #2179 [Verbose] > │ () │
00:01:08 #2180 [Verbose] > │ │
00:01:08 #2181 [Verbose] > │ │
00:01:08 #2182 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:08 #2183 [Verbose] >
00:01:08 #2184 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:08 #2185 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:08 #2186 [Verbose] > │ ## format' │
00:01:08 #2187 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:08 #2188 [Verbose] >
00:01:08 #2189 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:08 #2190 [Verbose] > inl format' (format : string) (date_time : date_time' utc) : sm'.std_string =
00:01:08 #2191 [Verbose] > inl format = #format
00:01:08 #2192 [Verbose] > inl date_time = join date_time
00:01:08 #2193 [Verbose] > !\($'"!date_time.format(!format).to_string()"')
00:01:09 #2194 [Verbose] >
00:01:09 #2195 [Verbose] > ╭─[ 282.89ms - stdout ]────────────────────────────────────────────────────────╮
00:01:09 #2196 [Verbose] > │ () │
00:01:09 #2197 [Verbose] > │ │
00:01:09 #2198 [Verbose] > │ │
00:01:09 #2199 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:09 #2200 [Verbose] >
00:01:09 #2201 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:09 #2202 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:09 #2203 [Verbose] > │ ## format'' │
00:01:09 #2204 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:09 #2205 [Verbose] >
00:01:09 #2206 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:09 #2207 [Verbose] > inl format'' (format : string) (date_time : date_time' _) : sm'.std_string =
00:01:09 #2208 [Verbose] > inl format = #format
00:01:09 #2209 [Verbose] > inl date_time = join date_time
00:01:09 #2210 [Verbose] > !\($'"!date_time.format(!format).to_string()"')
00:01:09 #2211 [Verbose] >
00:01:09 #2212 [Verbose] > ╭─[ 248.74ms - stdout ]────────────────────────────────────────────────────────╮
00:01:09 #2213 [Verbose] > │ () │
00:01:09 #2214 [Verbose] > │ │
00:01:09 #2215 [Verbose] > │ │
00:01:09 #2216 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:09 #2217 [Verbose] >
00:01:09 #2218 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:09 #2219 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:09 #2220 [Verbose] > │ ## format_timestamp │
00:01:09 #2221 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:09 #2222 [Verbose] >
00:01:09 #2223 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:09 #2224 [Verbose] > inl format_timestamp (timestamp : sm'.std_string) =
00:01:09 #2225 [Verbose] > inl timestamp = join timestamp
00:01:09 #2226 [Verbose] > timestamp
00:01:09 #2227 [Verbose] > |> fun x => !\($'"!x.parse().unwrap()"') : i64
00:01:09 #2228 [Verbose] > |> from_timestamp'
00:01:09 #2229 [Verbose] > |> optionm.map fun x =>
00:01:09 #2230 [Verbose] > x
00:01:09 #2231 [Verbose] > |> to_local
00:01:09 #2232 [Verbose] > |> format'' "%Y-%m-%d %H:%M:%S"
00:01:09 #2233 [Verbose] > |> sm'.from_std_string
00:01:09 #2234 [Verbose] > |> resultm.from_option
00:01:09 #2235 [Verbose] >
00:01:09 #2236 [Verbose] > ╭─[ 253.71ms - stdout ]────────────────────────────────────────────────────────╮
00:01:09 #2237 [Verbose] > │ () │
00:01:09 #2238 [Verbose] > │ │
00:01:09 #2239 [Verbose] > │ │
00:01:09 #2240 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:09 #2241 [Verbose] >
00:01:09 #2242 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:09 #2243 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:09 #2244 [Verbose] > │ ## duration_from_millis │
00:01:09 #2245 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:09 #2246 [Verbose] >
00:01:09 #2247 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:09 #2248 [Verbose] > inl duration_from_millis (ms : u64) : duration =
00:01:09 #2249 [Verbose] > inl ms = join ms
00:01:09 #2250 [Verbose] > !\($'"std::time::Duration::from_millis(!ms)"')
00:01:09 #2251 [Verbose] >
00:01:09 #2252 [Verbose] > ╭─[ 252.80ms - stdout ]────────────────────────────────────────────────────────╮
00:01:09 #2253 [Verbose] > │ () │
00:01:09 #2254 [Verbose] > │ │
00:01:09 #2255 [Verbose] > │ │
00:01:09 #2256 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:09 #2257 [Verbose] >
00:01:09 #2258 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:09 #2259 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:09 #2260 [Verbose] > │ ## get_environment_variable │
00:01:09 #2261 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:09 #2262 [Verbose] >
00:01:09 #2263 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:09 #2264 [Verbose] > inl get_environment_variable (var : string) : string =
00:01:09 #2265 [Verbose] > $"System.Environment.GetEnvironmentVariable !var"
00:01:10 #2266 [Verbose] >
00:01:10 #2267 [Verbose] > ╭─[ 256.37ms - stdout ]────────────────────────────────────────────────────────╮
00:01:10 #2268 [Verbose] > │ () │
00:01:10 #2269 [Verbose] > │ │
00:01:10 #2270 [Verbose] > │ │
00:01:10 #2271 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:10 #2272 [Verbose] >
00:01:10 #2273 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:10 #2274 [Verbose] > // // test
00:01:10 #2275 [Verbose] >
00:01:10 #2276 [Verbose] > inl test_guid () =
00:01:10 #2277 [Verbose] > guid.new_guid "FEDCBA98-7654-3210-FEDC-BA9876543210"
00:01:10 #2278 [Verbose] >
00:01:10 #2279 [Verbose] > ╭─[ 279.05ms - stdout ]────────────────────────────────────────────────────────╮
00:01:10 #2280 [Verbose] > │ () │
00:01:10 #2281 [Verbose] > │ │
00:01:10 #2282 [Verbose] > │ │
00:01:10 #2283 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:10 #2284 [Verbose] >
00:01:10 #2285 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:10 #2286 [Verbose] > type ticks_guid = guid.guid
00:01:10 #2287 [Verbose] > type date_time_guid = guid.guid
00:01:10 #2288 [Verbose] >
00:01:10 #2289 [Verbose] > ╭─[ 246.45ms - stdout ]────────────────────────────────────────────────────────╮
00:01:10 #2290 [Verbose] > │ () │
00:01:10 #2291 [Verbose] > │ │
00:01:10 #2292 [Verbose] > │ │
00:01:10 #2293 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:10 #2294 [Verbose] >
00:01:10 #2295 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:10 #2296 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:10 #2297 [Verbose] > │ ## date_time_guid_from_date_time │
00:01:10 #2298 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:10 #2299 [Verbose] >
00:01:10 #2300 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:10 #2301 [Verbose] > inl date_time_guid_from_date_time (guid : guid.guid) (date_time : date_time) =
00:01:10 #2302 [Verbose] > inl guid = guid |> sm'.obj_to_string
00:01:10 #2303 [Verbose] > inl prefix = $'!date_time.ToString "yyyyMMdd-HHmm-ssff-ffff-f"' : string
00:01:10 #2304 [Verbose] > $'`date_time_guid $"{!prefix}{!guid.[[!prefix.Length..]]}"' : date_time_guid
00:01:10 #2305 [Verbose] >
00:01:10 #2306 [Verbose] > ╭─[ 209.74ms - stdout ]────────────────────────────────────────────────────────╮
00:01:10 #2307 [Verbose] > │ () │
00:01:10 #2308 [Verbose] > │ │
00:01:10 #2309 [Verbose] > │ │
00:01:10 #2310 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:10 #2311 [Verbose] >
00:01:10 #2312 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:10 #2313 [Verbose] > // // test
00:01:10 #2314 [Verbose] >
00:01:10 #2315 [Verbose] > date_time_guid_from_date_time (test_guid ()) $'System.DateTime.MinValue'
00:01:10 #2316 [Verbose] > |> sm'.obj_to_string
00:01:10 #2317 [Verbose] > |> _assert_eq' "00010101-0000-0000-0000-0a9876543210"
00:01:11 #2318 [Verbose] >
00:01:11 #2319 [Verbose] > ╭─[ 1.02s - stdout ]───────────────────────────────────────────────────────────╮
00:01:11 #2320 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:01:11 #2321 [Verbose] > │ v0 │
00:01:11 #2322 [Verbose] > │ and method0 () : unit = │
00:01:11 #2323 [Verbose] > │ let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210" │
00:01:11 #2324 [Verbose] > │ let v1 : System.Guid = System.Guid v0 │
00:01:11 #2325 [Verbose] > │ let v2 : System.DateTime = System.DateTime.MinValue │
00:01:11 #2326 [Verbose] > │ let v3 : (System.Guid -> string) = _.ToString() │
00:01:11 #2327 [Verbose] > │ let v4 : string = v3 v1 │
00:01:11 #2328 [Verbose] > │ let v5 : string = v2.ToString "yyyyMMdd-HHmm-ssff-ffff-f" │
00:01:11 #2329 [Verbose] > │ let v6 : System.Guid = System.Guid $"{v5}{v4.[v5.Length..]}" │
00:01:11 #2330 [Verbose] > │ let v7 : (System.Guid -> string) = _.ToString() │
00:01:11 #2331 [Verbose] > │ let v8 : string = v7 v6 │
00:01:11 #2332 [Verbose] > │ let v9 : string = $"%A{v8}" │
00:01:11 #2333 [Verbose] > │ System.Console.WriteLine v9 │
00:01:11 #2334 [Verbose] > │ let v10 : string = "00010101-0000-0000-0000-0a9876543210" │
00:01:11 #2335 [Verbose] > │ let v11 : bool = v8 = v10 │
00:01:11 #2336 [Verbose] > │ let v13 : bool = │
00:01:11 #2337 [Verbose] > │ if v11 then │
00:01:11 #2338 [Verbose] > │ true │
00:01:11 #2339 [Verbose] > │ else │
00:01:11 #2340 [Verbose] > │ method1(v11) │
00:01:11 #2341 [Verbose] > │ let v14 : string = $"__expect / actual: %A{v8} / expected: %A{v10}" │
00:01:11 #2342 [Verbose] > │ let v15 : bool = v13 = false │
00:01:11 #2343 [Verbose] > │ if v15 then │
00:01:11 #2344 [Verbose] > │ failwith<unit> v14 │
00:01:11 #2345 [Verbose] > │ method0() │
00:01:11 #2346 [Verbose] > │ │
00:01:11 #2347 [Verbose] > │ "00010101-0000-0000-0000-0a9876543210" │
00:01:11 #2348 [Verbose] > │ │
00:01:11 #2349 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:11 #2350 [Verbose] >
00:01:11 #2351 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:11 #2352 [Verbose] > // // test
00:01:11 #2353 [Verbose] >
00:01:11 #2354 [Verbose] > date_time_guid_from_date_time (test_guid ()) $'System.DateTime.MaxValue'
00:01:11 #2355 [Verbose] > |> sm'.obj_to_string
00:01:11 #2356 [Verbose] > |> _assert_eq $'$"99991231-2359-5999-9999-9{(!test_guid() |>
00:01:11 #2357 [Verbose] > string).[[^10..]]}"'
00:01:12 #2358 [Verbose] >
00:01:12 #2359 [Verbose] > ╭─[ 315.06ms - stdout ]────────────────────────────────────────────────────────╮
00:01:12 #2360 [Verbose] > │ let rec closure0 () () : System.Guid = │
00:01:12 #2361 [Verbose] > │ let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210" │
00:01:12 #2362 [Verbose] > │ let v1 : System.Guid = System.Guid v0 │
00:01:12 #2363 [Verbose] > │ v1 │
00:01:12 #2364 [Verbose] > │ and method1 (v0 : bool) : bool = │
00:01:12 #2365 [Verbose] > │ v0 │
00:01:12 #2366 [Verbose] > │ and method0 () : unit = │
00:01:12 #2367 [Verbose] > │ let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210" │
00:01:12 #2368 [Verbose] > │ let v1 : System.Guid = System.Guid v0 │
00:01:12 #2369 [Verbose] > │ let v2 : System.DateTime = System.DateTime.MaxValue │
00:01:12 #2370 [Verbose] > │ let v3 : (System.Guid -> string) = _.ToString() │
00:01:12 #2371 [Verbose] > │ let v4 : string = v3 v1 │
00:01:12 #2372 [Verbose] > │ let v5 : string = v2.ToString "yyyyMMdd-HHmm-ssff-ffff-f" │
00:01:12 #2373 [Verbose] > │ let v6 : System.Guid = System.Guid $"{v5}{v4.[v5.Length..]}" │
00:01:12 #2374 [Verbose] > │ let v7 : (System.Guid -> string) = _.ToString() │
00:01:12 #2375 [Verbose] > │ let v8 : string = v7 v6 │
00:01:12 #2376 [Verbose] > │ let v9 : (unit -> System.Guid) = closure0() │
00:01:12 #2377 [Verbose] > │ let v10 : string = $"99991231-2359-5999-9999-9{(v9() |> string).[ │
00:01:12 #2378 [Verbose] > │ ^10..]}" │
00:01:12 #2379 [Verbose] > │ let v11 : string = $"%A{v8}" │
00:01:12 #2380 [Verbose] > │ System.Console.WriteLine v11 │
00:01:12 #2381 [Verbose] > │ let v12 : bool = v8 = v10 │
00:01:12 #2382 [Verbose] > │ let v14 : bool = │
00:01:12 #2383 [Verbose] > │ if v12 then │
00:01:12 #2384 [Verbose] > │ true │
00:01:12 #2385 [Verbose] > │ else │
00:01:12 #2386 [Verbose] > │ method1(v12) │
00:01:12 #2387 [Verbose] > │ let v15 : string = $"__expect / actual: %A{v8} / expected: %A{v10}" │
00:01:12 #2388 [Verbose] > │ let v16 : bool = v14 = false │
00:01:12 #2389 [Verbose] > │ if v16 then │
00:01:12 #2390 [Verbose] > │ failwith<unit> v15 │
00:01:12 #2391 [Verbose] > │ method0() │
00:01:12 #2392 [Verbose] > │ │
00:01:12 #2393 [Verbose] > │ "99991231-2359-5999-9999-9a9876543210" │
00:01:12 #2394 [Verbose] > │ │
00:01:12 #2395 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:12 #2396 [Verbose] >
00:01:12 #2397 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:12 #2398 [Verbose] > // // test
00:01:12 #2399 [Verbose] >
00:01:12 #2400 [Verbose] > date_time_guid_from_date_time (test_guid ()) $'System.DateTime.UnixEpoch'
00:01:12 #2401 [Verbose] > |> sm'.obj_to_string
00:01:12 #2402 [Verbose] > |> _assert_eq $'$"19700101-0000-0000-0000-0{(!test_guid () |>
00:01:12 #2403 [Verbose] > string).[[^10..]]}"'
00:01:12 #2404 [Verbose] >
00:01:12 #2405 [Verbose] > ╭─[ 332.69ms - stdout ]────────────────────────────────────────────────────────╮
00:01:12 #2406 [Verbose] > │ let rec closure0 () () : System.Guid = │
00:01:12 #2407 [Verbose] > │ let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210" │
00:01:12 #2408 [Verbose] > │ let v1 : System.Guid = System.Guid v0 │
00:01:12 #2409 [Verbose] > │ v1 │
00:01:12 #2410 [Verbose] > │ and method1 (v0 : bool) : bool = │
00:01:12 #2411 [Verbose] > │ v0 │
00:01:12 #2412 [Verbose] > │ and method0 () : unit = │
00:01:12 #2413 [Verbose] > │ let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210" │
00:01:12 #2414 [Verbose] > │ let v1 : System.Guid = System.Guid v0 │
00:01:12 #2415 [Verbose] > │ let v2 : System.DateTime = System.DateTime.UnixEpoch │
00:01:12 #2416 [Verbose] > │ let v3 : (System.Guid -> string) = _.ToString() │
00:01:12 #2417 [Verbose] > │ let v4 : string = v3 v1 │
00:01:12 #2418 [Verbose] > │ let v5 : string = v2.ToString "yyyyMMdd-HHmm-ssff-ffff-f" │
00:01:12 #2419 [Verbose] > │ let v6 : System.Guid = System.Guid $"{v5}{v4.[v5.Length..]}" │
00:01:12 #2420 [Verbose] > │ let v7 : (System.Guid -> string) = _.ToString() │
00:01:12 #2421 [Verbose] > │ let v8 : string = v7 v6 │
00:01:12 #2422 [Verbose] > │ let v9 : (unit -> System.Guid) = closure0() │
00:01:12 #2423 [Verbose] > │ let v10 : string = $"19700101-0000-0000-0000-0{(v9 () |> string).[ │
00:01:12 #2424 [Verbose] > │ ^10..]}" │
00:01:12 #2425 [Verbose] > │ let v11 : string = $"%A{v8}" │
00:01:12 #2426 [Verbose] > │ System.Console.WriteLine v11 │
00:01:12 #2427 [Verbose] > │ let v12 : bool = v8 = v10 │
00:01:12 #2428 [Verbose] > │ let v14 : bool = │
00:01:12 #2429 [Verbose] > │ if v12 then │
00:01:12 #2430 [Verbose] > │ true │
00:01:12 #2431 [Verbose] > │ else │
00:01:12 #2432 [Verbose] > │ method1(v12) │
00:01:12 #2433 [Verbose] > │ let v15 : string = $"__expect / actual: %A{v8} / expected: %A{v10}" │
00:01:12 #2434 [Verbose] > │ let v16 : bool = v14 = false │
00:01:12 #2435 [Verbose] > │ if v16 then │
00:01:12 #2436 [Verbose] > │ failwith<unit> v15 │
00:01:12 #2437 [Verbose] > │ method0() │
00:01:12 #2438 [Verbose] > │ │
00:01:12 #2439 [Verbose] > │ "19700101-0000-0000-0000-0a9876543210" │
00:01:12 #2440 [Verbose] > │ │
00:01:12 #2441 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:12 #2442 [Verbose] >
00:01:12 #2443 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:12 #2444 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:12 #2445 [Verbose] > │ ## date_time_from_guid │
00:01:12 #2446 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:12 #2447 [Verbose] >
00:01:12 #2448 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:12 #2449 [Verbose] > inl date_time_from_guid (date_time_guid : date_time_guid) =
00:01:12 #2450 [Verbose] > inl date_time_guid = date_time_guid |> sm'.obj_to_string
00:01:12 #2451 [Verbose] > inl sm'_replace = join sm'.replace
00:01:12 #2452 [Verbose] > run_target function
00:01:12 #2453 [Verbose] > | Fsharp => fun () => $'System.DateTime.ParseExact
00:01:12 #2454 [Verbose] > (!date_time_guid.[[..24]] |> !sm'_replace "-" "", "yyyyMMddHHmmssfffffff",
00:01:12 #2455 [Verbose] > null)' : date_time
00:01:12 #2456 [Verbose] > | Rust _ => fun () =>
00:01:12 #2457 [Verbose] > $'System.DateTime.Parse (!date_time_guid.[[..24]] |> !sm'_replace
00:01:12 #2458 [Verbose] > "-" "")' : date_time
00:01:12 #2459 [Verbose] >
00:01:12 #2460 [Verbose] > ╭─[ 307.02ms - stdout ]────────────────────────────────────────────────────────╮
00:01:12 #2461 [Verbose] > │ () │
00:01:12 #2462 [Verbose] > │ │
00:01:12 #2463 [Verbose] > │ │
00:01:12 #2464 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:12 #2465 [Verbose] >
00:01:12 #2466 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:12 #2467 [Verbose] > // // test
00:01:12 #2468 [Verbose] >
00:01:12 #2469 [Verbose] > date_time_from_guid (guid.new_guid "00010101-0000-0000-0000-0a9876543210")
00:01:12 #2470 [Verbose] > |> _assert_eq' $'System.DateTime.MinValue'
00:01:13 #2471 [Verbose] >
00:01:13 #2472 [Verbose] > ╭─[ 403.75ms - stdout ]────────────────────────────────────────────────────────╮
00:01:13 #2473 [Verbose] > │ let rec closure2 (v0 : string, v1 : string) (v2 : string) : string = │
00:01:13 #2474 [Verbose] > │ let v3 : string = v2.Replace (v0, v1) │
00:01:13 #2475 [Verbose] > │ v3 │
00:01:13 #2476 [Verbose] > │ and closure1 (v0 : string) (v1 : string) : (string -> string) = │
00:01:13 #2477 [Verbose] > │ closure2(v0, v1) │
00:01:13 #2478 [Verbose] > │ and closure0 () (v0 : string) : (string -> (string -> string)) = │
00:01:13 #2479 [Verbose] > │ closure1(v0) │
00:01:13 #2480 [Verbose] > │ and method1 () : (string -> (string -> (string -> string))) = │
00:01:13 #2481 [Verbose] > │ closure0() │
00:01:13 #2482 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:01:13 #2483 [Verbose] > │ v0 │
00:01:13 #2484 [Verbose] > │ and method0 () : unit = │
00:01:13 #2485 [Verbose] > │ let v0 : string = "00010101-0000-0000-0000-0a9876543210" │
00:01:13 #2486 [Verbose] > │ let v1 : System.Guid = System.Guid v0 │
00:01:13 #2487 [Verbose] > │ let v2 : (System.Guid -> string) = _.ToString() │
00:01:13 #2488 [Verbose] > │ let v3 : string = v2 v1 │
00:01:13 #2489 [Verbose] > │ let v4 : (string -> (string -> (string -> string))) = method1() │
00:01:13 #2490 [Verbose] > │ let mutable result = None │
00:01:13 #2491 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:01:13 #2492 [Verbose] > │ let v5 : System.DateTime = System.DateTime.Parse (v3.[..24] |> v4 "-" │
00:01:13 #2493 [Verbose] > │ "") │
00:01:13 #2494 [Verbose] > │ v5 │
00:01:13 #2495 [Verbose] > │ #endif │
00:01:13 #2496 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:13 #2497 [Verbose] > │ let v6 : System.DateTime = System.DateTime.Parse (v3.[..24] |> v4 "-" │
00:01:13 #2498 [Verbose] > │ "") │
00:01:13 #2499 [Verbose] > │ v6 │
00:01:13 #2500 [Verbose] > │ #endif │
00:01:13 #2501 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:13 #2502 [Verbose] > │ let v7 : System.DateTime = System.DateTime.ParseExact (v3.[..24] |> v4 │
00:01:13 #2503 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:13 #2504 [Verbose] > │ v7 │
00:01:13 #2505 [Verbose] > │ #endif │
00:01:13 #2506 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:13 #2507 [Verbose] > │ let v8 : System.DateTime = System.DateTime.ParseExact (v3.[..24] |> v4 │
00:01:13 #2508 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:13 #2509 [Verbose] > │ v8 │
00:01:13 #2510 [Verbose] > │ #endif │
00:01:13 #2511 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:13 #2512 [Verbose] > │ let v9 : System.DateTime = System.DateTime.ParseExact (v3.[..24] |> v4 │
00:01:13 #2513 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:13 #2514 [Verbose] > │ v9 │
00:01:13 #2515 [Verbose] > │ #endif │
00:01:13 #2516 [Verbose] > │ |> fun x -> result <- Some x │
00:01:13 #2517 [Verbose] > │ let v10 : System.DateTime = result |> Option.get │
00:01:13 #2518 [Verbose] > │ let v11 : System.DateTime = System.DateTime.MinValue │
00:01:13 #2519 [Verbose] > │ let v12 : string = $"%A{v10}" │
00:01:13 #2520 [Verbose] > │ System.Console.WriteLine v12 │
00:01:13 #2521 [Verbose] > │ let v13 : bool = v10 = v11 │
00:01:13 #2522 [Verbose] > │ let v15 : bool = │
00:01:13 #2523 [Verbose] > │ if v13 then │
00:01:13 #2524 [Verbose] > │ true │
00:01:13 #2525 [Verbose] > │ else │
00:01:13 #2526 [Verbose] > │ method2(v13) │
00:01:13 #2527 [Verbose] > │ let v16 : string = $"__expect / actual: %A{v10} / expected: %A{v11}" │
00:01:13 #2528 [Verbose] > │ let v17 : bool = v15 = false │
00:01:13 #2529 [Verbose] > │ if v17 then │
00:01:13 #2530 [Verbose] > │ failwith<unit> v16 │
00:01:13 #2531 [Verbose] > │ method0() │
00:01:13 #2532 [Verbose] > │ │
00:01:13 #2533 [Verbose] > │ 0001-01-01 12:00:00 AM │
00:01:13 #2534 [Verbose] > │ │
00:01:13 #2535 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:13 #2536 [Verbose] >
00:01:13 #2537 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:13 #2538 [Verbose] > // // test
00:01:13 #2539 [Verbose] >
00:01:13 #2540 [Verbose] > date_time_from_guid (guid.new_guid $'$"99991231-2359-5999-9999-9{(!test_guid ()
00:01:13 #2541 [Verbose] > |> string).[[^10..]]}"')
00:01:13 #2542 [Verbose] > |> _assert_eq' $'System.DateTime.MaxValue'
00:01:13 #2543 [Verbose] >
00:01:13 #2544 [Verbose] > ╭─[ 291.82ms - stdout ]────────────────────────────────────────────────────────╮
00:01:13 #2545 [Verbose] > │ let rec closure0 () () : System.Guid = │
00:01:13 #2546 [Verbose] > │ let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210" │
00:01:13 #2547 [Verbose] > │ let v1 : System.Guid = System.Guid v0 │
00:01:13 #2548 [Verbose] > │ v1 │
00:01:13 #2549 [Verbose] > │ and closure3 (v0 : string, v1 : string) (v2 : string) : string = │
00:01:13 #2550 [Verbose] > │ let v3 : string = v2.Replace (v0, v1) │
00:01:13 #2551 [Verbose] > │ v3 │
00:01:13 #2552 [Verbose] > │ and closure2 (v0 : string) (v1 : string) : (string -> string) = │
00:01:13 #2553 [Verbose] > │ closure3(v0, v1) │
00:01:13 #2554 [Verbose] > │ and closure1 () (v0 : string) : (string -> (string -> string)) = │
00:01:13 #2555 [Verbose] > │ closure2(v0) │
00:01:13 #2556 [Verbose] > │ and method1 () : (string -> (string -> (string -> string))) = │
00:01:13 #2557 [Verbose] > │ closure1() │
00:01:13 #2558 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:01:13 #2559 [Verbose] > │ v0 │
00:01:13 #2560 [Verbose] > │ and method0 () : unit = │
00:01:13 #2561 [Verbose] > │ let v0 : (unit -> System.Guid) = closure0() │
00:01:13 #2562 [Verbose] > │ let v1 : string = $"99991231-2359-5999-9999-9{(v0 () |> string).[ │
00:01:13 #2563 [Verbose] > │ ^10..]}" │
00:01:13 #2564 [Verbose] > │ let v2 : System.Guid = System.Guid v1 │
00:01:13 #2565 [Verbose] > │ let v3 : (System.Guid -> string) = _.ToString() │
00:01:13 #2566 [Verbose] > │ let v4 : string = v3 v2 │
00:01:13 #2567 [Verbose] > │ let v5 : (string -> (string -> (string -> string))) = method1() │
00:01:13 #2568 [Verbose] > │ let mutable result = None │
00:01:13 #2569 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:01:13 #2570 [Verbose] > │ let v6 : System.DateTime = System.DateTime.Parse (v4.[..24] |> v5 "-" │
00:01:13 #2571 [Verbose] > │ "") │
00:01:13 #2572 [Verbose] > │ v6 │
00:01:13 #2573 [Verbose] > │ #endif │
00:01:13 #2574 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:13 #2575 [Verbose] > │ let v7 : System.DateTime = System.DateTime.Parse (v4.[..24] |> v5 "-" │
00:01:13 #2576 [Verbose] > │ "") │
00:01:13 #2577 [Verbose] > │ v7 │
00:01:13 #2578 [Verbose] > │ #endif │
00:01:13 #2579 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:13 #2580 [Verbose] > │ let v8 : System.DateTime = System.DateTime.ParseExact (v4.[..24] |> v5 │
00:01:13 #2581 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:13 #2582 [Verbose] > │ v8 │
00:01:13 #2583 [Verbose] > │ #endif │
00:01:13 #2584 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:13 #2585 [Verbose] > │ let v9 : System.DateTime = System.DateTime.ParseExact (v4.[..24] |> v5 │
00:01:13 #2586 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:13 #2587 [Verbose] > │ v9 │
00:01:13 #2588 [Verbose] > │ #endif │
00:01:13 #2589 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:13 #2590 [Verbose] > │ let v10 : System.DateTime = System.DateTime.ParseExact (v4.[..24] |> v5 │
00:01:13 #2591 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:13 #2592 [Verbose] > │ v10 │
00:01:13 #2593 [Verbose] > │ #endif │
00:01:13 #2594 [Verbose] > │ |> fun x -> result <- Some x │
00:01:13 #2595 [Verbose] > │ let v11 : System.DateTime = result |> Option.get │
00:01:13 #2596 [Verbose] > │ let v12 : System.DateTime = System.DateTime.MaxValue │
00:01:13 #2597 [Verbose] > │ let v13 : string = $"%A{v11}" │
00:01:13 #2598 [Verbose] > │ System.Console.WriteLine v13 │
00:01:13 #2599 [Verbose] > │ let v14 : bool = v11 = v12 │
00:01:13 #2600 [Verbose] > │ let v16 : bool = │
00:01:13 #2601 [Verbose] > │ if v14 then │
00:01:13 #2602 [Verbose] > │ true │
00:01:13 #2603 [Verbose] > │ else │
00:01:13 #2604 [Verbose] > │ method2(v14) │
00:01:13 #2605 [Verbose] > │ let v17 : string = $"__expect / actual: %A{v11} / expected: %A{v12}" │
00:01:13 #2606 [Verbose] > │ let v18 : bool = v16 = false │
00:01:13 #2607 [Verbose] > │ if v18 then │
00:01:13 #2608 [Verbose] > │ failwith<unit> v17 │
00:01:13 #2609 [Verbose] > │ method0() │
00:01:13 #2610 [Verbose] > │ │
00:01:13 #2611 [Verbose] > │ 9999-12-31 11:59:59 PM │
00:01:13 #2612 [Verbose] > │ │
00:01:13 #2613 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:13 #2614 [Verbose] >
00:01:13 #2615 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:13 #2616 [Verbose] > // // test
00:01:13 #2617 [Verbose] >
00:01:13 #2618 [Verbose] > date_time_from_guid (guid.new_guid $'$"19700101-0000-0000-0000-0{(!test_guid ()
00:01:13 #2619 [Verbose] > |> string).[[^10..]]}"')
00:01:13 #2620 [Verbose] > |> _assert_eq' $'System.DateTime.UnixEpoch'
00:01:14 #2621 [Verbose] >
00:01:14 #2622 [Verbose] > ╭─[ 480.39ms - stdout ]────────────────────────────────────────────────────────╮
00:01:14 #2623 [Verbose] > │ let rec closure0 () () : System.Guid = │
00:01:14 #2624 [Verbose] > │ let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210" │
00:01:14 #2625 [Verbose] > │ let v1 : System.Guid = System.Guid v0 │
00:01:14 #2626 [Verbose] > │ v1 │
00:01:14 #2627 [Verbose] > │ and closure3 (v0 : string, v1 : string) (v2 : string) : string = │
00:01:14 #2628 [Verbose] > │ let v3 : string = v2.Replace (v0, v1) │
00:01:14 #2629 [Verbose] > │ v3 │
00:01:14 #2630 [Verbose] > │ and closure2 (v0 : string) (v1 : string) : (string -> string) = │
00:01:14 #2631 [Verbose] > │ closure3(v0, v1) │
00:01:14 #2632 [Verbose] > │ and closure1 () (v0 : string) : (string -> (string -> string)) = │
00:01:14 #2633 [Verbose] > │ closure2(v0) │
00:01:14 #2634 [Verbose] > │ and method1 () : (string -> (string -> (string -> string))) = │
00:01:14 #2635 [Verbose] > │ closure1() │
00:01:14 #2636 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:01:14 #2637 [Verbose] > │ v0 │
00:01:14 #2638 [Verbose] > │ and method0 () : unit = │
00:01:14 #2639 [Verbose] > │ let v0 : (unit -> System.Guid) = closure0() │
00:01:14 #2640 [Verbose] > │ let v1 : string = $"19700101-0000-0000-0000-0{(v0 () |> string).[ │
00:01:14 #2641 [Verbose] > │ ^10..]}" │
00:01:14 #2642 [Verbose] > │ let v2 : System.Guid = System.Guid v1 │
00:01:14 #2643 [Verbose] > │ let v3 : (System.Guid -> string) = _.ToString() │
00:01:14 #2644 [Verbose] > │ let v4 : string = v3 v2 │
00:01:14 #2645 [Verbose] > │ let v5 : (string -> (string -> (string -> string))) = method1() │
00:01:14 #2646 [Verbose] > │ let mutable result = None │
00:01:14 #2647 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:01:14 #2648 [Verbose] > │ let v6 : System.DateTime = System.DateTime.Parse (v4.[..24] |> v5 "-" │
00:01:14 #2649 [Verbose] > │ "") │
00:01:14 #2650 [Verbose] > │ v6 │
00:01:14 #2651 [Verbose] > │ #endif │
00:01:14 #2652 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:14 #2653 [Verbose] > │ let v7 : System.DateTime = System.DateTime.Parse (v4.[..24] |> v5 "-" │
00:01:14 #2654 [Verbose] > │ "") │
00:01:14 #2655 [Verbose] > │ v7 │
00:01:14 #2656 [Verbose] > │ #endif │
00:01:14 #2657 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:14 #2658 [Verbose] > │ let v8 : System.DateTime = System.DateTime.ParseExact (v4.[..24] |> v5 │
00:01:14 #2659 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:14 #2660 [Verbose] > │ v8 │
00:01:14 #2661 [Verbose] > │ #endif │
00:01:14 #2662 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:14 #2663 [Verbose] > │ let v9 : System.DateTime = System.DateTime.ParseExact (v4.[..24] |> v5 │
00:01:14 #2664 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:14 #2665 [Verbose] > │ v9 │
00:01:14 #2666 [Verbose] > │ #endif │
00:01:14 #2667 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:14 #2668 [Verbose] > │ let v10 : System.DateTime = System.DateTime.ParseExact (v4.[..24] |> v5 │
00:01:14 #2669 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:14 #2670 [Verbose] > │ v10 │
00:01:14 #2671 [Verbose] > │ #endif │
00:01:14 #2672 [Verbose] > │ |> fun x -> result <- Some x │
00:01:14 #2673 [Verbose] > │ let v11 : System.DateTime = result |> Option.get │
00:01:14 #2674 [Verbose] > │ let v12 : System.DateTime = System.DateTime.UnixEpoch │
00:01:14 #2675 [Verbose] > │ let v13 : string = $"%A{v11}" │
00:01:14 #2676 [Verbose] > │ System.Console.WriteLine v13 │
00:01:14 #2677 [Verbose] > │ let v14 : bool = v11 = v12 │
00:01:14 #2678 [Verbose] > │ let v16 : bool = │
00:01:14 #2679 [Verbose] > │ if v14 then │
00:01:14 #2680 [Verbose] > │ true │
00:01:14 #2681 [Verbose] > │ else │
00:01:14 #2682 [Verbose] > │ method2(v14) │
00:01:14 #2683 [Verbose] > │ let v17 : string = $"__expect / actual: %A{v11} / expected: %A{v12}" │
00:01:14 #2684 [Verbose] > │ let v18 : bool = v16 = false │
00:01:14 #2685 [Verbose] > │ if v18 then │
00:01:14 #2686 [Verbose] > │ failwith<unit> v17 │
00:01:14 #2687 [Verbose] > │ method0() │
00:01:14 #2688 [Verbose] > │ │
00:01:14 #2689 [Verbose] > │ 1970-01-01 12:00:00 AM │
00:01:14 #2690 [Verbose] > │ │
00:01:14 #2691 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:14 #2692 [Verbose] >
00:01:14 #2693 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:14 #2694 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:14 #2695 [Verbose] > │ ## ticks_guid_from_ticks │
00:01:14 #2696 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:14 #2697 [Verbose] >
00:01:14 #2698 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:14 #2699 [Verbose] > inl ticks_guid_from_ticks (guid : guid.guid) (ticks : ticks) : ticks_guid =
00:01:14 #2700 [Verbose] > inl guid = guid |> sm'.obj_to_string
00:01:14 #2701 [Verbose] > inl ticks = ticks |> sm'.obj_to_string |> sm'.pad_left 18i32 '0'
00:01:14 #2702 [Verbose] > $'`ticks_guid
00:01:14 #2703 [Verbose] > $"{!ticks.[[0..7]]}-{!ticks.[[8..11]]}-{!ticks.[[12..15]]}-{!ticks.[[16..17]]}{!
00:01:14 #2704 [Verbose] > guid.[[21..]]}"'
00:01:14 #2705 [Verbose] >
00:01:14 #2706 [Verbose] > ╭─[ 225.26ms - stdout ]────────────────────────────────────────────────────────╮
00:01:14 #2707 [Verbose] > │ () │
00:01:14 #2708 [Verbose] > │ │
00:01:14 #2709 [Verbose] > │ │
00:01:14 #2710 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:14 #2711 [Verbose] >
00:01:14 #2712 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:14 #2713 [Verbose] > // // test
00:01:14 #2714 [Verbose] >
00:01:14 #2715 [Verbose] > ticks_guid_from_ticks (test_guid ()) (ticks 0i64)
00:01:14 #2716 [Verbose] > |> _assert_eq' (guid.new_guid "00000000-0000-0000-00dc-ba9876543210")
00:01:14 #2717 [Verbose] >
00:01:14 #2718 [Verbose] > ╭─[ 269.41ms - stdout ]────────────────────────────────────────────────────────╮
00:01:14 #2719 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:01:14 #2720 [Verbose] > │ v0 │
00:01:14 #2721 [Verbose] > │ and method0 () : unit = │
00:01:14 #2722 [Verbose] > │ let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210" │
00:01:14 #2723 [Verbose] > │ let v1 : System.Guid = System.Guid v0 │
00:01:14 #2724 [Verbose] > │ let v2 : (System.Guid -> string) = _.ToString() │
00:01:14 #2725 [Verbose] > │ let v3 : string = v2 v1 │
00:01:14 #2726 [Verbose] > │ let v4 : (int64 -> string) = _.ToString() │
00:01:14 #2727 [Verbose] > │ let v5 : string = v4 0L │
00:01:14 #2728 [Verbose] > │ let v6 : string = v5.PadLeft (18, '0') │
00:01:14 #2729 [Verbose] > │ let v7 : System.Guid = System.Guid $"{v6.[0..7]}-{v6.[8..11]}-{v6.[ │
00:01:14 #2730 [Verbose] > │ 12..15]}-{v6.[16..17]}{v3.[21..]}" │
00:01:14 #2731 [Verbose] > │ let v8 : string = "00000000-0000-0000-00dc-ba9876543210" │
00:01:14 #2732 [Verbose] > │ let v9 : System.Guid = System.Guid v8 │
00:01:14 #2733 [Verbose] > │ let v10 : string = $"%A{v7}" │
00:01:14 #2734 [Verbose] > │ System.Console.WriteLine v10 │
00:01:14 #2735 [Verbose] > │ let v11 : bool = v7 = v9 │
00:01:14 #2736 [Verbose] > │ let v13 : bool = │
00:01:14 #2737 [Verbose] > │ if v11 then │
00:01:14 #2738 [Verbose] > │ true │
00:01:14 #2739 [Verbose] > │ else │
00:01:14 #2740 [Verbose] > │ method1(v11) │
00:01:14 #2741 [Verbose] > │ let v14 : string = $"__expect / actual: %A{v7} / expected: %A{v9}" │
00:01:14 #2742 [Verbose] > │ let v15 : bool = v13 = false │
00:01:14 #2743 [Verbose] > │ if v15 then │
00:01:14 #2744 [Verbose] > │ failwith<unit> v14 │
00:01:14 #2745 [Verbose] > │ method0() │
00:01:14 #2746 [Verbose] > │ │
00:01:14 #2747 [Verbose] > │ 00000000-0000-0000-00dc-ba9876543210 │
00:01:14 #2748 [Verbose] > │ │
00:01:14 #2749 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:14 #2750 [Verbose] >
00:01:14 #2751 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:14 #2752 [Verbose] > // // test
00:01:14 #2753 [Verbose] >
00:01:14 #2754 [Verbose] > ticks_guid_from_ticks (test_guid ()) (ticks 999999999999999999i64)
00:01:14 #2755 [Verbose] > |> _assert_eq' (guid.new_guid $'$"99999999-9999-9999-99dc-b{(!test_guid () |>
00:01:14 #2756 [Verbose] > string).[[^10..]]}"')
00:01:14 #2757 [Verbose] >
00:01:14 #2758 [Verbose] > ╭─[ 294.51ms - stdout ]────────────────────────────────────────────────────────╮
00:01:14 #2759 [Verbose] > │ let rec closure0 () () : System.Guid = │
00:01:14 #2760 [Verbose] > │ let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210" │
00:01:14 #2761 [Verbose] > │ let v1 : System.Guid = System.Guid v0 │
00:01:14 #2762 [Verbose] > │ v1 │
00:01:14 #2763 [Verbose] > │ and method1 (v0 : bool) : bool = │
00:01:14 #2764 [Verbose] > │ v0 │
00:01:14 #2765 [Verbose] > │ and method0 () : unit = │
00:01:14 #2766 [Verbose] > │ let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210" │
00:01:14 #2767 [Verbose] > │ let v1 : System.Guid = System.Guid v0 │
00:01:14 #2768 [Verbose] > │ let v2 : (System.Guid -> string) = _.ToString() │
00:01:14 #2769 [Verbose] > │ let v3 : string = v2 v1 │
00:01:14 #2770 [Verbose] > │ let v4 : (int64 -> string) = _.ToString() │
00:01:14 #2771 [Verbose] > │ let v5 : string = v4 999999999999999999L │
00:01:14 #2772 [Verbose] > │ let v6 : string = v5.PadLeft (18, '0') │
00:01:14 #2773 [Verbose] > │ let v7 : System.Guid = System.Guid $"{v6.[0..7]}-{v6.[8..11]}-{v6.[ │
00:01:14 #2774 [Verbose] > │ 12..15]}-{v6.[16..17]}{v3.[21..]}" │
00:01:14 #2775 [Verbose] > │ let v8 : (unit -> System.Guid) = closure0() │
00:01:14 #2776 [Verbose] > │ let v9 : string = $"99999999-9999-9999-99dc-b{(v8 () |> string).[ │
00:01:14 #2777 [Verbose] > │ ^10..]}" │
00:01:14 #2778 [Verbose] > │ let v10 : System.Guid = System.Guid v9 │
00:01:14 #2779 [Verbose] > │ let v11 : string = $"%A{v7}" │
00:01:14 #2780 [Verbose] > │ System.Console.WriteLine v11 │
00:01:14 #2781 [Verbose] > │ let v12 : bool = v7 = v10 │
00:01:14 #2782 [Verbose] > │ let v14 : bool = │
00:01:14 #2783 [Verbose] > │ if v12 then │
00:01:14 #2784 [Verbose] > │ true │
00:01:14 #2785 [Verbose] > │ else │
00:01:14 #2786 [Verbose] > │ method1(v12) │
00:01:14 #2787 [Verbose] > │ let v15 : string = $"__expect / actual: %A{v7} / expected: %A{v10}" │
00:01:14 #2788 [Verbose] > │ let v16 : bool = v14 = false │
00:01:14 #2789 [Verbose] > │ if v16 then │
00:01:14 #2790 [Verbose] > │ failwith<unit> v15 │
00:01:14 #2791 [Verbose] > │ method0() │
00:01:14 #2792 [Verbose] > │ │
00:01:14 #2793 [Verbose] > │ 99999999-9999-9999-99dc-ba9876543210 │
00:01:14 #2794 [Verbose] > │ │
00:01:14 #2795 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:14 #2796 [Verbose] >
00:01:14 #2797 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:14 #2798 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:14 #2799 [Verbose] > │ ## ticks_from_guid │
00:01:14 #2800 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:14 #2801 [Verbose] >
00:01:14 #2802 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:14 #2803 [Verbose] > inl ticks_from_guid (guid : date_time_guid) : ticks =
00:01:14 #2804 [Verbose] > inl guid = guid |> sm'.obj_to_string
00:01:14 #2805 [Verbose] > $'`i64
00:01:14 #2806 [Verbose] > $"{!guid.[[0..7]]}{!guid.[[9..12]]}{!guid.[[14..17]]}{!guid.[[19..20]]}"'
00:01:15 #2807 [Verbose] >
00:01:15 #2808 [Verbose] > ╭─[ 307.72ms - stdout ]────────────────────────────────────────────────────────╮
00:01:15 #2809 [Verbose] > │ () │
00:01:15 #2810 [Verbose] > │ │
00:01:15 #2811 [Verbose] > │ │
00:01:15 #2812 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:15 #2813 [Verbose] >
00:01:15 #2814 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:15 #2815 [Verbose] > // // test
00:01:15 #2816 [Verbose] >
00:01:15 #2817 [Verbose] > ticks_from_guid (guid.new_guid "00000000-0000-0000-00dc-ba9876543210")
00:01:15 #2818 [Verbose] > |> _assert_eq (ticks 0)
00:01:15 #2819 [Verbose] >
00:01:15 #2820 [Verbose] > ╭─[ 306.36ms - stdout ]────────────────────────────────────────────────────────╮
00:01:15 #2821 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:01:15 #2822 [Verbose] > │ v0 │
00:01:15 #2823 [Verbose] > │ and method0 () : unit = │
00:01:15 #2824 [Verbose] > │ let v0 : string = "00000000-0000-0000-00dc-ba9876543210" │
00:01:15 #2825 [Verbose] > │ let v1 : System.Guid = System.Guid v0 │
00:01:15 #2826 [Verbose] > │ let v2 : (System.Guid -> string) = _.ToString() │
00:01:15 #2827 [Verbose] > │ let v3 : string = v2 v1 │
00:01:15 #2828 [Verbose] > │ let v4 : int64 = int64 $"{v3.[0..7]}{v3.[9..12]}{v3.[14..17]}{v3.[ │
00:01:15 #2829 [Verbose] > │ 19..20]}" │
00:01:15 #2830 [Verbose] > │ let v5 : string = $"%A{v4}" │
00:01:15 #2831 [Verbose] > │ System.Console.WriteLine v5 │
00:01:15 #2832 [Verbose] > │ let v6 : bool = v4 = 0L │
00:01:15 #2833 [Verbose] > │ let v8 : bool = │
00:01:15 #2834 [Verbose] > │ if v6 then │
00:01:15 #2835 [Verbose] > │ true │
00:01:15 #2836 [Verbose] > │ else │
00:01:15 #2837 [Verbose] > │ method1(v6) │
00:01:15 #2838 [Verbose] > │ let v9 : string = $"__expect / actual: %A{v4} / expected: %A{0L}" │
00:01:15 #2839 [Verbose] > │ let v10 : bool = v8 = false │
00:01:15 #2840 [Verbose] > │ if v10 then │
00:01:15 #2841 [Verbose] > │ failwith<unit> v9 │
00:01:15 #2842 [Verbose] > │ method0() │
00:01:15 #2843 [Verbose] > │ │
00:01:15 #2844 [Verbose] > │ 0L │
00:01:15 #2845 [Verbose] > │ │
00:01:15 #2846 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:15 #2847 [Verbose] >
00:01:15 #2848 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:15 #2849 [Verbose] > // // test
00:01:15 #2850 [Verbose] >
00:01:15 #2851 [Verbose] > ticks_from_guid (guid.new_guid $'$"99999999-9999-9999-99{(!test_guid () |>
00:01:15 #2852 [Verbose] > string).[[^14..]]}"')
00:01:15 #2853 [Verbose] > |> _assert_eq (ticks 999999999999999999)
00:01:15 #2854 [Verbose] >
00:01:15 #2855 [Verbose] > ╭─[ 295.62ms - stdout ]────────────────────────────────────────────────────────╮
00:01:15 #2856 [Verbose] > │ let rec closure0 () () : System.Guid = │
00:01:15 #2857 [Verbose] > │ let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210" │
00:01:15 #2858 [Verbose] > │ let v1 : System.Guid = System.Guid v0 │
00:01:15 #2859 [Verbose] > │ v1 │
00:01:15 #2860 [Verbose] > │ and method1 (v0 : bool) : bool = │
00:01:15 #2861 [Verbose] > │ v0 │
00:01:15 #2862 [Verbose] > │ and method0 () : unit = │
00:01:15 #2863 [Verbose] > │ let v0 : (unit -> System.Guid) = closure0() │
00:01:15 #2864 [Verbose] > │ let v1 : string = $"99999999-9999-9999-99{(v0 () |> string).[^14..]}" │
00:01:15 #2865 [Verbose] > │ let v2 : System.Guid = System.Guid v1 │
00:01:15 #2866 [Verbose] > │ let v3 : (System.Guid -> string) = _.ToString() │
00:01:15 #2867 [Verbose] > │ let v4 : string = v3 v2 │
00:01:15 #2868 [Verbose] > │ let v5 : int64 = int64 $"{v4.[0..7]}{v4.[9..12]}{v4.[14..17]}{v4.[ │
00:01:15 #2869 [Verbose] > │ 19..20]}" │
00:01:15 #2870 [Verbose] > │ let v6 : string = $"%A{v5}" │
00:01:15 #2871 [Verbose] > │ System.Console.WriteLine v6 │
00:01:15 #2872 [Verbose] > │ let v7 : bool = v5 = 999999999999999999L │
00:01:15 #2873 [Verbose] > │ let v9 : bool = │
00:01:15 #2874 [Verbose] > │ if v7 then │
00:01:15 #2875 [Verbose] > │ true │
00:01:15 #2876 [Verbose] > │ else │
00:01:15 #2877 [Verbose] > │ method1(v7) │
00:01:15 #2878 [Verbose] > │ let v10 : string = $"__expect / actual: %A{v5} / expected: │
00:01:15 #2879 [Verbose] > │ %A{999999999999999999L}" │
00:01:15 #2880 [Verbose] > │ let v11 : bool = v9 = false │
00:01:15 #2881 [Verbose] > │ if v11 then │
00:01:15 #2882 [Verbose] > │ failwith<unit> v10 │
00:01:15 #2883 [Verbose] > │ method0() │
00:01:15 #2884 [Verbose] > │ │
00:01:15 #2885 [Verbose] > │ 999999999999999999L │
00:01:15 #2886 [Verbose] > │ │
00:01:15 #2887 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:15 #2888 [Verbose] >
00:01:15 #2889 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:15 #2890 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:15 #2891 [Verbose] > │ ## new_guid_from_date_time │
00:01:15 #2892 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:15 #2893 [Verbose] >
00:01:15 #2894 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:15 #2895 [Verbose] > inl new_guid_from_date_time (date_time : date_time) =
00:01:15 #2896 [Verbose] > inl guid = guid.new_raw_guid ()
00:01:15 #2897 [Verbose] > date_time_guid_from_date_time guid date_time
00:01:16 #2898 [Verbose] >
00:01:16 #2899 [Verbose] > ╭─[ 248.22ms - stdout ]────────────────────────────────────────────────────────╮
00:01:16 #2900 [Verbose] > │ () │
00:01:16 #2901 [Verbose] > │ │
00:01:16 #2902 [Verbose] > │ │
00:01:16 #2903 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:16 #2904 [Verbose] >
00:01:16 #2905 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:16 #2906 [Verbose] > // // test
00:01:16 #2907 [Verbose] >
00:01:16 #2908 [Verbose] > new_guid_from_date_time $'System.DateTime.UtcNow'
00:01:16 #2909 [Verbose] > |> date_time_from_guid
00:01:16 #2910 [Verbose] > |> fun date_time => $'(!date_time - System.DateTime.UtcNow).TotalSeconds' : f64
00:01:16 #2911 [Verbose] > |> i32
00:01:16 #2912 [Verbose] > |> _assert_eq 0
00:01:16 #2913 [Verbose] >
00:01:16 #2914 [Verbose] > ╭─[ 314.32ms - stdout ]────────────────────────────────────────────────────────╮
00:01:16 #2915 [Verbose] > │ let rec closure2 (v0 : string, v1 : string) (v2 : string) : string = │
00:01:16 #2916 [Verbose] > │ let v3 : string = v2.Replace (v0, v1) │
00:01:16 #2917 [Verbose] > │ v3 │
00:01:16 #2918 [Verbose] > │ and closure1 (v0 : string) (v1 : string) : (string -> string) = │
00:01:16 #2919 [Verbose] > │ closure2(v0, v1) │
00:01:16 #2920 [Verbose] > │ and closure0 () (v0 : string) : (string -> (string -> string)) = │
00:01:16 #2921 [Verbose] > │ closure1(v0) │
00:01:16 #2922 [Verbose] > │ and method1 () : (string -> (string -> (string -> string))) = │
00:01:16 #2923 [Verbose] > │ closure0() │
00:01:16 #2924 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:01:16 #2925 [Verbose] > │ v0 │
00:01:16 #2926 [Verbose] > │ and method0 () : unit = │
00:01:16 #2927 [Verbose] > │ let v0 : System.DateTime = System.DateTime.UtcNow │
00:01:16 #2928 [Verbose] > │ let v1 : System.Guid = System.Guid.NewGuid () │
00:01:16 #2929 [Verbose] > │ let v2 : (System.Guid -> string) = _.ToString() │
00:01:16 #2930 [Verbose] > │ let v3 : string = v2 v1 │
00:01:16 #2931 [Verbose] > │ let v4 : string = v0.ToString "yyyyMMdd-HHmm-ssff-ffff-f" │
00:01:16 #2932 [Verbose] > │ let v5 : System.Guid = System.Guid $"{v4}{v3.[v4.Length..]}" │
00:01:16 #2933 [Verbose] > │ let v6 : (System.Guid -> string) = _.ToString() │
00:01:16 #2934 [Verbose] > │ let v7 : string = v6 v5 │
00:01:16 #2935 [Verbose] > │ let v8 : (string -> (string -> (string -> string))) = method1() │
00:01:16 #2936 [Verbose] > │ let mutable result = None │
00:01:16 #2937 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:01:16 #2938 [Verbose] > │ let v9 : System.DateTime = System.DateTime.Parse (v7.[..24] |> v8 "-" │
00:01:16 #2939 [Verbose] > │ "") │
00:01:16 #2940 [Verbose] > │ v9 │
00:01:16 #2941 [Verbose] > │ #endif │
00:01:16 #2942 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:16 #2943 [Verbose] > │ let v10 : System.DateTime = System.DateTime.Parse (v7.[..24] |> v8 "-" │
00:01:16 #2944 [Verbose] > │ "") │
00:01:16 #2945 [Verbose] > │ v10 │
00:01:16 #2946 [Verbose] > │ #endif │
00:01:16 #2947 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:16 #2948 [Verbose] > │ let v11 : System.DateTime = System.DateTime.ParseExact (v7.[..24] |> v8 │
00:01:16 #2949 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:16 #2950 [Verbose] > │ v11 │
00:01:16 #2951 [Verbose] > │ #endif │
00:01:16 #2952 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:16 #2953 [Verbose] > │ let v12 : System.DateTime = System.DateTime.ParseExact (v7.[..24] |> v8 │
00:01:16 #2954 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:16 #2955 [Verbose] > │ v12 │
00:01:16 #2956 [Verbose] > │ #endif │
00:01:16 #2957 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:16 #2958 [Verbose] > │ let v13 : System.DateTime = System.DateTime.ParseExact (v7.[..24] |> v8 │
00:01:16 #2959 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:16 #2960 [Verbose] > │ v13 │
00:01:16 #2961 [Verbose] > │ #endif │
00:01:16 #2962 [Verbose] > │ |> fun x -> result <- Some x │
00:01:16 #2963 [Verbose] > │ let v14 : System.DateTime = result |> Option.get │
00:01:16 #2964 [Verbose] > │ let v15 : float = (v14 - System.DateTime.UtcNow).TotalSeconds │
00:01:16 #2965 [Verbose] > │ let v16 : int32 = int32 v15 │
00:01:16 #2966 [Verbose] > │ let v17 : string = $"%A{v16}" │
00:01:16 #2967 [Verbose] > │ System.Console.WriteLine v17 │
00:01:16 #2968 [Verbose] > │ let v18 : bool = v16 = 0 │
00:01:16 #2969 [Verbose] > │ let v20 : bool = │
00:01:16 #2970 [Verbose] > │ if v18 then │
00:01:16 #2971 [Verbose] > │ true │
00:01:16 #2972 [Verbose] > │ else │
00:01:16 #2973 [Verbose] > │ method2(v18) │
00:01:16 #2974 [Verbose] > │ let v21 : string = $"__expect / actual: %A{v16} / expected: %A{0}" │
00:01:16 #2975 [Verbose] > │ let v22 : bool = v20 = false │
00:01:16 #2976 [Verbose] > │ if v22 then │
00:01:16 #2977 [Verbose] > │ failwith<unit> v21 │
00:01:16 #2978 [Verbose] > │ method0() │
00:01:16 #2979 [Verbose] > │ │
00:01:16 #2980 [Verbose] > │ 0 │
00:01:16 #2981 [Verbose] > │ │
00:01:16 #2982 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:16 #2983 [Verbose] >
00:01:16 #2984 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:16 #2985 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:16 #2986 [Verbose] > │ ## new_guid_from_ticks │
00:01:16 #2987 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:16 #2988 [Verbose] >
00:01:16 #2989 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:16 #2990 [Verbose] > inl new_guid_from_ticks (ticks : ticks) =
00:01:16 #2991 [Verbose] > inl guid = guid.new_raw_guid ()
00:01:16 #2992 [Verbose] > ticks_guid_from_ticks guid ticks
00:01:16 #2993 [Verbose] >
00:01:16 #2994 [Verbose] > ╭─[ 233.23ms - stdout ]────────────────────────────────────────────────────────╮
00:01:16 #2995 [Verbose] > │ () │
00:01:16 #2996 [Verbose] > │ │
00:01:16 #2997 [Verbose] > │ │
00:01:16 #2998 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:16 #2999 [Verbose] >
00:01:16 #3000 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:16 #3001 [Verbose] > // // test
00:01:16 #3002 [Verbose] >
00:01:16 #3003 [Verbose] > new_guid_from_ticks $'System.DateTime.UtcNow.Ticks'
00:01:16 #3004 [Verbose] > |> ticks_from_guid
00:01:16 #3005 [Verbose] > |> fun ticks => $'(!ticks - System.DateTime.UtcNow.Ticks) / 100000L'
00:01:16 #3006 [Verbose] > |> _assert_eq 0i64
00:01:16 #3007 [Verbose] >
00:01:16 #3008 [Verbose] > ╭─[ 316.35ms - stdout ]────────────────────────────────────────────────────────╮
00:01:16 #3009 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:01:16 #3010 [Verbose] > │ v0 │
00:01:16 #3011 [Verbose] > │ and method0 () : unit = │
00:01:16 #3012 [Verbose] > │ let v0 : int64 = System.DateTime.UtcNow.Ticks │
00:01:16 #3013 [Verbose] > │ let v1 : System.Guid = System.Guid.NewGuid () │
00:01:16 #3014 [Verbose] > │ let v2 : (System.Guid -> string) = _.ToString() │
00:01:16 #3015 [Verbose] > │ let v3 : string = v2 v1 │
00:01:16 #3016 [Verbose] > │ let v4 : (int64 -> string) = _.ToString() │
00:01:16 #3017 [Verbose] > │ let v5 : string = v4 v0 │
00:01:16 #3018 [Verbose] > │ let v6 : string = v5.PadLeft (18, '0') │
00:01:16 #3019 [Verbose] > │ let v7 : System.Guid = System.Guid $"{v6.[0..7]}-{v6.[8..11]}-{v6.[ │
00:01:16 #3020 [Verbose] > │ 12..15]}-{v6.[16..17]}{v3.[21..]}" │
00:01:16 #3021 [Verbose] > │ let v8 : (System.Guid -> string) = _.ToString() │
00:01:16 #3022 [Verbose] > │ let v9 : string = v8 v7 │
00:01:16 #3023 [Verbose] > │ let v10 : int64 = int64 $"{v9.[0..7]}{v9.[9..12]}{v9.[14..17]}{v9.[ │
00:01:16 #3024 [Verbose] > │ 19..20]}" │
00:01:16 #3025 [Verbose] > │ let v11 : int64 = (v10 - System.DateTime.UtcNow.Ticks) / 100000L │
00:01:16 #3026 [Verbose] > │ let v12 : string = $"%A{v11}" │
00:01:16 #3027 [Verbose] > │ System.Console.WriteLine v12 │
00:01:16 #3028 [Verbose] > │ let v13 : bool = v11 = 0L │
00:01:16 #3029 [Verbose] > │ let v15 : bool = │
00:01:16 #3030 [Verbose] > │ if v13 then │
00:01:16 #3031 [Verbose] > │ true │
00:01:16 #3032 [Verbose] > │ else │
00:01:16 #3033 [Verbose] > │ method1(v13) │
00:01:16 #3034 [Verbose] > │ let v16 : string = $"__expect / actual: %A{v11} / expected: %A{0L}" │
00:01:16 #3035 [Verbose] > │ let v17 : bool = v15 = false │
00:01:16 #3036 [Verbose] > │ if v17 then │
00:01:16 #3037 [Verbose] > │ failwith<unit> v16 │
00:01:16 #3038 [Verbose] > │ method0() │
00:01:16 #3039 [Verbose] > │ │
00:01:16 #3040 [Verbose] > │ 0L │
00:01:16 #3041 [Verbose] > │ │
00:01:16 #3042 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:17 #3043 [Verbose] >
00:01:17 #3044 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:17 #3045 [Verbose] > //// test
00:01:17 #3046 [Verbose] >
00:01:17 #3047 [Verbose] > type DateTimeWithZone = {
00:01:17 #3048 [Verbose] > DateTime: System.DateTimeOffset
00:01:17 #3049 [Verbose] > TimeZone: System.TimeZoneInfo
00:01:17 #3050 [Verbose] > }
00:01:17 #3051 [Verbose] >
00:01:17 #3052 [Verbose] > try
00:01:17 #3053 [Verbose] > let now = System.DateTimeOffset.Now
00:01:17 #3054 [Verbose] > let timeZoneInfo = System.TimeZoneInfo.Local
00:01:17 #3055 [Verbose] > let dateTimeWithZone = { DateTime = now; TimeZone = timeZoneInfo }
00:01:17 #3056 [Verbose] >
00:01:17 #3057 [Verbose] > printfn "DateTime: %O" dateTimeWithZone.DateTime
00:01:17 #3058 [Verbose] > printfn "Time Zone: %s" dateTimeWithZone.TimeZone.DisplayName
00:01:17 #3059 [Verbose] > printfn "Is DST: %b"
00:01:17 #3060 [Verbose] > (timeZoneInfo.IsDaylightSavingTime(dateTimeWithZone.DateTime.DateTime))
00:01:17 #3061 [Verbose] > printfn "v1: %s" (dateTimeWithZone.TimeZone.GetUtcOffset(now) |> string)
00:01:17 #3062 [Verbose] > printfn "v2: %s" (dateTimeWithZone.TimeZone |> string)
00:01:17 #3063 [Verbose] > with ex ->
00:01:17 #3064 [Verbose] > printfn "error: %A" ex
00:01:17 #3065 [Verbose] >
00:01:17 #3066 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:17 #3067 [Verbose] > #r
00:01:17 #3068 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
00:01:17 #3069 [Verbose] > spNetCore.Html.Abstractions.dll"
00:01:17 #3070 [Verbose] > #r
00:01:17 #3071 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:17 #3072 [Verbose] > otNet.Interactive.dll"
00:01:17 #3073 [Verbose] > #r
00:01:17 #3074 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:17 #3075 [Verbose] > otNet.Interactive.FSharp.dll"
00:01:17 #3076 [Verbose] > #r
00:01:17 #3077 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:17 #3078 [Verbose] > otNet.Interactive.Formatting.dll"
00:01:17 #3079 [Verbose] > open System
00:01:17 #3080 [Verbose] > open System.IO
00:01:17 #3081 [Verbose] > open System.Text
00:01:17 #3082 [Verbose] > open Microsoft.DotNet.Interactive.Formatting
00:01:18 #3083 [Verbose] >
00:01:18 #3084 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:18 #3085 [Verbose] > #r
00:01:18 #3086 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:18 #3087 [Verbose] > otNet.Interactive.FSharp.dll"
00:01:18 #3088 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
00:01:18 #3089 [Verbose] > #r
00:01:18 #3090 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:18 #3091 [Verbose] > otNet.Interactive.dll"
00:01:18 #3092 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel
00:01:18 #3093 [Verbose] >
00:01:18 #3094 [Verbose] > ╭─[ 1.43s - stdout ]───────────────────────────────────────────────────────────╮
00:01:18 #3095 [Verbose] > │ DateTime: 2024-03-30 5:14:14 PM -04:00 │
00:01:18 #3096 [Verbose] > │ Time Zone: (UTC-04:00) Cuiaba │
00:01:18 #3097 [Verbose] > │ Is DST: false │
00:01:18 #3098 [Verbose] > │ v1: -04:00:00 │
00:01:18 #3099 [Verbose] > │ v2: (UTC-04:00) Cuiaba │
00:01:18 #3100 [Verbose] > │ │
00:01:18 #3101 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:18 #3102 [Verbose] >
00:01:18 #3103 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:18 #3104 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:18 #3105 [Verbose] > │ ## main │
00:01:18 #3106 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:18 #3107 [Verbose] >
00:01:18 #3108 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:18 #3109 [Verbose] > inl main () =
00:01:18 #3110 [Verbose] > $"let date_time_guid_from_date_time x = !date_time_guid_from_date_time x" :
00:01:18 #3111 [Verbose] > ()
00:01:18 #3112 [Verbose] > $"let date_time_from_guid x = !date_time_from_guid x" : ()
00:01:18 #3113 [Verbose] > $"let ticks_guid_from_ticks x = !ticks_guid_from_ticks x" : ()
00:01:18 #3114 [Verbose] > $"let ticks_from_guid x = !ticks_from_guid x" : ()
00:01:18 #3115 [Verbose] > $"let new_guid_from_date_time x = !new_guid_from_date_time x" : ()
00:01:18 #3116 [Verbose] > $"let new_guid_from_ticks x = !new_guid_from_ticks x" : ()
00:01:18 #3117 [Verbose] >
00:01:18 #3118 [Verbose] > ╭─[ 397.29ms - stdout ]────────────────────────────────────────────────────────╮
00:01:18 #3119 [Verbose] > │ let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid = │
00:01:18 #3120 [Verbose] > │ let v2 : (System.Guid -> string) = _.ToString() │
00:01:18 #3121 [Verbose] > │ let v3 : string = v2 v0 │
00:01:18 #3122 [Verbose] > │ let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f" │
00:01:18 #3123 [Verbose] > │ let v5 : System.Guid = System.Guid $"{v4}{v3.[v4.Length..]}" │
00:01:18 #3124 [Verbose] > │ v5 │
00:01:18 #3125 [Verbose] > │ and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) = │
00:01:18 #3126 [Verbose] > │ closure1(v0) │
00:01:18 #3127 [Verbose] > │ and closure5 (v0 : string, v1 : string) (v2 : string) : string = │
00:01:18 #3128 [Verbose] > │ let v3 : string = v2.Replace (v0, v1) │
00:01:18 #3129 [Verbose] > │ v3 │
00:01:18 #3130 [Verbose] > │ and closure4 (v0 : string) (v1 : string) : (string -> string) = │
00:01:18 #3131 [Verbose] > │ closure5(v0, v1) │
00:01:18 #3132 [Verbose] > │ and closure3 () (v0 : string) : (string -> (string -> string)) = │
00:01:18 #3133 [Verbose] > │ closure4(v0) │
00:01:18 #3134 [Verbose] > │ and method0 () : (string -> (string -> (string -> string))) = │
00:01:18 #3135 [Verbose] > │ closure3() │
00:01:18 #3136 [Verbose] > │ and closure2 () (v0 : System.Guid) : System.DateTime = │
00:01:18 #3137 [Verbose] > │ let v1 : (System.Guid -> string) = _.ToString() │
00:01:18 #3138 [Verbose] > │ let v2 : string = v1 v0 │
00:01:18 #3139 [Verbose] > │ let v3 : (string -> (string -> (string -> string))) = method0() │
00:01:18 #3140 [Verbose] > │ let mutable result = None │
00:01:18 #3141 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:01:18 #3142 [Verbose] > │ let v4 : System.DateTime = System.DateTime.Parse (v2.[..24] |> v3 "-" │
00:01:18 #3143 [Verbose] > │ "") │
00:01:18 #3144 [Verbose] > │ v4 │
00:01:18 #3145 [Verbose] > │ #endif │
00:01:18 #3146 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:18 #3147 [Verbose] > │ let v5 : System.DateTime = System.DateTime.Parse (v2.[..24] |> v3 "-" │
00:01:18 #3148 [Verbose] > │ "") │
00:01:18 #3149 [Verbose] > │ v5 │
00:01:18 #3150 [Verbose] > │ #endif │
00:01:18 #3151 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:18 #3152 [Verbose] > │ let v6 : System.DateTime = System.DateTime.ParseExact (v2.[..24] |> v3 │
00:01:18 #3153 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:18 #3154 [Verbose] > │ v6 │
00:01:18 #3155 [Verbose] > │ #endif │
00:01:18 #3156 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:18 #3157 [Verbose] > │ let v7 : System.DateTime = System.DateTime.ParseExact (v2.[..24] |> v3 │
00:01:18 #3158 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:18 #3159 [Verbose] > │ v7 │
00:01:18 #3160 [Verbose] > │ #endif │
00:01:18 #3161 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:18 #3162 [Verbose] > │ let v8 : System.DateTime = System.DateTime.ParseExact (v2.[..24] |> v3 │
00:01:18 #3163 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:18 #3164 [Verbose] > │ v8 │
00:01:18 #3165 [Verbose] > │ #endif │
00:01:18 #3166 [Verbose] > │ |> fun x -> result <- Some x │
00:01:18 #3167 [Verbose] > │ let v9 : System.DateTime = result |> Option.get │
00:01:18 #3168 [Verbose] > │ v9 │
00:01:18 #3169 [Verbose] > │ and closure7 (v0 : System.Guid) (v1 : int64) : System.Guid = │
00:01:18 #3170 [Verbose] > │ let v2 : (System.Guid -> string) = _.ToString() │
00:01:18 #3171 [Verbose] > │ let v3 : string = v2 v0 │
00:01:18 #3172 [Verbose] > │ let v4 : (int64 -> string) = _.ToString() │
00:01:18 #3173 [Verbose] > │ let v5 : string = v4 v1 │
00:01:18 #3174 [Verbose] > │ let v6 : string = v5.PadLeft (18, '0') │
00:01:18 #3175 [Verbose] > │ let v7 : System.Guid = System.Guid $"{v6.[0..7]}-{v6.[8..11]}-{v6.[ │
00:01:18 #3176 [Verbose] > │ 12..15]}-{v6.[16..17]}{v3.[21..]}" │
00:01:18 #3177 [Verbose] > │ v7 │
00:01:18 #3178 [Verbose] > │ and closure6 () (v0 : System.Guid) : (int64 -> System.Guid) = │
00:01:18 #3179 [Verbose] > │ closure7(v0) │
00:01:18 #3180 [Verbose] > │ and closure8 () (v0 : System.Guid) : int64 = │
00:01:18 #3181 [Verbose] > │ let v1 : (System.Guid -> string) = _.ToString() │
00:01:18 #3182 [Verbose] > │ let v2 : string = v1 v0 │
00:01:18 #3183 [Verbose] > │ let v3 : int64 = int64 $"{v2.[0..7]}{v2.[9..12]}{v2.[14..17]}{v2.[ │
00:01:18 #3184 [Verbose] > │ 19..20]}" │
00:01:18 #3185 [Verbose] > │ v3 │
00:01:18 #3186 [Verbose] > │ and closure9 () (v0 : System.DateTime) : System.Guid = │
00:01:18 #3187 [Verbose] > │ let v1 : System.Guid = System.Guid.NewGuid () │
00:01:18 #3188 [Verbose] > │ let v2 : (System.Guid -> string) = _.ToString() │
00:01:18 #3189 [Verbose] > │ let v3 : string = v2 v1 │
00:01:18 #3190 [Verbose] > │ let v4 : string = v0.ToString "yyyyMMdd-HHmm-ssff-ffff-f" │
00:01:18 #3191 [Verbose] > │ let v5 : System.Guid = System.Guid $"{v4}{v3.[v4.Length..]}" │
00:01:18 #3192 [Verbose] > │ v5 │
00:01:18 #3193 [Verbose] > │ and closure10 () (v0 : int64) : System.Guid = │
00:01:18 #3194 [Verbose] > │ let v1 : System.Guid = System.Guid.NewGuid () │
00:01:18 #3195 [Verbose] > │ let v2 : (System.Guid -> string) = _.ToString() │
00:01:18 #3196 [Verbose] > │ let v3 : string = v2 v1 │
00:01:18 #3197 [Verbose] > │ let v4 : (int64 -> string) = _.ToString() │
00:01:18 #3198 [Verbose] > │ let v5 : string = v4 v0 │
00:01:18 #3199 [Verbose] > │ let v6 : string = v5.PadLeft (18, '0') │
00:01:18 #3200 [Verbose] > │ let v7 : System.Guid = System.Guid $"{v6.[0..7]}-{v6.[8..11]}-{v6.[ │
00:01:18 #3201 [Verbose] > │ 12..15]}-{v6.[16..17]}{v3.[21..]}" │
00:01:18 #3202 [Verbose] > │ v7 │
00:01:18 #3203 [Verbose] > │ let v0 : (System.Guid -> (System.DateTime -> System.Guid)) = closure0() │
00:01:18 #3204 [Verbose] > │ let date_time_guid_from_date_time x = v0 x │
00:01:18 #3205 [Verbose] > │ let v1 : (System.Guid -> System.DateTime) = closure2() │
00:01:18 #3206 [Verbose] > │ let date_time_from_guid x = v1 x │
00:01:18 #3207 [Verbose] > │ let v2 : (System.Guid -> (int64 -> System.Guid)) = closure6() │
00:01:18 #3208 [Verbose] > │ let ticks_guid_from_ticks x = v2 x │
00:01:18 #3209 [Verbose] > │ let v3 : (System.Guid -> int64) = closure8() │
00:01:18 #3210 [Verbose] > │ let ticks_from_guid x = v3 x │
00:01:18 #3211 [Verbose] > │ let v4 : (System.DateTime -> System.Guid) = closure9() │
00:01:18 #3212 [Verbose] > │ let new_guid_from_date_time x = v4 x │
00:01:18 #3213 [Verbose] > │ let v5 : (int64 -> System.Guid) = closure10() │
00:01:18 #3214 [Verbose] > │ let new_guid_from_ticks x = v5 x │
00:01:18 #3215 [Verbose] > │ () │
00:01:18 #3216 [Verbose] > │ │
00:01:18 #3217 [Verbose] > │ │
00:01:18 #3218 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:20 #3219 [Verbose] > [NbConvertApp] Converting notebook date_time.dib.ipynb to html
00:01:20 #3220 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:01:20 #3221 [Verbose] > validate(nb)
00:01:21 #3222 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:01:21 #3223 [Verbose] > return _pygments_highlight(
00:01:21 #3224 [Verbose] > [NbConvertApp] Writing 357906 bytes to date_time.dib.html
00:01:22 #3225 [Debug] executeAsync / exitCode: 0 / output.Length: 78137
00:01:22 #3226 [Debug] main / executeCommand / exitCode: 0
00:01:22 #3227 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 math.dib -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:01:24 #3228 [Verbose] >
00:01:24 #3229 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:24 #3230 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:24 #3231 [Verbose] > │ # math │
00:01:24 #3232 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:24 #3233 [Verbose] >
00:01:24 #3234 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:24 #3235 [Verbose] > // // test
00:01:24 #3236 [Verbose] >
00:01:24 #3237 [Verbose] > open testing
00:01:28 #3238 [Verbose] >
00:01:28 #3239 [Verbose] > ╭─[ 3.55s - stdout ]───────────────────────────────────────────────────────────╮
00:01:28 #3240 [Verbose] > │ () │
00:01:28 #3241 [Verbose] > │ │
00:01:28 #3242 [Verbose] > │ │
00:01:28 #3243 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #3244 [Verbose] >
00:01:28 #3245 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:28 #3246 [Verbose] > // // test
00:01:28 #3247 [Verbose] >
00:01:28 #3248 [Verbose] > 2 * 2 / 0.4f64 |> sqrt
00:01:28 #3249 [Verbose] > |> _assert_approx_eq None 3.1622776601683795
00:01:28 #3250 [Verbose] >
00:01:28 #3251 [Verbose] > ╭─[ 789.21ms - stdout ]────────────────────────────────────────────────────────╮
00:01:28 #3252 [Verbose] > │ let rec method0 () : unit = │
00:01:28 #3253 [Verbose] > │ let v0 : string = $"%A{3.1622776601683795}" │
00:01:28 #3254 [Verbose] > │ System.Console.WriteLine v0 │
00:01:28 #3255 [Verbose] > │ let v1 : string = $"__expect / actual: %A{3.1622776601683795} / │
00:01:28 #3256 [Verbose] > │ expected: %A{3.1622776601683795}" │
00:01:28 #3257 [Verbose] > │ () │
00:01:28 #3258 [Verbose] > │ method0() │
00:01:28 #3259 [Verbose] > │ │
00:01:28 #3260 [Verbose] > │ 3.16227766 │
00:01:28 #3261 [Verbose] > │ │
00:01:28 #3262 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #3263 [Verbose] >
00:01:28 #3264 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:28 #3265 [Verbose] > // // test
00:01:28 #3266 [Verbose] >
00:01:28 #3267 [Verbose] > 2f64 / 3
00:01:28 #3268 [Verbose] > |> _assert_approx_eq None 0.6666666666666666
00:01:29 #3269 [Verbose] >
00:01:29 #3270 [Verbose] > ╭─[ 268.75ms - stdout ]────────────────────────────────────────────────────────╮
00:01:29 #3271 [Verbose] > │ let rec method0 () : unit = │
00:01:29 #3272 [Verbose] > │ let v0 : string = $"%A{0.6666666666666666}" │
00:01:29 #3273 [Verbose] > │ System.Console.WriteLine v0 │
00:01:29 #3274 [Verbose] > │ let v1 : string = $"__expect / actual: %A{0.6666666666666666} / │
00:01:29 #3275 [Verbose] > │ expected: %A{0.6666666666666666}" │
00:01:29 #3276 [Verbose] > │ () │
00:01:29 #3277 [Verbose] > │ method0() │
00:01:29 #3278 [Verbose] > │ │
00:01:29 #3279 [Verbose] > │ 0.6666666667 │
00:01:29 #3280 [Verbose] > │ │
00:01:29 #3281 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:29 #3282 [Verbose] >
00:01:29 #3283 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:29 #3284 [Verbose] > // // test
00:01:29 #3285 [Verbose] >
00:01:29 #3286 [Verbose] > 2f64 |> log
00:01:29 #3287 [Verbose] > |> _assert_approx_eq None 0.6931471805599453
00:01:29 #3288 [Verbose] >
00:01:29 #3289 [Verbose] > ╭─[ 276.37ms - stdout ]────────────────────────────────────────────────────────╮
00:01:29 #3290 [Verbose] > │ let rec method0 () : unit = │
00:01:29 #3291 [Verbose] > │ let v0 : string = $"%A{0.6931471805599453}" │
00:01:29 #3292 [Verbose] > │ System.Console.WriteLine v0 │
00:01:29 #3293 [Verbose] > │ let v1 : string = $"__expect / actual: %A{0.6931471805599453} / │
00:01:29 #3294 [Verbose] > │ expected: %A{0.6931471805599453}" │
00:01:29 #3295 [Verbose] > │ () │
00:01:29 #3296 [Verbose] > │ method0() │
00:01:29 #3297 [Verbose] > │ │
00:01:29 #3298 [Verbose] > │ 0.6931471806 │
00:01:29 #3299 [Verbose] > │ │
00:01:29 #3300 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:29 #3301 [Verbose] >
00:01:29 #3302 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:29 #3303 [Verbose] > // // test
00:01:29 #3304 [Verbose] >
00:01:29 #3305 [Verbose] > pi
00:01:29 #3306 [Verbose] > |> _assert_approx_eq None 3.141592653589793f64
00:01:29 #3307 [Verbose] >
00:01:29 #3308 [Verbose] > ╭─[ 290.34ms - stdout ]────────────────────────────────────────────────────────╮
00:01:29 #3309 [Verbose] > │ let rec method0 () : unit = │
00:01:29 #3310 [Verbose] > │ let v0 : string = $"%A{3.141592653589793}" │
00:01:29 #3311 [Verbose] > │ System.Console.WriteLine v0 │
00:01:29 #3312 [Verbose] > │ let v1 : string = $"__expect / actual: %A{3.141592653589793} / expected: │
00:01:29 #3313 [Verbose] > │ %A{3.141592653589793}" │
00:01:29 #3314 [Verbose] > │ () │
00:01:29 #3315 [Verbose] > │ method0() │
00:01:29 #3316 [Verbose] > │ │
00:01:29 #3317 [Verbose] > │ 3.141592654 │
00:01:29 #3318 [Verbose] > │ │
00:01:29 #3319 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:29 #3320 [Verbose] >
00:01:29 #3321 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:29 #3322 [Verbose] > // // test
00:01:29 #3323 [Verbose] >
00:01:29 #3324 [Verbose] > pi |> cos
00:01:29 #3325 [Verbose] > |> _assert_eq -1f64
00:01:30 #3326 [Verbose] >
00:01:30 #3327 [Verbose] > ╭─[ 294.14ms - stdout ]────────────────────────────────────────────────────────╮
00:01:30 #3328 [Verbose] > │ let rec method0 () : unit = │
00:01:30 #3329 [Verbose] > │ let v0 : string = $"%A{-1.0}" │
00:01:30 #3330 [Verbose] > │ System.Console.WriteLine v0 │
00:01:30 #3331 [Verbose] > │ let v1 : string = $"__expect / actual: %A{-1.0} / expected: %A{-1.0}" │
00:01:30 #3332 [Verbose] > │ () │
00:01:30 #3333 [Verbose] > │ method0() │
00:01:30 #3334 [Verbose] > │ │
00:01:30 #3335 [Verbose] > │ -1.0 │
00:01:30 #3336 [Verbose] > │ │
00:01:30 #3337 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:30 #3338 [Verbose] >
00:01:30 #3339 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:30 #3340 [Verbose] > // // test
00:01:30 #3341 [Verbose] >
00:01:30 #3342 [Verbose] > pi
00:01:30 #3343 [Verbose] > |> cos
00:01:30 #3344 [Verbose] > |> fun n => n / 2f64
00:01:30 #3345 [Verbose] > |> _assert_approx_eq None -0.5
00:01:30 #3346 [Verbose] >
00:01:30 #3347 [Verbose] > ╭─[ 438.92ms - stdout ]────────────────────────────────────────────────────────╮
00:01:30 #3348 [Verbose] > │ let rec method0 () : unit = │
00:01:30 #3349 [Verbose] > │ let v0 : string = $"%A{-0.5}" │
00:01:30 #3350 [Verbose] > │ System.Console.WriteLine v0 │
00:01:30 #3351 [Verbose] > │ let v1 : string = $"__expect / actual: %A{-0.5} / expected: %A{-0.5}" │
00:01:30 #3352 [Verbose] > │ () │
00:01:30 #3353 [Verbose] > │ method0() │
00:01:30 #3354 [Verbose] > │ │
00:01:30 #3355 [Verbose] > │ -0.5 │
00:01:30 #3356 [Verbose] > │ │
00:01:30 #3357 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:30 #3358 [Verbose] >
00:01:30 #3359 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:30 #3360 [Verbose] > // // test
00:01:30 #3361 [Verbose] >
00:01:30 #3362 [Verbose] > pi / 2 |> cos
00:01:30 #3363 [Verbose] > |> _assert_approx_eq None 0.00000000000000006123233995736766f64
00:01:30 #3364 [Verbose] >
00:01:30 #3365 [Verbose] > ╭─[ 276.58ms - stdout ]────────────────────────────────────────────────────────╮
00:01:30 #3366 [Verbose] > │ let rec method0 () : unit = │
00:01:30 #3367 [Verbose] > │ let v0 : string = $"%A{6.123233995736766E-17}" │
00:01:30 #3368 [Verbose] > │ System.Console.WriteLine v0 │
00:01:30 #3369 [Verbose] > │ let v1 : string = $"__expect / actual: %A{6.123233995736766E-17} / │
00:01:30 #3370 [Verbose] > │ expected: %A{6.123233995736766E-17}" │
00:01:30 #3371 [Verbose] > │ () │
00:01:30 #3372 [Verbose] > │ method0() │
00:01:30 #3373 [Verbose] > │ │
00:01:30 #3374 [Verbose] > │ 6.123233996e-17 │
00:01:30 #3375 [Verbose] > │ │
00:01:30 #3376 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:30 #3377 [Verbose] >
00:01:30 #3378 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:30 #3379 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:30 #3380 [Verbose] > │ ## atan2 │
00:01:30 #3381 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:30 #3382 [Verbose] >
00:01:30 #3383 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:30 #3384 [Verbose] > inl atan2 (y : f64) (x : f64) =
00:01:30 #3385 [Verbose] > $"System.Math.Atan2 (!y, !x)" : f64
00:01:31 #3386 [Verbose] >
00:01:31 #3387 [Verbose] > ╭─[ 298.42ms - stdout ]────────────────────────────────────────────────────────╮
00:01:31 #3388 [Verbose] > │ () │
00:01:31 #3389 [Verbose] > │ │
00:01:31 #3390 [Verbose] > │ │
00:01:31 #3391 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:31 #3392 [Verbose] >
00:01:31 #3393 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:31 #3394 [Verbose] > // // test
00:01:31 #3395 [Verbose] >
00:01:31 #3396 [Verbose] > 0 |> atan2 1
00:01:31 #3397 [Verbose] > |> _assert_eq 1.5707963267948966
00:01:31 #3398 [Verbose] >
00:01:31 #3399 [Verbose] > ╭─[ 379.73ms - stdout ]────────────────────────────────────────────────────────╮
00:01:31 #3400 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:01:31 #3401 [Verbose] > │ v0 │
00:01:31 #3402 [Verbose] > │ and method0 () : unit = │
00:01:31 #3403 [Verbose] > │ let v0 : float = System.Math.Atan2 (1.0, 0.0) │
00:01:31 #3404 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:01:31 #3405 [Verbose] > │ System.Console.WriteLine v1 │
00:01:31 #3406 [Verbose] > │ let v2 : bool = v0 = 1.5707963267948966 │
00:01:31 #3407 [Verbose] > │ let v4 : bool = │
00:01:31 #3408 [Verbose] > │ if v2 then │
00:01:31 #3409 [Verbose] > │ true │
00:01:31 #3410 [Verbose] > │ else │
00:01:31 #3411 [Verbose] > │ method1(v2) │
00:01:31 #3412 [Verbose] > │ let v5 : string = $"__expect / actual: %A{v0} / expected: │
00:01:31 #3413 [Verbose] > │ %A{1.5707963267948966}" │
00:01:31 #3414 [Verbose] > │ let v6 : bool = v4 = false │
00:01:31 #3415 [Verbose] > │ if v6 then │
00:01:31 #3416 [Verbose] > │ failwith<unit> v5 │
00:01:31 #3417 [Verbose] > │ method0() │
00:01:31 #3418 [Verbose] > │ │
00:01:31 #3419 [Verbose] > │ 1.570796327 │
00:01:31 #3420 [Verbose] > │ │
00:01:31 #3421 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:31 #3422 [Verbose] >
00:01:31 #3423 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:31 #3424 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:31 #3425 [Verbose] > │ ## e │
00:01:31 #3426 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:31 #3427 [Verbose] >
00:01:31 #3428 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:31 #3429 [Verbose] > inl e () =
00:01:31 #3430 [Verbose] > exp 1f64
00:01:31 #3431 [Verbose] >
00:01:31 #3432 [Verbose] > ╭─[ 271.38ms - stdout ]────────────────────────────────────────────────────────╮
00:01:31 #3433 [Verbose] > │ () │
00:01:31 #3434 [Verbose] > │ │
00:01:31 #3435 [Verbose] > │ │
00:01:31 #3436 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:31 #3437 [Verbose] >
00:01:31 #3438 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:31 #3439 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:31 #3440 [Verbose] > │ ## floor │
00:01:31 #3441 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:31 #3442 [Verbose] >
00:01:31 #3443 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:31 #3444 [Verbose] > inl floor forall t {float}. (n : t) : t =
00:01:31 #3445 [Verbose] > n |> $'floor'
00:01:32 #3446 [Verbose] >
00:01:32 #3447 [Verbose] > ╭─[ 246.12ms - stdout ]────────────────────────────────────────────────────────╮
00:01:32 #3448 [Verbose] > │ () │
00:01:32 #3449 [Verbose] > │ │
00:01:32 #3450 [Verbose] > │ │
00:01:32 #3451 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:32 #3452 [Verbose] >
00:01:32 #3453 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:32 #3454 [Verbose] > // // test
00:01:32 #3455 [Verbose] >
00:01:32 #3456 [Verbose] > 0.6 |> floor
00:01:32 #3457 [Verbose] > |> _assert_eq 0f64
00:01:32 #3458 [Verbose] >
00:01:32 #3459 [Verbose] > ╭─[ 328.81ms - stdout ]────────────────────────────────────────────────────────╮
00:01:32 #3460 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:01:32 #3461 [Verbose] > │ v0 │
00:01:32 #3462 [Verbose] > │ and method0 () : unit = │
00:01:32 #3463 [Verbose] > │ let v0 : (float -> float) = floor │
00:01:32 #3464 [Verbose] > │ let v1 : float = v0 0.6 │
00:01:32 #3465 [Verbose] > │ let v2 : string = $"%A{v1}" │
00:01:32 #3466 [Verbose] > │ System.Console.WriteLine v2 │
00:01:32 #3467 [Verbose] > │ let v3 : bool = v1 = 0.0 │
00:01:32 #3468 [Verbose] > │ let v5 : bool = │
00:01:32 #3469 [Verbose] > │ if v3 then │
00:01:32 #3470 [Verbose] > │ true │
00:01:32 #3471 [Verbose] > │ else │
00:01:32 #3472 [Verbose] > │ method1(v3) │
00:01:32 #3473 [Verbose] > │ let v6 : string = $"__expect / actual: %A{v1} / expected: %A{0.0}" │
00:01:32 #3474 [Verbose] > │ let v7 : bool = v5 = false │
00:01:32 #3475 [Verbose] > │ if v7 then │
00:01:32 #3476 [Verbose] > │ failwith<unit> v6 │
00:01:32 #3477 [Verbose] > │ method0() │
00:01:32 #3478 [Verbose] > │ │
00:01:32 #3479 [Verbose] > │ 0.0 │
00:01:32 #3480 [Verbose] > │ │
00:01:32 #3481 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:32 #3482 [Verbose] >
00:01:32 #3483 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:32 #3484 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:32 #3485 [Verbose] > │ ## ceil │
00:01:32 #3486 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:32 #3487 [Verbose] >
00:01:32 #3488 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:32 #3489 [Verbose] > inl ceil forall t {float}. (n : t) : t =
00:01:32 #3490 [Verbose] > n |> $'ceil'
00:01:32 #3491 [Verbose] >
00:01:32 #3492 [Verbose] > ╭─[ 266.02ms - stdout ]────────────────────────────────────────────────────────╮
00:01:32 #3493 [Verbose] > │ () │
00:01:32 #3494 [Verbose] > │ │
00:01:32 #3495 [Verbose] > │ │
00:01:32 #3496 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:32 #3497 [Verbose] >
00:01:32 #3498 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:32 #3499 [Verbose] > // // test
00:01:32 #3500 [Verbose] >
00:01:32 #3501 [Verbose] > 0.6 |> ceil
00:01:32 #3502 [Verbose] > |> _assert_eq 1f64
00:01:32 #3503 [Verbose] >
00:01:32 #3504 [Verbose] > ╭─[ 246.50ms - stdout ]────────────────────────────────────────────────────────╮
00:01:32 #3505 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:01:32 #3506 [Verbose] > │ v0 │
00:01:32 #3507 [Verbose] > │ and method0 () : unit = │
00:01:32 #3508 [Verbose] > │ let v0 : (float -> float) = ceil │
00:01:32 #3509 [Verbose] > │ let v1 : float = v0 0.6 │
00:01:32 #3510 [Verbose] > │ let v2 : string = $"%A{v1}" │
00:01:32 #3511 [Verbose] > │ System.Console.WriteLine v2 │
00:01:32 #3512 [Verbose] > │ let v3 : bool = v1 = 1.0 │
00:01:32 #3513 [Verbose] > │ let v5 : bool = │
00:01:32 #3514 [Verbose] > │ if v3 then │
00:01:32 #3515 [Verbose] > │ true │
00:01:32 #3516 [Verbose] > │ else │
00:01:32 #3517 [Verbose] > │ method1(v3) │
00:01:32 #3518 [Verbose] > │ let v6 : string = $"__expect / actual: %A{v1} / expected: %A{1.0}" │
00:01:32 #3519 [Verbose] > │ let v7 : bool = v5 = false │
00:01:32 #3520 [Verbose] > │ if v7 then │
00:01:32 #3521 [Verbose] > │ failwith<unit> v6 │
00:01:32 #3522 [Verbose] > │ method0() │
00:01:32 #3523 [Verbose] > │ │
00:01:32 #3524 [Verbose] > │ 1.0 │
00:01:32 #3525 [Verbose] > │ │
00:01:32 #3526 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:32 #3527 [Verbose] >
00:01:32 #3528 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:32 #3529 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:32 #3530 [Verbose] > │ ## round │
00:01:32 #3531 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:32 #3532 [Verbose] >
00:01:32 #3533 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:32 #3534 [Verbose] > inl round forall t {float}. (n : t) : t =
00:01:32 #3535 [Verbose] > n |> $'round'
00:01:33 #3536 [Verbose] >
00:01:33 #3537 [Verbose] > ╭─[ 284.03ms - stdout ]────────────────────────────────────────────────────────╮
00:01:33 #3538 [Verbose] > │ () │
00:01:33 #3539 [Verbose] > │ │
00:01:33 #3540 [Verbose] > │ │
00:01:33 #3541 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:33 #3542 [Verbose] >
00:01:33 #3543 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:33 #3544 [Verbose] > // // test
00:01:33 #3545 [Verbose] >
00:01:33 #3546 [Verbose] > 0.5 |> round
00:01:33 #3547 [Verbose] > |> _assert_eq 0f64
00:01:33 #3548 [Verbose] >
00:01:33 #3549 [Verbose] > 1.5 |> round
00:01:33 #3550 [Verbose] > |> _assert_eq 2f64
00:01:33 #3551 [Verbose] >
00:01:33 #3552 [Verbose] > 2.5 |> round
00:01:33 #3553 [Verbose] > |> _assert_eq 2f64
00:01:33 #3554 [Verbose] >
00:01:33 #3555 [Verbose] > 3.5 |> round
00:01:33 #3556 [Verbose] > |> _assert_eq 4f64
00:01:33 #3557 [Verbose] >
00:01:33 #3558 [Verbose] > ╭─[ 315.38ms - stdout ]────────────────────────────────────────────────────────╮
00:01:33 #3559 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:01:33 #3560 [Verbose] > │ v0 │
00:01:33 #3561 [Verbose] > │ and method0 () : unit = │
00:01:33 #3562 [Verbose] > │ let v0 : (float -> float) = round │
00:01:33 #3563 [Verbose] > │ let v1 : float = v0 0.5 │
00:01:33 #3564 [Verbose] > │ let v2 : string = $"%A{v1}" │
00:01:33 #3565 [Verbose] > │ System.Console.WriteLine v2 │
00:01:33 #3566 [Verbose] > │ let v3 : bool = v1 = 0.0 │
00:01:33 #3567 [Verbose] > │ let v5 : bool = │
00:01:33 #3568 [Verbose] > │ if v3 then │
00:01:33 #3569 [Verbose] > │ true │
00:01:33 #3570 [Verbose] > │ else │
00:01:33 #3571 [Verbose] > │ method1(v3) │
00:01:33 #3572 [Verbose] > │ let v6 : string = $"__expect / actual: %A{v1} / expected: %A{0.0}" │
00:01:33 #3573 [Verbose] > │ let v7 : bool = v5 = false │
00:01:33 #3574 [Verbose] > │ if v7 then │
00:01:33 #3575 [Verbose] > │ failwith<unit> v6 │
00:01:33 #3576 [Verbose] > │ let v8 : (float -> float) = round │
00:01:33 #3577 [Verbose] > │ let v9 : float = v8 1.5 │
00:01:33 #3578 [Verbose] > │ let v10 : string = $"%A{v9}" │
00:01:33 #3579 [Verbose] > │ System.Console.WriteLine v10 │
00:01:33 #3580 [Verbose] > │ let v11 : bool = v9 = 2.0 │
00:01:33 #3581 [Verbose] > │ let v13 : bool = │
00:01:33 #3582 [Verbose] > │ if v11 then │
00:01:33 #3583 [Verbose] > │ true │
00:01:33 #3584 [Verbose] > │ else │
00:01:33 #3585 [Verbose] > │ method1(v11) │
00:01:33 #3586 [Verbose] > │ let v14 : string = $"__expect / actual: %A{v9} / expected: %A{2.0}" │
00:01:33 #3587 [Verbose] > │ let v15 : bool = v13 = false │
00:01:33 #3588 [Verbose] > │ if v15 then │
00:01:33 #3589 [Verbose] > │ failwith<unit> v14 │
00:01:33 #3590 [Verbose] > │ let v16 : (float -> float) = round │
00:01:33 #3591 [Verbose] > │ let v17 : float = v16 2.5 │
00:01:33 #3592 [Verbose] > │ let v18 : string = $"%A{v17}" │
00:01:33 #3593 [Verbose] > │ System.Console.WriteLine v18 │
00:01:33 #3594 [Verbose] > │ let v19 : bool = v17 = 2.0 │
00:01:33 #3595 [Verbose] > │ let v21 : bool = │
00:01:33 #3596 [Verbose] > │ if v19 then │
00:01:33 #3597 [Verbose] > │ true │
00:01:33 #3598 [Verbose] > │ else │
00:01:33 #3599 [Verbose] > │ method1(v19) │
00:01:33 #3600 [Verbose] > │ let v22 : string = $"__expect / actual: %A{v17} / expected: %A{2.0}" │
00:01:33 #3601 [Verbose] > │ let v23 : bool = v21 = false │
00:01:33 #3602 [Verbose] > │ if v23 then │
00:01:33 #3603 [Verbose] > │ failwith<unit> v22 │
00:01:33 #3604 [Verbose] > │ let v24 : (float -> float) = round │
00:01:33 #3605 [Verbose] > │ let v25 : float = v24 3.5 │
00:01:33 #3606 [Verbose] > │ let v26 : string = $"%A{v25}" │
00:01:33 #3607 [Verbose] > │ System.Console.WriteLine v26 │
00:01:33 #3608 [Verbose] > │ let v27 : bool = v25 = 4.0 │
00:01:33 #3609 [Verbose] > │ let v29 : bool = │
00:01:33 #3610 [Verbose] > │ if v27 then │
00:01:33 #3611 [Verbose] > │ true │
00:01:33 #3612 [Verbose] > │ else │
00:01:33 #3613 [Verbose] > │ method1(v27) │
00:01:33 #3614 [Verbose] > │ let v30 : string = $"__expect / actual: %A{v25} / expected: %A{4.0}" │
00:01:33 #3615 [Verbose] > │ let v31 : bool = v29 = false │
00:01:33 #3616 [Verbose] > │ if v31 then │
00:01:33 #3617 [Verbose] > │ failwith<unit> v30 │
00:01:33 #3618 [Verbose] > │ method0() │
00:01:33 #3619 [Verbose] > │ │
00:01:33 #3620 [Verbose] > │ 0.0 │
00:01:33 #3621 [Verbose] > │ 2.0 │
00:01:33 #3622 [Verbose] > │ 2.0 │
00:01:33 #3623 [Verbose] > │ 4.0 │
00:01:33 #3624 [Verbose] > │ │
00:01:33 #3625 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:33 #3626 [Verbose] >
00:01:33 #3627 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:33 #3628 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:33 #3629 [Verbose] > │ ## log_base │
00:01:33 #3630 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:33 #3631 [Verbose] >
00:01:33 #3632 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:33 #3633 [Verbose] > inl log_base (new_base : f64) (a : f64) =
00:01:33 #3634 [Verbose] > $"System.Math.Log (!a, !new_base)" : f64
00:01:33 #3635 [Verbose] >
00:01:33 #3636 [Verbose] > ╭─[ 244.86ms - stdout ]────────────────────────────────────────────────────────╮
00:01:33 #3637 [Verbose] > │ () │
00:01:33 #3638 [Verbose] > │ │
00:01:33 #3639 [Verbose] > │ │
00:01:33 #3640 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:33 #3641 [Verbose] >
00:01:33 #3642 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:33 #3643 [Verbose] > // // test
00:01:33 #3644 [Verbose] >
00:01:33 #3645 [Verbose] > 100 |> log_base 10
00:01:33 #3646 [Verbose] > |> _assert_eq 2
00:01:34 #3647 [Verbose] >
00:01:34 #3648 [Verbose] > ╭─[ 256.18ms - stdout ]────────────────────────────────────────────────────────╮
00:01:34 #3649 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:01:34 #3650 [Verbose] > │ v0 │
00:01:34 #3651 [Verbose] > │ and method0 () : unit = │
00:01:34 #3652 [Verbose] > │ let v0 : float = System.Math.Log (100.0, 10.0) │
00:01:34 #3653 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:01:34 #3654 [Verbose] > │ System.Console.WriteLine v1 │
00:01:34 #3655 [Verbose] > │ let v2 : bool = v0 = 2.0 │
00:01:34 #3656 [Verbose] > │ let v4 : bool = │
00:01:34 #3657 [Verbose] > │ if v2 then │
00:01:34 #3658 [Verbose] > │ true │
00:01:34 #3659 [Verbose] > │ else │
00:01:34 #3660 [Verbose] > │ method1(v2) │
00:01:34 #3661 [Verbose] > │ let v5 : string = $"__expect / actual: %A{v0} / expected: %A{2.0}" │
00:01:34 #3662 [Verbose] > │ let v6 : bool = v4 = false │
00:01:34 #3663 [Verbose] > │ if v6 then │
00:01:34 #3664 [Verbose] > │ failwith<unit> v5 │
00:01:34 #3665 [Verbose] > │ method0() │
00:01:34 #3666 [Verbose] > │ │
00:01:34 #3667 [Verbose] > │ 2.0 │
00:01:34 #3668 [Verbose] > │ │
00:01:34 #3669 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:34 #3670 [Verbose] >
00:01:34 #3671 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:34 #3672 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:34 #3673 [Verbose] > │ ## round │
00:01:34 #3674 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:34 #3675 [Verbose] >
00:01:34 #3676 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:34 #3677 [Verbose] > inl round forall t {float}. (x : t) : t =
00:01:34 #3678 [Verbose] > $"round !x"
00:01:34 #3679 [Verbose] >
00:01:34 #3680 [Verbose] > ╭─[ 238.88ms - stdout ]────────────────────────────────────────────────────────╮
00:01:34 #3681 [Verbose] > │ () │
00:01:34 #3682 [Verbose] > │ │
00:01:34 #3683 [Verbose] > │ │
00:01:34 #3684 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:34 #3685 [Verbose] >
00:01:34 #3686 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:34 #3687 [Verbose] > // // test
00:01:34 #3688 [Verbose] >
00:01:34 #3689 [Verbose] > 0.5 |> round
00:01:34 #3690 [Verbose] > |> _assert_eq 0f64
00:01:34 #3691 [Verbose] >
00:01:34 #3692 [Verbose] > ╭─[ 234.38ms - stdout ]────────────────────────────────────────────────────────╮
00:01:34 #3693 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:01:34 #3694 [Verbose] > │ v0 │
00:01:34 #3695 [Verbose] > │ and method0 () : unit = │
00:01:34 #3696 [Verbose] > │ let v0 : float = round 0.5 │
00:01:34 #3697 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:01:34 #3698 [Verbose] > │ System.Console.WriteLine v1 │
00:01:34 #3699 [Verbose] > │ let v2 : bool = v0 = 0.0 │
00:01:34 #3700 [Verbose] > │ let v4 : bool = │
00:01:34 #3701 [Verbose] > │ if v2 then │
00:01:34 #3702 [Verbose] > │ true │
00:01:34 #3703 [Verbose] > │ else │
00:01:34 #3704 [Verbose] > │ method1(v2) │
00:01:34 #3705 [Verbose] > │ let v5 : string = $"__expect / actual: %A{v0} / expected: %A{0.0}" │
00:01:34 #3706 [Verbose] > │ let v6 : bool = v4 = false │
00:01:34 #3707 [Verbose] > │ if v6 then │
00:01:34 #3708 [Verbose] > │ failwith<unit> v5 │
00:01:34 #3709 [Verbose] > │ method0() │
00:01:34 #3710 [Verbose] > │ │
00:01:34 #3711 [Verbose] > │ 0.0 │
00:01:34 #3712 [Verbose] > │ │
00:01:34 #3713 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:34 #3714 [Verbose] >
00:01:34 #3715 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:34 #3716 [Verbose] > // // test
00:01:34 #3717 [Verbose] >
00:01:34 #3718 [Verbose] > 0.6 |> round
00:01:34 #3719 [Verbose] > |> _assert_eq 1f64
00:01:34 #3720 [Verbose] >
00:01:34 #3721 [Verbose] > ╭─[ 396.05ms - stdout ]────────────────────────────────────────────────────────╮
00:01:34 #3722 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:01:34 #3723 [Verbose] > │ v0 │
00:01:34 #3724 [Verbose] > │ and method0 () : unit = │
00:01:34 #3725 [Verbose] > │ let v0 : float = round 0.6 │
00:01:34 #3726 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:01:34 #3727 [Verbose] > │ System.Console.WriteLine v1 │
00:01:34 #3728 [Verbose] > │ let v2 : bool = v0 = 1.0 │
00:01:34 #3729 [Verbose] > │ let v4 : bool = │
00:01:34 #3730 [Verbose] > │ if v2 then │
00:01:34 #3731 [Verbose] > │ true │
00:01:34 #3732 [Verbose] > │ else │
00:01:34 #3733 [Verbose] > │ method1(v2) │
00:01:34 #3734 [Verbose] > │ let v5 : string = $"__expect / actual: %A{v0} / expected: %A{1.0}" │
00:01:34 #3735 [Verbose] > │ let v6 : bool = v4 = false │
00:01:34 #3736 [Verbose] > │ if v6 then │
00:01:34 #3737 [Verbose] > │ failwith<unit> v5 │
00:01:34 #3738 [Verbose] > │ method0() │
00:01:34 #3739 [Verbose] > │ │
00:01:34 #3740 [Verbose] > │ 1.0 │
00:01:34 #3741 [Verbose] > │ │
00:01:34 #3742 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:34 #3743 [Verbose] >
00:01:34 #3744 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:34 #3745 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:34 #3746 [Verbose] > │ ## square │
00:01:34 #3747 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:34 #3748 [Verbose] >
00:01:34 #3749 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:34 #3750 [Verbose] > inl square x =
00:01:34 #3751 [Verbose] > x ** 2
00:01:35 #3752 [Verbose] >
00:01:35 #3753 [Verbose] > ╭─[ 262.03ms - stdout ]────────────────────────────────────────────────────────╮
00:01:35 #3754 [Verbose] > │ () │
00:01:35 #3755 [Verbose] > │ │
00:01:35 #3756 [Verbose] > │ │
00:01:35 #3757 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:35 #3758 [Verbose] >
00:01:35 #3759 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:35 #3760 [Verbose] > // // test
00:01:35 #3761 [Verbose] >
00:01:35 #3762 [Verbose] > 5f64
00:01:35 #3763 [Verbose] > |> sqrt
00:01:35 #3764 [Verbose] > |> square
00:01:35 #3765 [Verbose] > |> _assert_approx_eq None 5
00:01:35 #3766 [Verbose] >
00:01:35 #3767 [Verbose] > ╭─[ 266.39ms - stdout ]────────────────────────────────────────────────────────╮
00:01:35 #3768 [Verbose] > │ let rec method0 () : unit = │
00:01:35 #3769 [Verbose] > │ let v0 : string = $"%A{5.000000000000001}" │
00:01:35 #3770 [Verbose] > │ System.Console.WriteLine v0 │
00:01:35 #3771 [Verbose] > │ let v1 : string = $"__expect / actual: %A{5.000000000000001} / expected: │
00:01:35 #3772 [Verbose] > │ %A{5.0}" │
00:01:35 #3773 [Verbose] > │ () │
00:01:35 #3774 [Verbose] > │ method0() │
00:01:35 #3775 [Verbose] > │ │
00:01:35 #3776 [Verbose] > │ 5.0 │
00:01:35 #3777 [Verbose] > │ │
00:01:35 #3778 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:35 #3779 [Verbose] >
00:01:35 #3780 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:35 #3781 [Verbose] > // // test
00:01:35 #3782 [Verbose] >
00:01:35 #3783 [Verbose] > e () |> square
00:01:35 #3784 [Verbose] > |> _assert_approx_eq None 7.3890560989306495
00:01:35 #3785 [Verbose] >
00:01:35 #3786 [Verbose] > ╭─[ 324.12ms - stdout ]────────────────────────────────────────────────────────╮
00:01:35 #3787 [Verbose] > │ let rec method0 () : unit = │
00:01:35 #3788 [Verbose] > │ let v0 : string = $"%A{7.3890560989306495}" │
00:01:35 #3789 [Verbose] > │ System.Console.WriteLine v0 │
00:01:35 #3790 [Verbose] > │ let v1 : string = $"__expect / actual: %A{7.3890560989306495} / │
00:01:35 #3791 [Verbose] > │ expected: %A{7.3890560989306495}" │
00:01:35 #3792 [Verbose] > │ () │
00:01:35 #3793 [Verbose] > │ method0() │
00:01:35 #3794 [Verbose] > │ │
00:01:35 #3795 [Verbose] > │ 7.389056099 │
00:01:35 #3796 [Verbose] > │ │
00:01:35 #3797 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:37 #3798 [Verbose] > [NbConvertApp] Converting notebook math.dib.ipynb to html
00:01:37 #3799 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:01:37 #3800 [Verbose] > validate(nb)
00:01:37 #3801 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:01:37 #3802 [Verbose] > return _pygments_highlight(
00:01:38 #3803 [Verbose] > [NbConvertApp] Writing 313224 bytes to math.dib.html
00:01:38 #3804 [Debug] executeAsync / exitCode: 0 / output.Length: 35922
00:01:38 #3805 [Debug] main / executeCommand / exitCode: 0
00:01:38 #3806 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 \"optionm'.dib\" -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:01:40 #3807 [Verbose] >
00:01:40 #3808 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:40 #3809 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:40 #3810 [Verbose] > │ # optionm │
00:01:40 #3811 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:41 #3812 [Verbose] >
00:01:41 #3813 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:41 #3814 [Verbose] > // // test
00:01:41 #3815 [Verbose] >
00:01:41 #3816 [Verbose] > open testing
00:01:44 #3817 [Verbose] >
00:01:44 #3818 [Verbose] > ╭─[ 3.55s - stdout ]───────────────────────────────────────────────────────────╮
00:01:44 #3819 [Verbose] > │ () │
00:01:44 #3820 [Verbose] > │ │
00:01:44 #3821 [Verbose] > │ │
00:01:44 #3822 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:44 #3823 [Verbose] >
00:01:44 #3824 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:44 #3825 [Verbose] > open rust_operators
00:01:44 #3826 [Verbose] >
00:01:44 #3827 [Verbose] > ╭─[ 291.72ms - stdout ]────────────────────────────────────────────────────────╮
00:01:44 #3828 [Verbose] > │ () │
00:01:44 #3829 [Verbose] > │ │
00:01:44 #3830 [Verbose] > │ │
00:01:44 #3831 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:44 #3832 [Verbose] >
00:01:44 #3833 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:44 #3834 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:44 #3835 [Verbose] > │ ## default_value │
00:01:44 #3836 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:44 #3837 [Verbose] >
00:01:44 #3838 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:44 #3839 [Verbose] > inl default_value d =
00:01:44 #3840 [Verbose] > optionm.defaultWith d
00:01:45 #3841 [Verbose] >
00:01:45 #3842 [Verbose] > ╭─[ 294.11ms - stdout ]────────────────────────────────────────────────────────╮
00:01:45 #3843 [Verbose] > │ () │
00:01:45 #3844 [Verbose] > │ │
00:01:45 #3845 [Verbose] > │ │
00:01:45 #3846 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:45 #3847 [Verbose] >
00:01:45 #3848 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:45 #3849 [Verbose] > // // test
00:01:45 #3850 [Verbose] >
00:01:45 #3851 [Verbose] > None
00:01:45 #3852 [Verbose] > |> default_value 3i32
00:01:45 #3853 [Verbose] > |> _assert_eq 3i32
00:01:45 #3854 [Verbose] >
00:01:45 #3855 [Verbose] > ╭─[ 793.71ms - stdout ]────────────────────────────────────────────────────────╮
00:01:45 #3856 [Verbose] > │ let rec method0 () : unit = │
00:01:45 #3857 [Verbose] > │ let v0 : string = $"%A{3}" │
00:01:45 #3858 [Verbose] > │ System.Console.WriteLine v0 │
00:01:45 #3859 [Verbose] > │ let v1 : string = $"__expect / actual: %A{3} / expected: %A{3}" │
00:01:45 #3860 [Verbose] > │ () │
00:01:45 #3861 [Verbose] > │ method0() │
00:01:45 #3862 [Verbose] > │ │
00:01:45 #3863 [Verbose] > │ 3 │
00:01:45 #3864 [Verbose] > │ │
00:01:45 #3865 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:45 #3866 [Verbose] >
00:01:45 #3867 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:45 #3868 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:45 #3869 [Verbose] > │ ## (/??) │
00:01:45 #3870 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:45 #3871 [Verbose] >
00:01:45 #3872 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:45 #3873 [Verbose] > inl (/??) a b =
00:01:45 #3874 [Verbose] > a |> default_value b
00:01:46 #3875 [Verbose] >
00:01:46 #3876 [Verbose] > ╭─[ 293.14ms - stdout ]────────────────────────────────────────────────────────╮
00:01:46 #3877 [Verbose] > │ () │
00:01:46 #3878 [Verbose] > │ │
00:01:46 #3879 [Verbose] > │ │
00:01:46 #3880 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:46 #3881 [Verbose] >
00:01:46 #3882 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:46 #3883 [Verbose] > // // test
00:01:46 #3884 [Verbose] >
00:01:46 #3885 [Verbose] > None /?? 3i32
00:01:46 #3886 [Verbose] > |> _assert_eq 3i32
00:01:46 #3887 [Verbose] >
00:01:46 #3888 [Verbose] > ╭─[ 260.59ms - stdout ]────────────────────────────────────────────────────────╮
00:01:46 #3889 [Verbose] > │ let rec method0 () : unit = │
00:01:46 #3890 [Verbose] > │ let v0 : string = $"%A{3}" │
00:01:46 #3891 [Verbose] > │ System.Console.WriteLine v0 │
00:01:46 #3892 [Verbose] > │ let v1 : string = $"__expect / actual: %A{3} / expected: %A{3}" │
00:01:46 #3893 [Verbose] > │ () │
00:01:46 #3894 [Verbose] > │ method0() │
00:01:46 #3895 [Verbose] > │ │
00:01:46 #3896 [Verbose] > │ 3 │
00:01:46 #3897 [Verbose] > │ │
00:01:46 #3898 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:46 #3899 [Verbose] >
00:01:46 #3900 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:46 #3901 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:46 #3902 [Verbose] > │ ## default_with │
00:01:46 #3903 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:46 #3904 [Verbose] >
00:01:46 #3905 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:46 #3906 [Verbose] > inl default_with fn =
00:01:46 #3907 [Verbose] > function Some x => x | None => fn ()
00:01:46 #3908 [Verbose] >
00:01:46 #3909 [Verbose] > ╭─[ 239.81ms - stdout ]────────────────────────────────────────────────────────╮
00:01:46 #3910 [Verbose] > │ () │
00:01:46 #3911 [Verbose] > │ │
00:01:46 #3912 [Verbose] > │ │
00:01:46 #3913 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:46 #3914 [Verbose] >
00:01:46 #3915 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:46 #3916 [Verbose] > // // test
00:01:46 #3917 [Verbose] >
00:01:46 #3918 [Verbose] > None
00:01:46 #3919 [Verbose] > |> default_with (fun () => 3i32)
00:01:46 #3920 [Verbose] > |> _assert_eq 3i32
00:01:46 #3921 [Verbose] >
00:01:46 #3922 [Verbose] > ╭─[ 235.75ms - stdout ]────────────────────────────────────────────────────────╮
00:01:46 #3923 [Verbose] > │ let rec method0 () : unit = │
00:01:46 #3924 [Verbose] > │ let v0 : string = $"%A{3}" │
00:01:46 #3925 [Verbose] > │ System.Console.WriteLine v0 │
00:01:46 #3926 [Verbose] > │ let v1 : string = $"__expect / actual: %A{3} / expected: %A{3}" │
00:01:46 #3927 [Verbose] > │ () │
00:01:46 #3928 [Verbose] > │ method0() │
00:01:46 #3929 [Verbose] > │ │
00:01:46 #3930 [Verbose] > │ 3 │
00:01:46 #3931 [Verbose] > │ │
00:01:46 #3932 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:46 #3933 [Verbose] >
00:01:46 #3934 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:46 #3935 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:46 #3936 [Verbose] > │ ## choose │
00:01:46 #3937 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:46 #3938 [Verbose] >
00:01:46 #3939 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:46 #3940 [Verbose] > inl choose fn a b =
00:01:46 #3941 [Verbose] > match a, b with
00:01:46 #3942 [Verbose] > | Some x, Some y => fn x y |> Some
00:01:46 #3943 [Verbose] > | _ => None
00:01:47 #3944 [Verbose] >
00:01:47 #3945 [Verbose] > ╭─[ 237.91ms - stdout ]────────────────────────────────────────────────────────╮
00:01:47 #3946 [Verbose] > │ () │
00:01:47 #3947 [Verbose] > │ │
00:01:47 #3948 [Verbose] > │ │
00:01:47 #3949 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #3950 [Verbose] >
00:01:47 #3951 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:47 #3952 [Verbose] > // // test
00:01:47 #3953 [Verbose] >
00:01:47 #3954 [Verbose] > (Some 2i32, Some 3)
00:01:47 #3955 [Verbose] > ||> choose (+)
00:01:47 #3956 [Verbose] > |> _assert_eq (Some 5)
00:01:47 #3957 [Verbose] >
00:01:47 #3958 [Verbose] > ╭─[ 667.56ms - stdout ]────────────────────────────────────────────────────────╮
00:01:47 #3959 [Verbose] > │ type [<Struct>] US0 = │
00:01:47 #3960 [Verbose] > │ | US0_0 │
00:01:47 #3961 [Verbose] > │ | US0_1 of f1_0 : int32 │
00:01:47 #3962 [Verbose] > │ let rec method0 () : unit = │
00:01:47 #3963 [Verbose] > │ let v0 : US0 = US0_1(5) │
00:01:47 #3964 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:01:47 #3965 [Verbose] > │ System.Console.WriteLine v1 │
00:01:47 #3966 [Verbose] > │ let v5 : US0 = US0_1(5) │
00:01:47 #3967 [Verbose] > │ let v6 : US0 = US0_1(5) │
00:01:47 #3968 [Verbose] > │ let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}" │
00:01:47 #3969 [Verbose] > │ () │
00:01:47 #3970 [Verbose] > │ method0() │
00:01:47 #3971 [Verbose] > │ │
00:01:47 #3972 [Verbose] > │ US0_1 5 │
00:01:47 #3973 [Verbose] > │ │
00:01:47 #3974 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #3975 [Verbose] >
00:01:47 #3976 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:47 #3977 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:47 #3978 [Verbose] > │ ## iter │
00:01:47 #3979 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #3980 [Verbose] >
00:01:47 #3981 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:47 #3982 [Verbose] > inl iter fn = function
00:01:47 #3983 [Verbose] > | Some x => fn x
00:01:47 #3984 [Verbose] > | None => ()
00:01:48 #3985 [Verbose] >
00:01:48 #3986 [Verbose] > ╭─[ 278.16ms - stdout ]────────────────────────────────────────────────────────╮
00:01:48 #3987 [Verbose] > │ () │
00:01:48 #3988 [Verbose] > │ │
00:01:48 #3989 [Verbose] > │ │
00:01:48 #3990 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:48 #3991 [Verbose] >
00:01:48 #3992 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:48 #3993 [Verbose] > // // test
00:01:48 #3994 [Verbose] >
00:01:48 #3995 [Verbose] > inl n = mut 1i32
00:01:48 #3996 [Verbose] > inl fn =
00:01:48 #3997 [Verbose] > fun n' =>
00:01:48 #3998 [Verbose] > n <- *n + n'
00:01:48 #3999 [Verbose] > Some 1i32 |> iter fn
00:01:48 #4000 [Verbose] > None |> iter fn
00:01:48 #4001 [Verbose] > *n
00:01:48 #4002 [Verbose] > |> _assert_eq 2i32
00:01:48 #4003 [Verbose] >
00:01:48 #4004 [Verbose] > ╭─[ 554.06ms - stdout ]────────────────────────────────────────────────────────╮
00:01:48 #4005 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:01:48 #4006 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:01:48 #4007 [Verbose] > │ v0 │
00:01:48 #4008 [Verbose] > │ and method0 () : unit = │
00:01:48 #4009 [Verbose] > │ let v0 : Mut0 = {l0 = 1} : Mut0 │
00:01:48 #4010 [Verbose] > │ let v1 : int32 = v0.l0 │
00:01:48 #4011 [Verbose] > │ let v2 : int32 = v1 + 1 │
00:01:48 #4012 [Verbose] > │ v0.l0 <- v2 │
00:01:48 #4013 [Verbose] > │ let v3 : int32 = v0.l0 │
00:01:48 #4014 [Verbose] > │ let v4 : string = $"%A{v3}" │
00:01:48 #4015 [Verbose] > │ System.Console.WriteLine v4 │
00:01:48 #4016 [Verbose] > │ let v5 : bool = v3 = 2 │
00:01:48 #4017 [Verbose] > │ let v7 : bool = │
00:01:48 #4018 [Verbose] > │ if v5 then │
00:01:48 #4019 [Verbose] > │ true │
00:01:48 #4020 [Verbose] > │ else │
00:01:48 #4021 [Verbose] > │ method1(v5) │
00:01:48 #4022 [Verbose] > │ let v8 : string = $"__expect / actual: %A{v3} / expected: %A{2}" │
00:01:48 #4023 [Verbose] > │ let v9 : bool = v7 = false │
00:01:48 #4024 [Verbose] > │ if v9 then │
00:01:48 #4025 [Verbose] > │ failwith<unit> v8 │
00:01:48 #4026 [Verbose] > │ method0() │
00:01:48 #4027 [Verbose] > │ │
00:01:48 #4028 [Verbose] > │ 2 │
00:01:48 #4029 [Verbose] > │ │
00:01:48 #4030 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:48 #4031 [Verbose] >
00:01:48 #4032 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:48 #4033 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:48 #4034 [Verbose] > │ ## option' │
00:01:48 #4035 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:48 #4036 [Verbose] >
00:01:48 #4037 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:48 #4038 [Verbose] > nominal option' t = $"`t option"
00:01:48 #4039 [Verbose] >
00:01:48 #4040 [Verbose] > inl unbox forall t. (x : option' t) : option t =
00:01:48 #4041 [Verbose] > inl some x : option t = Some x
00:01:48 #4042 [Verbose] > inl none : option t = None
00:01:48 #4043 [Verbose] > $"!x |> Option.map !some |> Option.defaultValue !none"
00:01:48 #4044 [Verbose] >
00:01:48 #4045 [Verbose] > inl box forall t. (x : option t) : option' t =
00:01:48 #4046 [Verbose] > match x with
00:01:48 #4047 [Verbose] > | Some x => $"Some !x"
00:01:48 #4048 [Verbose] > | None => $"None"
00:01:49 #4049 [Verbose] >
00:01:49 #4050 [Verbose] > ╭─[ 295.44ms - stdout ]────────────────────────────────────────────────────────╮
00:01:49 #4051 [Verbose] > │ () │
00:01:49 #4052 [Verbose] > │ │
00:01:49 #4053 [Verbose] > │ │
00:01:49 #4054 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:49 #4055 [Verbose] >
00:01:49 #4056 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:49 #4057 [Verbose] > // // test
00:01:49 #4058 [Verbose] >
00:01:49 #4059 [Verbose] > inl x = Some 3i32
00:01:49 #4060 [Verbose] > inl y : option i32 = None
00:01:49 #4061 [Verbose] > inl x' = x |> box |> unbox
00:01:49 #4062 [Verbose] > inl y' = y |> box |> unbox
00:01:49 #4063 [Verbose] > (x', y') |> _assert_eq (x, y)
00:01:49 #4064 [Verbose] >
00:01:49 #4065 [Verbose] > ╭─[ 329.56ms - stdout ]────────────────────────────────────────────────────────╮
00:01:49 #4066 [Verbose] > │ type [<Struct>] US0 = │
00:01:49 #4067 [Verbose] > │ | US0_0 │
00:01:49 #4068 [Verbose] > │ | US0_1 of f1_0 : int32 │
00:01:49 #4069 [Verbose] > │ let rec closure0 () (v0 : int32) : US0 = │
00:01:49 #4070 [Verbose] > │ US0_1(v0) │
00:01:49 #4071 [Verbose] > │ and method1 (v0 : bool) : bool = │
00:01:49 #4072 [Verbose] > │ v0 │
00:01:49 #4073 [Verbose] > │ and method0 () : unit = │
00:01:49 #4074 [Verbose] > │ let v0 : int32 option = Some 3 │
00:01:49 #4075 [Verbose] > │ let v1 : (int32 -> US0) = closure0() │
00:01:49 #4076 [Verbose] > │ let v2 : US0 = US0_0 │
00:01:49 #4077 [Verbose] > │ let v3 : US0 = v0 |> Option.map v1 |> Option.defaultValue v2 │
00:01:49 #4078 [Verbose] > │ let v4 : int32 option = None │
00:01:49 #4079 [Verbose] > │ let v5 : US0 = US0_0 │
00:01:49 #4080 [Verbose] > │ let v6 : US0 = v4 |> Option.map v1 |> Option.defaultValue v5 │
00:01:49 #4081 [Verbose] > │ let v7 : string = $"%A{struct (v3, v6)}" │
00:01:49 #4082 [Verbose] > │ System.Console.WriteLine v7 │
00:01:49 #4083 [Verbose] > │ let v12 : bool = │
00:01:49 #4084 [Verbose] > │ match v3 with │
00:01:49 #4085 [Verbose] > │ | US0_1(v10) -> (* Some *) │
00:01:49 #4086 [Verbose] > │ let v11 : bool = v10 = 3 │
00:01:49 #4087 [Verbose] > │ v11 │
00:01:49 #4088 [Verbose] > │ | _ -> │
00:01:49 #4089 [Verbose] > │ false │
00:01:49 #4090 [Verbose] > │ let v14 : bool = │
00:01:49 #4091 [Verbose] > │ if v12 then │
00:01:49 #4092 [Verbose] > │ match v6 with │
00:01:49 #4093 [Verbose] > │ | US0_0 -> (* None *) │
00:01:49 #4094 [Verbose] > │ true │
00:01:49 #4095 [Verbose] > │ | _ -> │
00:01:49 #4096 [Verbose] > │ false │
00:01:49 #4097 [Verbose] > │ else │
00:01:49 #4098 [Verbose] > │ false │
00:01:49 #4099 [Verbose] > │ let v16 : bool = │
00:01:49 #4100 [Verbose] > │ if v14 then │
00:01:49 #4101 [Verbose] > │ true │
00:01:49 #4102 [Verbose] > │ else │
00:01:49 #4103 [Verbose] > │ method1(v14) │
00:01:49 #4104 [Verbose] > │ let v17 : US0 = US0_1(3) │
00:01:49 #4105 [Verbose] > │ let v18 : US0 = US0_0 │
00:01:49 #4106 [Verbose] > │ let v19 : string = $"__expect / actual: %A{struct (v3, v6)} / expected: │
00:01:49 #4107 [Verbose] > │ %A{struct (v17, v18)}" │
00:01:49 #4108 [Verbose] > │ let v20 : bool = v16 = false │
00:01:49 #4109 [Verbose] > │ if v20 then │
00:01:49 #4110 [Verbose] > │ failwith<unit> v19 │
00:01:49 #4111 [Verbose] > │ method0() │
00:01:49 #4112 [Verbose] > │ │
00:01:49 #4113 [Verbose] > │ struct (US0_1 3, US0_0) │
00:01:49 #4114 [Verbose] > │ │
00:01:49 #4115 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:49 #4116 [Verbose] >
00:01:49 #4117 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:49 #4118 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:49 #4119 [Verbose] > │ ## map │
00:01:49 #4120 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:49 #4121 [Verbose] >
00:01:49 #4122 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:49 #4123 [Verbose] > inl map forall t u. (fn : t -> u) (x : option' t) : option' u =
00:01:49 #4124 [Verbose] > inl x = join x
00:01:49 #4125 [Verbose] > inl fn = join fn
00:01:49 #4126 [Verbose] > !\($'"!x.map(|x| !fn(x))"')
00:01:49 #4127 [Verbose] >
00:01:49 #4128 [Verbose] > ╭─[ 269.22ms - stdout ]────────────────────────────────────────────────────────╮
00:01:49 #4129 [Verbose] > │ () │
00:01:49 #4130 [Verbose] > │ │
00:01:49 #4131 [Verbose] > │ │
00:01:49 #4132 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:49 #4133 [Verbose] >
00:01:49 #4134 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:49 #4135 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:49 #4136 [Verbose] > │ ## flatten │
00:01:49 #4137 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:49 #4138 [Verbose] >
00:01:49 #4139 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:49 #4140 [Verbose] > inl flatten x =
00:01:49 #4141 [Verbose] > match x with
00:01:49 #4142 [Verbose] > | Some (Some x) => Some x
00:01:49 #4143 [Verbose] > | _ => None
00:01:49 #4144 [Verbose] >
00:01:49 #4145 [Verbose] > ╭─[ 245.95ms - stdout ]────────────────────────────────────────────────────────╮
00:01:49 #4146 [Verbose] > │ () │
00:01:49 #4147 [Verbose] > │ │
00:01:49 #4148 [Verbose] > │ │
00:01:49 #4149 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:49 #4150 [Verbose] >
00:01:49 #4151 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:49 #4152 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:49 #4153 [Verbose] > │ ## unwrap │
00:01:49 #4154 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:49 #4155 [Verbose] >
00:01:49 #4156 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:49 #4157 [Verbose] > inl unwrap forall t. (x : option' t) : t =
00:01:49 #4158 [Verbose] > !\($'"!x.unwrap()"')
00:01:50 #4159 [Verbose] >
00:01:50 #4160 [Verbose] > ╭─[ 278.66ms - stdout ]────────────────────────────────────────────────────────╮
00:01:50 #4161 [Verbose] > │ () │
00:01:50 #4162 [Verbose] > │ │
00:01:50 #4163 [Verbose] > │ │
00:01:50 #4164 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:50 #4165 [Verbose] >
00:01:50 #4166 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:50 #4167 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:50 #4168 [Verbose] > │ ## unwrap_or │
00:01:50 #4169 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:50 #4170 [Verbose] >
00:01:50 #4171 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:50 #4172 [Verbose] > inl unwrap_or forall t. (def : t) (x : option' t) : t =
00:01:50 #4173 [Verbose] > !\($'"!x.unwrap_or(!def)"')
00:01:50 #4174 [Verbose] >
00:01:50 #4175 [Verbose] > ╭─[ 265.35ms - stdout ]────────────────────────────────────────────────────────╮
00:01:50 #4176 [Verbose] > │ () │
00:01:50 #4177 [Verbose] > │ │
00:01:50 #4178 [Verbose] > │ │
00:01:50 #4179 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:50 #4180 [Verbose] >
00:01:50 #4181 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:50 #4182 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:50 #4183 [Verbose] > │ ## rc_upgrade │
00:01:50 #4184 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:50 #4185 [Verbose] >
00:01:50 #4186 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:50 #4187 [Verbose] > inl rc_upgrade forall t. (x : rust.weak_rc t) : option (rust.rc t) =
00:01:50 #4188 [Verbose] > inl x = join x
00:01:50 #4189 [Verbose] > !\($'"std::rc::Weak::upgrade(&!x)"')
00:01:50 #4190 [Verbose] > |> unbox
00:01:50 #4191 [Verbose] >
00:01:50 #4192 [Verbose] > ╭─[ 266.58ms - stdout ]────────────────────────────────────────────────────────╮
00:01:50 #4193 [Verbose] > │ () │
00:01:50 #4194 [Verbose] > │ │
00:01:50 #4195 [Verbose] > │ │
00:01:50 #4196 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:52 #4197 [Verbose] > [NbConvertApp] Converting notebook optionm'.dib.ipynb to html
00:01:52 #4198 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:01:52 #4199 [Verbose] > validate(nb)
00:01:52 #4200 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:01:52 #4201 [Verbose] > return _pygments_highlight(
00:01:53 #4202 [Verbose] > [NbConvertApp] Writing 307155 bytes to optionm'.dib.html
00:01:53 #4203 [Debug] executeAsync / exitCode: 0 / output.Length: 23557
00:01:53 #4204 [Debug] main / executeCommand / exitCode: 0
00:01:53 #4205 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 \"am'.dib\" -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:01:56 #4206 [Verbose] >
00:01:56 #4207 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:56 #4208 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:56 #4209 [Verbose] > │ # am' │
00:01:56 #4210 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:56 #4211 [Verbose] >
00:01:56 #4212 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:56 #4213 [Verbose] > // // test
00:01:56 #4214 [Verbose] >
00:01:56 #4215 [Verbose] > open testing
00:01:56 #4216 [Verbose] >
00:01:56 #4217 [Verbose] > prototype append t : t -> t -> t
00:01:59 #4218 [Verbose] >
00:01:59 #4219 [Verbose] > ╭─[ 3.57s - stdout ]───────────────────────────────────────────────────────────╮
00:01:59 #4220 [Verbose] > │ () │
00:01:59 #4221 [Verbose] > │ │
00:01:59 #4222 [Verbose] > │ │
00:01:59 #4223 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:59 #4224 [Verbose] >
00:01:59 #4225 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:59 #4226 [Verbose] > open rust_operators
00:01:59 #4227 [Verbose] >
00:01:59 #4228 [Verbose] > ╭─[ 246.86ms - stdout ]────────────────────────────────────────────────────────╮
00:01:59 #4229 [Verbose] > │ () │
00:01:59 #4230 [Verbose] > │ │
00:01:59 #4231 [Verbose] > │ │
00:01:59 #4232 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:59 #4233 [Verbose] >
00:01:59 #4234 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:59 #4235 [Verbose] > inl types () =
00:01:59 #4236 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"[[$0]]\")>]] type Slice<'T> =
00:01:59 #4237 [Verbose] > class end"
00:01:59 #4238 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"[[$0; $1]]\")>]] type
00:01:59 #4239 [Verbose] > Slice'<'T, 'U> = class end"
00:01:59 #4240 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"Vec<$0>\")>]] type Vec<'T> =
00:01:59 #4241 [Verbose] > class end"
00:02:00 #4242 [Verbose] >
00:02:00 #4243 [Verbose] > ╭─[ 285.42ms - stdout ]────────────────────────────────────────────────────────╮
00:02:00 #4244 [Verbose] > │ () │
00:02:00 #4245 [Verbose] > │ │
00:02:00 #4246 [Verbose] > │ │
00:02:00 #4247 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:00 #4248 [Verbose] >
00:02:00 #4249 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:00 #4250 [Verbose] > nominal slice t = $"Slice<`t>"
00:02:00 #4251 [Verbose] > nominal slice' t u = $"Slice'<`t, `u>"
00:02:00 #4252 [Verbose] > nominal vec t = $"Vec<`t>"
00:02:00 #4253 [Verbose] >
00:02:00 #4254 [Verbose] > ╭─[ 271.69ms - stdout ]────────────────────────────────────────────────────────╮
00:02:00 #4255 [Verbose] > │ () │
00:02:00 #4256 [Verbose] > │ │
00:02:00 #4257 [Verbose] > │ │
00:02:00 #4258 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:00 #4259 [Verbose] >
00:02:00 #4260 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:00 #4261 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:00 #4262 [Verbose] > │ ## append │
00:02:00 #4263 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:00 #4264 [Verbose] >
00:02:00 #4265 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:00 #4266 [Verbose] > instance append a dim {int; number} t =
00:02:00 #4267 [Verbose] > am.append
00:02:00 #4268 [Verbose] >
00:02:00 #4269 [Verbose] > ╭─[ 230.26ms - stdout ]────────────────────────────────────────────────────────╮
00:02:00 #4270 [Verbose] > │ () │
00:02:00 #4271 [Verbose] > │ │
00:02:00 #4272 [Verbose] > │ │
00:02:00 #4273 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:00 #4274 [Verbose] >
00:02:00 #4275 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:00 #4276 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:00 #4277 [Verbose] > │ ## /@ │
00:02:00 #4278 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:00 #4279 [Verbose] >
00:02:00 #4280 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:00 #4281 [Verbose] > inl (/@) a b =
00:02:00 #4282 [Verbose] > b |> append a
00:02:01 #4283 [Verbose] >
00:02:01 #4284 [Verbose] > ╭─[ 257.78ms - stdout ]────────────────────────────────────────────────────────╮
00:02:01 #4285 [Verbose] > │ () │
00:02:01 #4286 [Verbose] > │ │
00:02:01 #4287 [Verbose] > │ │
00:02:01 #4288 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:01 #4289 [Verbose] >
00:02:01 #4290 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:01 #4291 [Verbose] > // // test
00:02:01 #4292 [Verbose] >
00:02:01 #4293 [Verbose] > a ;[[ "a"; "b" ]] /@ a ;[[ "c"; "d" ]]
00:02:01 #4294 [Verbose] > |> _assert_eq (a ;[[ "a"; "b"; "c"; "d" ]] : _ i32 _)
00:02:02 #4295 [Verbose] >
00:02:02 #4296 [Verbose] > ╭─[ 1.28s - stdout ]───────────────────────────────────────────────────────────╮
00:02:02 #4297 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:02:02 #4298 [Verbose] > │ let rec method1 (v0 : (string [])) : (string []) = │
00:02:02 #4299 [Verbose] > │ v0 │
00:02:02 #4300 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool = │
00:02:02 #4301 [Verbose] > │ let v2 : int32 = v1.l0 │
00:02:02 #4302 [Verbose] > │ let v3 : bool = v2 < v0 │
00:02:02 #4303 [Verbose] > │ v3 │
00:02:02 #4304 [Verbose] > │ and method3 (v0 : (string []), v1 : (string []), v2 : int32) : bool = │
00:02:02 #4305 [Verbose] > │ let v3 : int32 = v0.Length │
00:02:02 #4306 [Verbose] > │ let v4 : bool = v2 < v3 │
00:02:02 #4307 [Verbose] > │ if v4 then │
00:02:02 #4308 [Verbose] > │ let v5 : string = v0.[int v2] │
00:02:02 #4309 [Verbose] > │ let v6 : string = v1.[int v2] │
00:02:02 #4310 [Verbose] > │ let v7 : bool = v5 = v6 │
00:02:02 #4311 [Verbose] > │ if v7 then │
00:02:02 #4312 [Verbose] > │ let v8 : int32 = v2 + 1 │
00:02:02 #4313 [Verbose] > │ method3(v0, v1, v8) │
00:02:02 #4314 [Verbose] > │ else │
00:02:02 #4315 [Verbose] > │ false │
00:02:02 #4316 [Verbose] > │ else │
00:02:02 #4317 [Verbose] > │ true │
00:02:02 #4318 [Verbose] > │ and method4 (v0 : bool) : bool = │
00:02:02 #4319 [Verbose] > │ v0 │
00:02:02 #4320 [Verbose] > │ and method0 () : unit = │
00:02:02 #4321 [Verbose] > │ let v0 : string = "a" │
00:02:02 #4322 [Verbose] > │ let v1 : string = "b" │
00:02:02 #4323 [Verbose] > │ let v2 : (string []) = [|v0; v1|] │
00:02:02 #4324 [Verbose] > │ let v3 : (string []) = method1(v2) │
00:02:02 #4325 [Verbose] > │ let v4 : string = "c" │
00:02:02 #4326 [Verbose] > │ let v5 : string = "d" │
00:02:02 #4327 [Verbose] > │ let v6 : (string []) = [|v4; v5|] │
00:02:02 #4328 [Verbose] > │ let v7 : (string []) = method1(v6) │
00:02:02 #4329 [Verbose] > │ let v8 : int32 = v3.Length │
00:02:02 #4330 [Verbose] > │ let v9 : int32 = v7.Length │
00:02:02 #4331 [Verbose] > │ let v10 : int32 = v8 + v9 │
00:02:02 #4332 [Verbose] > │ let v11 : (string []) = Array.zeroCreate<string> (v10) │
00:02:02 #4333 [Verbose] > │ let v12 : Mut0 = {l0 = 0} : Mut0 │
00:02:02 #4334 [Verbose] > │ while method2(v10, v12) do │
00:02:02 #4335 [Verbose] > │ let v14 : int32 = v12.l0 │
00:02:02 #4336 [Verbose] > │ let v15 : bool = v14 < v8 │
00:02:02 #4337 [Verbose] > │ let v19 : string = │
00:02:02 #4338 [Verbose] > │ if v15 then │
00:02:02 #4339 [Verbose] > │ let v16 : string = v3.[int v14] │
00:02:02 #4340 [Verbose] > │ v16 │
00:02:02 #4341 [Verbose] > │ else │
00:02:02 #4342 [Verbose] > │ let v17 : int32 = v14 - v8 │
00:02:02 #4343 [Verbose] > │ let v18 : string = v7.[int v17] │
00:02:02 #4344 [Verbose] > │ v18 │
00:02:02 #4345 [Verbose] > │ v11.[int v14] <- v19 │
00:02:02 #4346 [Verbose] > │ let v20 : int32 = v14 + 1 │
00:02:02 #4347 [Verbose] > │ v12.l0 <- v20 │
00:02:02 #4348 [Verbose] > │ () │
00:02:02 #4349 [Verbose] > │ let v21 : (string []) = [|v0; v1; v4; v5|] │
00:02:02 #4350 [Verbose] > │ let v22 : (string []) = method1(v21) │
00:02:02 #4351 [Verbose] > │ let v23 : string = $"%A{v11}" │
00:02:02 #4352 [Verbose] > │ System.Console.WriteLine v23 │
00:02:02 #4353 [Verbose] > │ let v24 : int32 = v11.Length │
00:02:02 #4354 [Verbose] > │ let v25 : int32 = v22.Length │
00:02:02 #4355 [Verbose] > │ let v26 : bool = v24 = v25 │
00:02:02 #4356 [Verbose] > │ let v27 : bool = v26 <> true │
00:02:02 #4357 [Verbose] > │ let v30 : bool = │
00:02:02 #4358 [Verbose] > │ if v27 then │
00:02:02 #4359 [Verbose] > │ false │
00:02:02 #4360 [Verbose] > │ else │
00:02:02 #4361 [Verbose] > │ let v28 : int32 = 0 │
00:02:02 #4362 [Verbose] > │ method3(v11, v22, v28) │
00:02:02 #4363 [Verbose] > │ let v32 : bool = │
00:02:02 #4364 [Verbose] > │ if v30 then │
00:02:02 #4365 [Verbose] > │ true │
00:02:02 #4366 [Verbose] > │ else │
00:02:02 #4367 [Verbose] > │ method4(v30) │
00:02:02 #4368 [Verbose] > │ let v33 : string = $"__expect / actual: %A{v11} / expected: %A{v22}" │
00:02:02 #4369 [Verbose] > │ let v34 : bool = v32 = false │
00:02:02 #4370 [Verbose] > │ if v34 then │
00:02:02 #4371 [Verbose] > │ failwith<unit> v33 │
00:02:02 #4372 [Verbose] > │ method0() │
00:02:02 #4373 [Verbose] > │ │
00:02:02 #4374 [Verbose] > │ [|"a"; "b"; "c"; "d"|] │
00:02:02 #4375 [Verbose] > │ │
00:02:02 #4376 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:02 #4377 [Verbose] >
00:02:02 #4378 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:02 #4379 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:02 #4380 [Verbose] > │ ## collect │
00:02:02 #4381 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:02 #4382 [Verbose] >
00:02:02 #4383 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:02 #4384 [Verbose] > inl collect forall t r. (fn : t -> a i32 r) (items : a i32 t) : a i32 r =
00:02:02 #4385 [Verbose] > items
00:02:02 #4386 [Verbose] > |> am.map fn
00:02:02 #4387 [Verbose] > |> am.fold (/@) (a ;[[]])
00:02:02 #4388 [Verbose] >
00:02:02 #4389 [Verbose] > ╭─[ 393.71ms - stdout ]────────────────────────────────────────────────────────╮
00:02:02 #4390 [Verbose] > │ () │
00:02:02 #4391 [Verbose] > │ │
00:02:02 #4392 [Verbose] > │ │
00:02:02 #4393 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:02 #4394 [Verbose] >
00:02:02 #4395 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:02 #4396 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:02 #4397 [Verbose] > │ ## choose │
00:02:02 #4398 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:02 #4399 [Verbose] >
00:02:02 #4400 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:02 #4401 [Verbose] > inl choose f l =
00:02:02 #4402 [Verbose] > (l, [[]])
00:02:02 #4403 [Verbose] > ||> am.foldBack fun x acc =>
00:02:02 #4404 [Verbose] > match f x with
00:02:02 #4405 [Verbose] > | Some y => y :: acc
00:02:02 #4406 [Verbose] > | None => acc
00:02:02 #4407 [Verbose] > |> listm.toArray
00:02:02 #4408 [Verbose] >
00:02:02 #4409 [Verbose] > ╭─[ 251.29ms - stdout ]────────────────────────────────────────────────────────╮
00:02:02 #4410 [Verbose] > │ () │
00:02:02 #4411 [Verbose] > │ │
00:02:02 #4412 [Verbose] > │ │
00:02:02 #4413 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:02 #4414 [Verbose] >
00:02:02 #4415 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:02 #4416 [Verbose] > // // test
00:02:02 #4417 [Verbose] >
00:02:02 #4418 [Verbose] > (am.init 10i32 id : a _ _)
00:02:02 #4419 [Verbose] > |> choose (fun x => if x % 2 = 0 then Some x else None)
00:02:02 #4420 [Verbose] > |> _assert_eq (a ;[[ 0; 2; 4; 6; 8 ]] : _ i32 _)
00:02:03 #4421 [Verbose] >
00:02:03 #4422 [Verbose] > ╭─[ 556.42ms - stdout ]────────────────────────────────────────────────────────╮
00:02:03 #4423 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:02:03 #4424 [Verbose] > │ and UH0 = │
00:02:03 #4425 [Verbose] > │ | UH0_0 of int32 * UH0 │
00:02:03 #4426 [Verbose] > │ | UH0_1 │
00:02:03 #4427 [Verbose] > │ and Mut1 = {mutable l0 : int32; mutable l1 : UH0} │
00:02:03 #4428 [Verbose] > │ and [<Struct>] US0 = │
00:02:03 #4429 [Verbose] > │ | US0_0 │
00:02:03 #4430 [Verbose] > │ | US0_1 of f1_0 : int32 │
00:02:03 #4431 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:02:03 #4432 [Verbose] > │ let v1 : int32 = v0.l0 │
00:02:03 #4433 [Verbose] > │ let v2 : bool = v1 < 10 │
00:02:03 #4434 [Verbose] > │ v2 │
00:02:03 #4435 [Verbose] > │ and method2 (v0 : int32, v1 : Mut1) : bool = │
00:02:03 #4436 [Verbose] > │ let v2 : int32 = v1.l0 │
00:02:03 #4437 [Verbose] > │ let v3 : bool = v2 < v0 │
00:02:03 #4438 [Verbose] > │ v3 │
00:02:03 #4439 [Verbose] > │ and method4 (v0 : UH0, v1 : int32) : int32 = │
00:02:03 #4440 [Verbose] > │ match v0 with │
00:02:03 #4441 [Verbose] > │ | UH0_0(v2, v3) -> (* Cons *) │
00:02:03 #4442 [Verbose] > │ let v4 : int32 = v1 + 1 │
00:02:03 #4443 [Verbose] > │ method4(v3, v4) │
00:02:03 #4444 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:02:03 #4445 [Verbose] > │ v1 │
00:02:03 #4446 [Verbose] > │ and method5 (v0 : (int32 []), v1 : UH0, v2 : int32) : int32 = │
00:02:03 #4447 [Verbose] > │ match v1 with │
00:02:03 #4448 [Verbose] > │ | UH0_0(v3, v4) -> (* Cons *) │
00:02:03 #4449 [Verbose] > │ v0.[int v2] <- v3 │
00:02:03 #4450 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:02:03 #4451 [Verbose] > │ method5(v0, v4, v5) │
00:02:03 #4452 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:02:03 #4453 [Verbose] > │ v2 │
00:02:03 #4454 [Verbose] > │ and method3 (v0 : UH0) : (int32 []) = │
00:02:03 #4455 [Verbose] > │ let v1 : int32 = 0 │
00:02:03 #4456 [Verbose] > │ let v2 : int32 = method4(v0, v1) │
00:02:03 #4457 [Verbose] > │ let v3 : (int32 []) = Array.zeroCreate<int32> (v2) │
00:02:03 #4458 [Verbose] > │ let v4 : int32 = 0 │
00:02:03 #4459 [Verbose] > │ let v5 : int32 = method5(v3, v0, v4) │
00:02:03 #4460 [Verbose] > │ v3 │
00:02:03 #4461 [Verbose] > │ and method6 (v0 : (int32 [])) : (int32 []) = │
00:02:03 #4462 [Verbose] > │ v0 │
00:02:03 #4463 [Verbose] > │ and method7 (v0 : (int32 []), v1 : (int32 []), v2 : int32) : bool = │
00:02:03 #4464 [Verbose] > │ let v3 : int32 = v0.Length │
00:02:03 #4465 [Verbose] > │ let v4 : bool = v2 < v3 │
00:02:03 #4466 [Verbose] > │ if v4 then │
00:02:03 #4467 [Verbose] > │ let v5 : int32 = v0.[int v2] │
00:02:03 #4468 [Verbose] > │ let v6 : int32 = v1.[int v2] │
00:02:03 #4469 [Verbose] > │ let v7 : bool = v5 = v6 │
00:02:03 #4470 [Verbose] > │ if v7 then │
00:02:03 #4471 [Verbose] > │ let v8 : int32 = v2 + 1 │
00:02:03 #4472 [Verbose] > │ method7(v0, v1, v8) │
00:02:03 #4473 [Verbose] > │ else │
00:02:03 #4474 [Verbose] > │ false │
00:02:03 #4475 [Verbose] > │ else │
00:02:03 #4476 [Verbose] > │ true │
00:02:03 #4477 [Verbose] > │ and method8 (v0 : bool) : bool = │
00:02:03 #4478 [Verbose] > │ v0 │
00:02:03 #4479 [Verbose] > │ and method0 () : unit = │
00:02:03 #4480 [Verbose] > │ let v0 : (int32 []) = Array.zeroCreate<int32> (10) │
00:02:03 #4481 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:02:03 #4482 [Verbose] > │ while method1(v1) do │
00:02:03 #4483 [Verbose] > │ let v3 : int32 = v1.l0 │
00:02:03 #4484 [Verbose] > │ v0.[int v3] <- v3 │
00:02:03 #4485 [Verbose] > │ let v4 : int32 = v3 + 1 │
00:02:03 #4486 [Verbose] > │ v1.l0 <- v4 │
00:02:03 #4487 [Verbose] > │ () │
00:02:03 #4488 [Verbose] > │ let v5 : int32 = v0.Length │
00:02:03 #4489 [Verbose] > │ let v6 : UH0 = UH0_1 │
00:02:03 #4490 [Verbose] > │ let v7 : Mut1 = {l0 = 0; l1 = v6} : Mut1 │
00:02:03 #4491 [Verbose] > │ while method2(v5, v7) do │
00:02:03 #4492 [Verbose] > │ let v9 : int32 = v7.l0 │
00:02:03 #4493 [Verbose] > │ let v10 : int32 = -v9 │
00:02:03 #4494 [Verbose] > │ let v11 : int32 = v10 + v5 │
00:02:03 #4495 [Verbose] > │ let v12 : int32 = v11 - 1 │
00:02:03 #4496 [Verbose] > │ let v13 : UH0 = v7.l1 │
00:02:03 #4497 [Verbose] > │ let v14 : int32 = v0.[int v12] │
00:02:03 #4498 [Verbose] > │ let v15 : int32 = v14 % 2 │
00:02:03 #4499 [Verbose] > │ let v16 : bool = v15 = 0 │
00:02:03 #4500 [Verbose] > │ let v19 : US0 = │
00:02:03 #4501 [Verbose] > │ if v16 then │
00:02:03 #4502 [Verbose] > │ US0_1(v14) │
00:02:03 #4503 [Verbose] > │ else │
00:02:03 #4504 [Verbose] > │ US0_0 │
00:02:03 #4505 [Verbose] > │ let v23 : UH0 = │
00:02:03 #4506 [Verbose] > │ match v19 with │
00:02:03 #4507 [Verbose] > │ | US0_0 -> (* None *) │
00:02:03 #4508 [Verbose] > │ v13 │
00:02:03 #4509 [Verbose] > │ | US0_1(v20) -> (* Some *) │
00:02:03 #4510 [Verbose] > │ UH0_0(v20, v13) │
00:02:03 #4511 [Verbose] > │ let v24 : int32 = v9 + 1 │
00:02:03 #4512 [Verbose] > │ v7.l0 <- v24 │
00:02:03 #4513 [Verbose] > │ v7.l1 <- v23 │
00:02:03 #4514 [Verbose] > │ () │
00:02:03 #4515 [Verbose] > │ let v25 : UH0 = v7.l1 │
00:02:03 #4516 [Verbose] > │ let v26 : (int32 []) = method3(v25) │
00:02:03 #4517 [Verbose] > │ let v27 : (int32 []) = [|0; 2; 4; 6; 8|] │
00:02:03 #4518 [Verbose] > │ let v28 : (int32 []) = method6(v27) │
00:02:03 #4519 [Verbose] > │ let v29 : string = $"%A{v26}" │
00:02:03 #4520 [Verbose] > │ System.Console.WriteLine v29 │
00:02:03 #4521 [Verbose] > │ let v30 : int32 = v26.Length │
00:02:03 #4522 [Verbose] > │ let v31 : int32 = v28.Length │
00:02:03 #4523 [Verbose] > │ let v32 : bool = v30 = v31 │
00:02:03 #4524 [Verbose] > │ let v33 : bool = v32 <> true │
00:02:03 #4525 [Verbose] > │ let v36 : bool = │
00:02:03 #4526 [Verbose] > │ if v33 then │
00:02:03 #4527 [Verbose] > │ false │
00:02:03 #4528 [Verbose] > │ else │
00:02:03 #4529 [Verbose] > │ let v34 : int32 = 0 │
00:02:03 #4530 [Verbose] > │ method7(v26, v28, v34) │
00:02:03 #4531 [Verbose] > │ let v38 : bool = │
00:02:03 #4532 [Verbose] > │ if v36 then │
00:02:03 #4533 [Verbose] > │ true │
00:02:03 #4534 [Verbose] > │ else │
00:02:03 #4535 [Verbose] > │ method8(v36) │
00:02:03 #4536 [Verbose] > │ let v39 : string = $"__expect / actual: %A{v26} / expected: %A{v28}" │
00:02:03 #4537 [Verbose] > │ let v40 : bool = v38 = false │
00:02:03 #4538 [Verbose] > │ if v40 then │
00:02:03 #4539 [Verbose] > │ failwith<unit> v39 │
00:02:03 #4540 [Verbose] > │ method0() │
00:02:03 #4541 [Verbose] > │ │
00:02:03 #4542 [Verbose] > │ [|0; 2; 4; 6; 8|] │
00:02:03 #4543 [Verbose] > │ │
00:02:03 #4544 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:03 #4545 [Verbose] >
00:02:03 #4546 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:03 #4547 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:03 #4548 [Verbose] > │ ## sum │
00:02:03 #4549 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:03 #4550 [Verbose] >
00:02:03 #4551 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:03 #4552 [Verbose] > inl sum (a' : a _ _) =
00:02:03 #4553 [Verbose] > a' |> am.fold (+) 0
00:02:03 #4554 [Verbose] >
00:02:03 #4555 [Verbose] > ╭─[ 210.69ms - stdout ]────────────────────────────────────────────────────────╮
00:02:03 #4556 [Verbose] > │ () │
00:02:03 #4557 [Verbose] > │ │
00:02:03 #4558 [Verbose] > │ │
00:02:03 #4559 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:03 #4560 [Verbose] >
00:02:03 #4561 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:03 #4562 [Verbose] > // // test
00:02:03 #4563 [Verbose] >
00:02:03 #4564 [Verbose] > am.init 10i32 id
00:02:03 #4565 [Verbose] > |> sum
00:02:03 #4566 [Verbose] > |> _assert_eq 45
00:02:04 #4567 [Verbose] >
00:02:04 #4568 [Verbose] > ╭─[ 303.37ms - stdout ]────────────────────────────────────────────────────────╮
00:02:04 #4569 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:02:04 #4570 [Verbose] > │ and Mut1 = {mutable l0 : int32; mutable l1 : int32} │
00:02:04 #4571 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:02:04 #4572 [Verbose] > │ let v1 : int32 = v0.l0 │
00:02:04 #4573 [Verbose] > │ let v2 : bool = v1 < 10 │
00:02:04 #4574 [Verbose] > │ v2 │
00:02:04 #4575 [Verbose] > │ and method2 (v0 : int32, v1 : Mut1) : bool = │
00:02:04 #4576 [Verbose] > │ let v2 : int32 = v1.l0 │
00:02:04 #4577 [Verbose] > │ let v3 : bool = v2 < v0 │
00:02:04 #4578 [Verbose] > │ v3 │
00:02:04 #4579 [Verbose] > │ and method3 (v0 : bool) : bool = │
00:02:04 #4580 [Verbose] > │ v0 │
00:02:04 #4581 [Verbose] > │ and method0 () : unit = │
00:02:04 #4582 [Verbose] > │ let v0 : (int32 []) = Array.zeroCreate<int32> (10) │
00:02:04 #4583 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:02:04 #4584 [Verbose] > │ while method1(v1) do │
00:02:04 #4585 [Verbose] > │ let v3 : int32 = v1.l0 │
00:02:04 #4586 [Verbose] > │ v0.[int v3] <- v3 │
00:02:04 #4587 [Verbose] > │ let v4 : int32 = v3 + 1 │
00:02:04 #4588 [Verbose] > │ v1.l0 <- v4 │
00:02:04 #4589 [Verbose] > │ () │
00:02:04 #4590 [Verbose] > │ let v5 : int32 = v0.Length │
00:02:04 #4591 [Verbose] > │ let v6 : Mut1 = {l0 = 0; l1 = 0} : Mut1 │
00:02:04 #4592 [Verbose] > │ while method2(v5, v6) do │
00:02:04 #4593 [Verbose] > │ let v8 : int32 = v6.l0 │
00:02:04 #4594 [Verbose] > │ let v9 : int32 = v6.l1 │
00:02:04 #4595 [Verbose] > │ let v10 : int32 = v0.[int v8] │
00:02:04 #4596 [Verbose] > │ let v11 : int32 = v9 + v10 │
00:02:04 #4597 [Verbose] > │ let v12 : int32 = v8 + 1 │
00:02:04 #4598 [Verbose] > │ v6.l0 <- v12 │
00:02:04 #4599 [Verbose] > │ v6.l1 <- v11 │
00:02:04 #4600 [Verbose] > │ () │
00:02:04 #4601 [Verbose] > │ let v13 : int32 = v6.l1 │
00:02:04 #4602 [Verbose] > │ let v14 : string = $"%A{v13}" │
00:02:04 #4603 [Verbose] > │ System.Console.WriteLine v14 │
00:02:04 #4604 [Verbose] > │ let v15 : bool = v13 = 45 │
00:02:04 #4605 [Verbose] > │ let v17 : bool = │
00:02:04 #4606 [Verbose] > │ if v15 then │
00:02:04 #4607 [Verbose] > │ true │
00:02:04 #4608 [Verbose] > │ else │
00:02:04 #4609 [Verbose] > │ method3(v15) │
00:02:04 #4610 [Verbose] > │ let v18 : string = $"__expect / actual: %A{v13} / expected: %A{45}" │
00:02:04 #4611 [Verbose] > │ let v19 : bool = v17 = false │
00:02:04 #4612 [Verbose] > │ if v19 then │
00:02:04 #4613 [Verbose] > │ failwith<unit> v18 │
00:02:04 #4614 [Verbose] > │ method0() │
00:02:04 #4615 [Verbose] > │ │
00:02:04 #4616 [Verbose] > │ 45 │
00:02:04 #4617 [Verbose] > │ │
00:02:04 #4618 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:04 #4619 [Verbose] >
00:02:04 #4620 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:04 #4621 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:04 #4622 [Verbose] > │ ## init_series │
00:02:04 #4623 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:04 #4624 [Verbose] >
00:02:04 #4625 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:04 #4626 [Verbose] > inl init_series start end inc =
00:02:04 #4627 [Verbose] > inl total = conv ((end - start) / inc) + 1
00:02:04 #4628 [Verbose] > am.init total (conv >> (*) inc >> (+) start) : a i32 _
00:02:04 #4629 [Verbose] >
00:02:04 #4630 [Verbose] > ╭─[ 238.26ms - stdout ]────────────────────────────────────────────────────────╮
00:02:04 #4631 [Verbose] > │ () │
00:02:04 #4632 [Verbose] > │ │
00:02:04 #4633 [Verbose] > │ │
00:02:04 #4634 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:04 #4635 [Verbose] >
00:02:04 #4636 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:04 #4637 [Verbose] > // // test
00:02:04 #4638 [Verbose] >
00:02:04 #4639 [Verbose] > init_series 0 1 0.5
00:02:04 #4640 [Verbose] > |> _assert_eq (a ;[[0f64; 0.5; 1]])
00:02:04 #4641 [Verbose] >
00:02:04 #4642 [Verbose] > ╭─[ 285.33ms - stdout ]────────────────────────────────────────────────────────╮
00:02:04 #4643 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:02:04 #4644 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:02:04 #4645 [Verbose] > │ let v1 : int32 = v0.l0 │
00:02:04 #4646 [Verbose] > │ let v2 : bool = v1 < 3 │
00:02:04 #4647 [Verbose] > │ v2 │
00:02:04 #4648 [Verbose] > │ and method2 (v0 : (float [])) : (float []) = │
00:02:04 #4649 [Verbose] > │ v0 │
00:02:04 #4650 [Verbose] > │ and method3 (v0 : (float []), v1 : (float []), v2 : int32) : bool = │
00:02:04 #4651 [Verbose] > │ let v3 : int32 = v0.Length │
00:02:04 #4652 [Verbose] > │ let v4 : bool = v2 < v3 │
00:02:04 #4653 [Verbose] > │ if v4 then │
00:02:04 #4654 [Verbose] > │ let v5 : float = v0.[int v2] │
00:02:04 #4655 [Verbose] > │ let v6 : float = v1.[int v2] │
00:02:04 #4656 [Verbose] > │ let v7 : bool = v5 = v6 │
00:02:04 #4657 [Verbose] > │ if v7 then │
00:02:04 #4658 [Verbose] > │ let v8 : int32 = v2 + 1 │
00:02:04 #4659 [Verbose] > │ method3(v0, v1, v8) │
00:02:04 #4660 [Verbose] > │ else │
00:02:04 #4661 [Verbose] > │ false │
00:02:04 #4662 [Verbose] > │ else │
00:02:04 #4663 [Verbose] > │ true │
00:02:04 #4664 [Verbose] > │ and method4 (v0 : bool) : bool = │
00:02:04 #4665 [Verbose] > │ v0 │
00:02:04 #4666 [Verbose] > │ and method0 () : unit = │
00:02:04 #4667 [Verbose] > │ let v0 : (float []) = Array.zeroCreate<float> (3) │
00:02:04 #4668 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:02:04 #4669 [Verbose] > │ while method1(v1) do │
00:02:04 #4670 [Verbose] > │ let v3 : int32 = v1.l0 │
00:02:04 #4671 [Verbose] > │ let v4 : float = float v3 │
00:02:04 #4672 [Verbose] > │ let v5 : float = 0.5 * v4 │
00:02:04 #4673 [Verbose] > │ v0.[int v3] <- v5 │
00:02:04 #4674 [Verbose] > │ let v6 : int32 = v3 + 1 │
00:02:04 #4675 [Verbose] > │ v1.l0 <- v6 │
00:02:04 #4676 [Verbose] > │ () │
00:02:04 #4677 [Verbose] > │ let v7 : (float []) = [|0.0; 0.5; 1.0|] │
00:02:04 #4678 [Verbose] > │ let v8 : (float []) = method2(v7) │
00:02:04 #4679 [Verbose] > │ let v9 : string = $"%A{v0}" │
00:02:04 #4680 [Verbose] > │ System.Console.WriteLine v9 │
00:02:04 #4681 [Verbose] > │ let v10 : int32 = v0.Length │
00:02:04 #4682 [Verbose] > │ let v11 : int32 = v8.Length │
00:02:04 #4683 [Verbose] > │ let v12 : bool = v10 = v11 │
00:02:04 #4684 [Verbose] > │ let v13 : bool = v12 <> true │
00:02:04 #4685 [Verbose] > │ let v16 : bool = │
00:02:04 #4686 [Verbose] > │ if v13 then │
00:02:04 #4687 [Verbose] > │ false │
00:02:04 #4688 [Verbose] > │ else │
00:02:04 #4689 [Verbose] > │ let v14 : int32 = 0 │
00:02:04 #4690 [Verbose] > │ method3(v0, v8, v14) │
00:02:04 #4691 [Verbose] > │ let v18 : bool = │
00:02:04 #4692 [Verbose] > │ if v16 then │
00:02:04 #4693 [Verbose] > │ true │
00:02:04 #4694 [Verbose] > │ else │
00:02:04 #4695 [Verbose] > │ method4(v16) │
00:02:04 #4696 [Verbose] > │ let v19 : string = $"__expect / actual: %A{v0} / expected: %A{v8}" │
00:02:04 #4697 [Verbose] > │ let v20 : bool = v18 = false │
00:02:04 #4698 [Verbose] > │ if v20 then │
00:02:04 #4699 [Verbose] > │ failwith<unit> v19 │
00:02:04 #4700 [Verbose] > │ method0() │
00:02:04 #4701 [Verbose] > │ │
00:02:04 #4702 [Verbose] > │ [|0.0; 0.5; 1.0|] │
00:02:04 #4703 [Verbose] > │ │
00:02:04 #4704 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:04 #4705 [Verbose] >
00:02:04 #4706 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:04 #4707 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:04 #4708 [Verbose] > │ ## head │
00:02:04 #4709 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:04 #4710 [Verbose] >
00:02:04 #4711 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:04 #4712 [Verbose] > inl head (ar : a _ _) =
00:02:04 #4713 [Verbose] > if var_is ar || length ar > 0
00:02:04 #4714 [Verbose] > then index ar 0
00:02:04 #4715 [Verbose] > else error_type "The length of the array should be greater than 0."
00:02:04 #4716 [Verbose] >
00:02:04 #4717 [Verbose] > ╭─[ 302.09ms - stdout ]────────────────────────────────────────────────────────╮
00:02:04 #4718 [Verbose] > │ () │
00:02:04 #4719 [Verbose] > │ │
00:02:04 #4720 [Verbose] > │ │
00:02:04 #4721 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:04 #4722 [Verbose] >
00:02:04 #4723 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:04 #4724 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:04 #4725 [Verbose] > │ ## last │
00:02:04 #4726 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:04 #4727 [Verbose] >
00:02:04 #4728 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:04 #4729 [Verbose] > inl last (ar : a _ _) =
00:02:04 #4730 [Verbose] > inl len = length ar
00:02:04 #4731 [Verbose] > if var_is ar || len > 0
00:02:04 #4732 [Verbose] > then index ar (len - 1)
00:02:04 #4733 [Verbose] > else error_type "The length of the array should be greater than 0."
00:02:05 #4734 [Verbose] >
00:02:05 #4735 [Verbose] > ╭─[ 227.37ms - stdout ]────────────────────────────────────────────────────────╮
00:02:05 #4736 [Verbose] > │ () │
00:02:05 #4737 [Verbose] > │ │
00:02:05 #4738 [Verbose] > │ │
00:02:05 #4739 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:05 #4740 [Verbose] >
00:02:05 #4741 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:05 #4742 [Verbose] > // // test
00:02:05 #4743 [Verbose] >
00:02:05 #4744 [Verbose] > am.init 10i32 id
00:02:05 #4745 [Verbose] > |> last
00:02:05 #4746 [Verbose] > |> _assert_eq 9
00:02:05 #4747 [Verbose] >
00:02:05 #4748 [Verbose] > ╭─[ 294.01ms - stdout ]────────────────────────────────────────────────────────╮
00:02:05 #4749 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:02:05 #4750 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:02:05 #4751 [Verbose] > │ let v1 : int32 = v0.l0 │
00:02:05 #4752 [Verbose] > │ let v2 : bool = v1 < 10 │
00:02:05 #4753 [Verbose] > │ v2 │
00:02:05 #4754 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:02:05 #4755 [Verbose] > │ v0 │
00:02:05 #4756 [Verbose] > │ and method0 () : unit = │
00:02:05 #4757 [Verbose] > │ let v0 : (int32 []) = Array.zeroCreate<int32> (10) │
00:02:05 #4758 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:02:05 #4759 [Verbose] > │ while method1(v1) do │
00:02:05 #4760 [Verbose] > │ let v3 : int32 = v1.l0 │
00:02:05 #4761 [Verbose] > │ v0.[int v3] <- v3 │
00:02:05 #4762 [Verbose] > │ let v4 : int32 = v3 + 1 │
00:02:05 #4763 [Verbose] > │ v1.l0 <- v4 │
00:02:05 #4764 [Verbose] > │ () │
00:02:05 #4765 [Verbose] > │ let v5 : int32 = v0.Length │
00:02:05 #4766 [Verbose] > │ let v6 : int32 = v5 - 1 │
00:02:05 #4767 [Verbose] > │ let v7 : int32 = v0.[int v6] │
00:02:05 #4768 [Verbose] > │ let v8 : string = $"%A{v7}" │
00:02:05 #4769 [Verbose] > │ System.Console.WriteLine v8 │
00:02:05 #4770 [Verbose] > │ let v9 : bool = v7 = 9 │
00:02:05 #4771 [Verbose] > │ let v11 : bool = │
00:02:05 #4772 [Verbose] > │ if v9 then │
00:02:05 #4773 [Verbose] > │ true │
00:02:05 #4774 [Verbose] > │ else │
00:02:05 #4775 [Verbose] > │ method2(v9) │
00:02:05 #4776 [Verbose] > │ let v12 : string = $"__expect / actual: %A{v7} / expected: %A{9}" │
00:02:05 #4777 [Verbose] > │ let v13 : bool = v11 = false │
00:02:05 #4778 [Verbose] > │ if v13 then │
00:02:05 #4779 [Verbose] > │ failwith<unit> v12 │
00:02:05 #4780 [Verbose] > │ method0() │
00:02:05 #4781 [Verbose] > │ │
00:02:05 #4782 [Verbose] > │ 9 │
00:02:05 #4783 [Verbose] > │ │
00:02:05 #4784 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:05 #4785 [Verbose] >
00:02:05 #4786 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:05 #4787 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:05 #4788 [Verbose] > │ ## try_pick │
00:02:05 #4789 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:05 #4790 [Verbose] >
00:02:05 #4791 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:05 #4792 [Verbose] > inl try_pick forall t u. (fn : t -> option u) (array : a _ t) : option u =
00:02:05 #4793 [Verbose] > (array, None)
00:02:05 #4794 [Verbose] > ||> am.foldBack fun x acc =>
00:02:05 #4795 [Verbose] > match acc with
00:02:05 #4796 [Verbose] > | Some _ => acc
00:02:05 #4797 [Verbose] > | None => x |> fn
00:02:05 #4798 [Verbose] >
00:02:05 #4799 [Verbose] > ╭─[ 275.16ms - stdout ]────────────────────────────────────────────────────────╮
00:02:05 #4800 [Verbose] > │ () │
00:02:05 #4801 [Verbose] > │ │
00:02:05 #4802 [Verbose] > │ │
00:02:05 #4803 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:05 #4804 [Verbose] >
00:02:05 #4805 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:05 #4806 [Verbose] > // // test
00:02:05 #4807 [Verbose] >
00:02:05 #4808 [Verbose] > am.init 10i32 id
00:02:05 #4809 [Verbose] > |> try_pick (fun x => if x = 5i32 then Some x else None)
00:02:05 #4810 [Verbose] > |> _assert_eq (Some 5i32)
00:02:06 #4811 [Verbose] >
00:02:06 #4812 [Verbose] > ╭─[ 399.77ms - stdout ]────────────────────────────────────────────────────────╮
00:02:06 #4813 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:02:06 #4814 [Verbose] > │ and [<Struct>] US0 = │
00:02:06 #4815 [Verbose] > │ | US0_0 │
00:02:06 #4816 [Verbose] > │ | US0_1 of f1_0 : int32 │
00:02:06 #4817 [Verbose] > │ and Mut1 = {mutable l0 : int32; mutable l1 : US0} │
00:02:06 #4818 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:02:06 #4819 [Verbose] > │ let v1 : int32 = v0.l0 │
00:02:06 #4820 [Verbose] > │ let v2 : bool = v1 < 10 │
00:02:06 #4821 [Verbose] > │ v2 │
00:02:06 #4822 [Verbose] > │ and method2 (v0 : int32, v1 : Mut1) : bool = │
00:02:06 #4823 [Verbose] > │ let v2 : int32 = v1.l0 │
00:02:06 #4824 [Verbose] > │ let v3 : bool = v2 < v0 │
00:02:06 #4825 [Verbose] > │ v3 │
00:02:06 #4826 [Verbose] > │ and method3 (v0 : bool) : bool = │
00:02:06 #4827 [Verbose] > │ v0 │
00:02:06 #4828 [Verbose] > │ and method0 () : unit = │
00:02:06 #4829 [Verbose] > │ let v0 : (int32 []) = Array.zeroCreate<int32> (10) │
00:02:06 #4830 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:02:06 #4831 [Verbose] > │ while method1(v1) do │
00:02:06 #4832 [Verbose] > │ let v3 : int32 = v1.l0 │
00:02:06 #4833 [Verbose] > │ v0.[int v3] <- v3 │
00:02:06 #4834 [Verbose] > │ let v4 : int32 = v3 + 1 │
00:02:06 #4835 [Verbose] > │ v1.l0 <- v4 │
00:02:06 #4836 [Verbose] > │ () │
00:02:06 #4837 [Verbose] > │ let v5 : int32 = v0.Length │
00:02:06 #4838 [Verbose] > │ let v6 : US0 = US0_0 │
00:02:06 #4839 [Verbose] > │ let v7 : Mut1 = {l0 = 0; l1 = v6} : Mut1 │
00:02:06 #4840 [Verbose] > │ while method2(v5, v7) do │
00:02:06 #4841 [Verbose] > │ let v9 : int32 = v7.l0 │
00:02:06 #4842 [Verbose] > │ let v10 : int32 = -v9 │
00:02:06 #4843 [Verbose] > │ let v11 : int32 = v10 + v5 │
00:02:06 #4844 [Verbose] > │ let v12 : int32 = v11 - 1 │
00:02:06 #4845 [Verbose] > │ let v13 : US0 = v7.l1 │
00:02:06 #4846 [Verbose] > │ let v14 : int32 = v0.[int v12] │
00:02:06 #4847 [Verbose] > │ let v21 : US0 = │
00:02:06 #4848 [Verbose] > │ match v13 with │
00:02:06 #4849 [Verbose] > │ | US0_0 -> (* None *) │
00:02:06 #4850 [Verbose] > │ let v16 : bool = v14 = 5 │
00:02:06 #4851 [Verbose] > │ if v16 then │
00:02:06 #4852 [Verbose] > │ US0_1(v14) │
00:02:06 #4853 [Verbose] > │ else │
00:02:06 #4854 [Verbose] > │ US0_0 │
00:02:06 #4855 [Verbose] > │ | US0_1(v15) -> (* Some *) │
00:02:06 #4856 [Verbose] > │ v13 │
00:02:06 #4857 [Verbose] > │ let v22 : int32 = v9 + 1 │
00:02:06 #4858 [Verbose] > │ v7.l0 <- v22 │
00:02:06 #4859 [Verbose] > │ v7.l1 <- v21 │
00:02:06 #4860 [Verbose] > │ () │
00:02:06 #4861 [Verbose] > │ let v23 : US0 = v7.l1 │
00:02:06 #4862 [Verbose] > │ let v24 : string = $"%A{v23}" │
00:02:06 #4863 [Verbose] > │ System.Console.WriteLine v24 │
00:02:06 #4864 [Verbose] > │ let v28 : bool = │
00:02:06 #4865 [Verbose] > │ match v23 with │
00:02:06 #4866 [Verbose] > │ | US0_1(v26) -> (* Some *) │
00:02:06 #4867 [Verbose] > │ let v27 : bool = v26 = 5 │
00:02:06 #4868 [Verbose] > │ v27 │
00:02:06 #4869 [Verbose] > │ | _ -> │
00:02:06 #4870 [Verbose] > │ false │
00:02:06 #4871 [Verbose] > │ let v30 : bool = │
00:02:06 #4872 [Verbose] > │ if v28 then │
00:02:06 #4873 [Verbose] > │ true │
00:02:06 #4874 [Verbose] > │ else │
00:02:06 #4875 [Verbose] > │ method3(v28) │
00:02:06 #4876 [Verbose] > │ let v31 : US0 = US0_1(5) │
00:02:06 #4877 [Verbose] > │ let v32 : string = $"__expect / actual: %A{v23} / expected: %A{v31}" │
00:02:06 #4878 [Verbose] > │ let v33 : bool = v30 = false │
00:02:06 #4879 [Verbose] > │ if v33 then │
00:02:06 #4880 [Verbose] > │ failwith<unit> v32 │
00:02:06 #4881 [Verbose] > │ method0() │
00:02:06 #4882 [Verbose] > │ │
00:02:06 #4883 [Verbose] > │ US0_1 5 │
00:02:06 #4884 [Verbose] > │ │
00:02:06 #4885 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:06 #4886 [Verbose] >
00:02:06 #4887 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:06 #4888 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:06 #4889 [Verbose] > │ ## indexed' │
00:02:06 #4890 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:06 #4891 [Verbose] >
00:02:06 #4892 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:06 #4893 [Verbose] > inl indexed' forall t dim {int; number} dim' {int; number} u {number}. (ar : a
00:02:06 #4894 [Verbose] > dim t) : a dim' (u * t) =
00:02:06 #4895 [Verbose] > ((0, a ;[[]]), ar)
00:02:06 #4896 [Verbose] > ||> am.fold fun (i, acc) x =>
00:02:06 #4897 [Verbose] > i + 1, acc /@ a ;[[i, x]]
00:02:06 #4898 [Verbose] > |> snd
00:02:06 #4899 [Verbose] >
00:02:06 #4900 [Verbose] > ╭─[ 227.05ms - stdout ]────────────────────────────────────────────────────────╮
00:02:06 #4901 [Verbose] > │ () │
00:02:06 #4902 [Verbose] > │ │
00:02:06 #4903 [Verbose] > │ │
00:02:06 #4904 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:06 #4905 [Verbose] >
00:02:06 #4906 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:06 #4907 [Verbose] > // // test
00:02:06 #4908 [Verbose] >
00:02:06 #4909 [Verbose] > am.init 3i32 ((*) 2)
00:02:06 #4910 [Verbose] > |> indexed'
00:02:06 #4911 [Verbose] > |> _assert_eq (a ;[[0i32, 0; 1, 2; 2, 4]] : a i32 _)
00:02:06 #4912 [Verbose] >
00:02:06 #4913 [Verbose] > ╭─[ 351.47ms - stdout ]────────────────────────────────────────────────────────╮
00:02:06 #4914 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:02:06 #4915 [Verbose] > │ and Mut1 = {mutable l0 : int32; mutable l1 : int32; mutable l2 : (struct │
00:02:06 #4916 [Verbose] > │ (int32 * int32) [])} │
00:02:06 #4917 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:02:06 #4918 [Verbose] > │ let v1 : int32 = v0.l0 │
00:02:06 #4919 [Verbose] > │ let v2 : bool = v1 < 3 │
00:02:06 #4920 [Verbose] > │ v2 │
00:02:06 #4921 [Verbose] > │ and method2 (v0 : (struct (int32 * int32) [])) : (struct (int32 * int32) []) │
00:02:06 #4922 [Verbose] > │ = │
00:02:06 #4923 [Verbose] > │ v0 │
00:02:06 #4924 [Verbose] > │ and method3 (v0 : int32, v1 : Mut1) : bool = │
00:02:06 #4925 [Verbose] > │ let v2 : int32 = v1.l0 │
00:02:06 #4926 [Verbose] > │ let v3 : bool = v2 < v0 │
00:02:06 #4927 [Verbose] > │ v3 │
00:02:06 #4928 [Verbose] > │ and method4 (v0 : int32, v1 : Mut0) : bool = │
00:02:06 #4929 [Verbose] > │ let v2 : int32 = v1.l0 │
00:02:06 #4930 [Verbose] > │ let v3 : bool = v2 < v0 │
00:02:06 #4931 [Verbose] > │ v3 │
00:02:06 #4932 [Verbose] > │ and method5 (v0 : (struct (int32 * int32) []), v1 : (struct (int32 * int32) │
00:02:06 #4933 [Verbose] > │ []), v2 : int32) : bool = │
00:02:06 #4934 [Verbose] > │ let v3 : int32 = v0.Length │
00:02:06 #4935 [Verbose] > │ let v4 : bool = v2 < v3 │
00:02:06 #4936 [Verbose] > │ if v4 then │
00:02:06 #4937 [Verbose] > │ let struct (v5 : int32, v6 : int32) = v0.[int v2] │
00:02:06 #4938 [Verbose] > │ let struct (v7 : int32, v8 : int32) = v1.[int v2] │
00:02:06 #4939 [Verbose] > │ let v9 : bool = v5 = v7 │
00:02:06 #4940 [Verbose] > │ let v11 : bool = │
00:02:06 #4941 [Verbose] > │ if v9 then │
00:02:06 #4942 [Verbose] > │ let v10 : bool = v6 = v8 │
00:02:06 #4943 [Verbose] > │ v10 │
00:02:06 #4944 [Verbose] > │ else │
00:02:06 #4945 [Verbose] > │ false │
00:02:06 #4946 [Verbose] > │ if v11 then │
00:02:06 #4947 [Verbose] > │ let v12 : int32 = v2 + 1 │
00:02:06 #4948 [Verbose] > │ method5(v0, v1, v12) │
00:02:06 #4949 [Verbose] > │ else │
00:02:06 #4950 [Verbose] > │ false │
00:02:06 #4951 [Verbose] > │ else │
00:02:06 #4952 [Verbose] > │ true │
00:02:06 #4953 [Verbose] > │ and method6 (v0 : bool) : bool = │
00:02:06 #4954 [Verbose] > │ v0 │
00:02:06 #4955 [Verbose] > │ and method0 () : unit = │
00:02:06 #4956 [Verbose] > │ let v0 : (int32 []) = Array.zeroCreate<int32> (3) │
00:02:06 #4957 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:02:06 #4958 [Verbose] > │ while method1(v1) do │
00:02:06 #4959 [Verbose] > │ let v3 : int32 = v1.l0 │
00:02:06 #4960 [Verbose] > │ let v4 : int32 = 2 * v3 │
00:02:06 #4961 [Verbose] > │ v0.[int v3] <- v4 │
00:02:06 #4962 [Verbose] > │ let v5 : int32 = v3 + 1 │
00:02:06 #4963 [Verbose] > │ v1.l0 <- v5 │
00:02:06 #4964 [Verbose] > │ () │
00:02:06 #4965 [Verbose] > │ let v6 : (struct (int32 * int32) []) = [||] │
00:02:06 #4966 [Verbose] > │ let v7 : (struct (int32 * int32) []) = method2(v6) │
00:02:06 #4967 [Verbose] > │ let v8 : int32 = v0.Length │
00:02:06 #4968 [Verbose] > │ let v9 : Mut1 = {l0 = 0; l1 = 0; l2 = v7} : Mut1 │
00:02:06 #4969 [Verbose] > │ while method3(v8, v9) do │
00:02:06 #4970 [Verbose] > │ let v11 : int32 = v9.l0 │
00:02:06 #4971 [Verbose] > │ let struct (v12 : int32, v13 : (struct (int32 * int32) [])) = v9.l1, │
00:02:06 #4972 [Verbose] > │ v9.l2 │
00:02:06 #4973 [Verbose] > │ let v14 : int32 = v0.[int v11] │
00:02:06 #4974 [Verbose] > │ let v15 : int32 = v12 + 1 │
00:02:06 #4975 [Verbose] > │ let v16 : (struct (int32 * int32) []) = [|struct (v12, v14)|] │
00:02:06 #4976 [Verbose] > │ let v17 : (struct (int32 * int32) []) = method2(v16) │
00:02:06 #4977 [Verbose] > │ let v18 : int32 = v13.Length │
00:02:06 #4978 [Verbose] > │ let v19 : int32 = v17.Length │
00:02:06 #4979 [Verbose] > │ let v20 : int32 = v18 + v19 │
00:02:06 #4980 [Verbose] > │ let v21 : (struct (int32 * int32) []) = Array.zeroCreate<struct │
00:02:06 #4981 [Verbose] > │ (int32 * int32)> (v20) │
00:02:06 #4982 [Verbose] > │ let v22 : Mut0 = {l0 = 0} : Mut0 │
00:02:06 #4983 [Verbose] > │ while method4(v20, v22) do │
00:02:06 #4984 [Verbose] > │ let v24 : int32 = v22.l0 │
00:02:06 #4985 [Verbose] > │ let v25 : bool = v24 < v18 │
00:02:06 #4986 [Verbose] > │ let struct (v31 : int32, v32 : int32) = │
00:02:06 #4987 [Verbose] > │ if v25 then │
00:02:06 #4988 [Verbose] > │ let struct (v26 : int32, v27 : int32) = v13.[int v24] │
00:02:06 #4989 [Verbose] > │ struct (v26, v27) │
00:02:06 #4990 [Verbose] > │ else │
00:02:06 #4991 [Verbose] > │ let v28 : int32 = v24 - v18 │
00:02:06 #4992 [Verbose] > │ let struct (v29 : int32, v30 : int32) = v17.[int v28] │
00:02:06 #4993 [Verbose] > │ struct (v29, v30) │
00:02:06 #4994 [Verbose] > │ v21.[int v24] <- struct (v31, v32) │
00:02:06 #4995 [Verbose] > │ let v33 : int32 = v24 + 1 │
00:02:06 #4996 [Verbose] > │ v22.l0 <- v33 │
00:02:06 #4997 [Verbose] > │ () │
00:02:06 #4998 [Verbose] > │ let v34 : int32 = v11 + 1 │
00:02:06 #4999 [Verbose] > │ v9.l0 <- v34 │
00:02:06 #5000 [Verbose] > │ v9.l1 <- v15 │
00:02:06 #5001 [Verbose] > │ v9.l2 <- v21 │
00:02:06 #5002 [Verbose] > │ () │
00:02:06 #5003 [Verbose] > │ let struct (v35 : int32, v36 : (struct (int32 * int32) [])) = v9.l1, │
00:02:06 #5004 [Verbose] > │ v9.l2 │
00:02:06 #5005 [Verbose] > │ let v37 : (struct (int32 * int32) []) = [|struct (0, 0); struct (1, 2); │
00:02:06 #5006 [Verbose] > │ struct (2, 4)|] │
00:02:06 #5007 [Verbose] > │ let v38 : (struct (int32 * int32) []) = method2(v37) │
00:02:06 #5008 [Verbose] > │ let v39 : string = $"%A{v36}" │
00:02:06 #5009 [Verbose] > │ System.Console.WriteLine v39 │
00:02:06 #5010 [Verbose] > │ let v40 : int32 = v36.Length │
00:02:06 #5011 [Verbose] > │ let v41 : int32 = v38.Length │
00:02:06 #5012 [Verbose] > │ let v42 : bool = v40 = v41 │
00:02:06 #5013 [Verbose] > │ let v43 : bool = v42 <> true │
00:02:06 #5014 [Verbose] > │ let v46 : bool = │
00:02:06 #5015 [Verbose] > │ if v43 then │
00:02:06 #5016 [Verbose] > │ false │
00:02:06 #5017 [Verbose] > │ else │
00:02:06 #5018 [Verbose] > │ let v44 : int32 = 0 │
00:02:06 #5019 [Verbose] > │ method5(v36, v38, v44) │
00:02:06 #5020 [Verbose] > │ let v48 : bool = │
00:02:06 #5021 [Verbose] > │ if v46 then │
00:02:06 #5022 [Verbose] > │ true │
00:02:06 #5023 [Verbose] > │ else │
00:02:06 #5024 [Verbose] > │ method6(v46) │
00:02:06 #5025 [Verbose] > │ let v49 : string = $"__expect / actual: %A{v36} / expected: %A{v38}" │
00:02:06 #5026 [Verbose] > │ let v50 : bool = v48 = false │
00:02:06 #5027 [Verbose] > │ if v50 then │
00:02:06 #5028 [Verbose] > │ failwith<unit> v49 │
00:02:06 #5029 [Verbose] > │ method0() │
00:02:06 #5030 [Verbose] > │ │
00:02:06 #5031 [Verbose] > │ [|struct (0, 0); struct (1, 2); struct (2, 4)|] │
00:02:06 #5032 [Verbose] > │ │
00:02:06 #5033 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:06 #5034 [Verbose] >
00:02:06 #5035 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:06 #5036 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:06 #5037 [Verbose] > │ ## map_base │
00:02:06 #5038 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:06 #5039 [Verbose] >
00:02:06 #5040 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:06 #5041 [Verbose] > inl map_base forall t u. (fn : t -> u) (x : array_base t) : array_base u =
00:02:06 #5042 [Verbose] > a x
00:02:06 #5043 [Verbose] > |> am.map fn
00:02:06 #5044 [Verbose] > |> fun (a x : _ i64 _) => x
00:02:07 #5045 [Verbose] >
00:02:07 #5046 [Verbose] > ╭─[ 406.75ms - stdout ]────────────────────────────────────────────────────────╮
00:02:07 #5047 [Verbose] > │ () │
00:02:07 #5048 [Verbose] > │ │
00:02:07 #5049 [Verbose] > │ │
00:02:07 #5050 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:07 #5051 [Verbose] >
00:02:07 #5052 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:07 #5053 [Verbose] > inl average forall el {number}. (array : a _ el) : el =
00:02:07 #5054 [Verbose] > $"!array |> Array.average"
00:02:07 #5055 [Verbose] >
00:02:07 #5056 [Verbose] > inl length forall dim el {number}. (array : a dim el) : dim =
00:02:07 #5057 [Verbose] > $"!array |> Array.length"
00:02:07 #5058 [Verbose] >
00:02:07 #5059 [Verbose] > inl parallel_map forall dim el el'. (fn : el -> el') (array : a dim el) : a dim
00:02:07 #5060 [Verbose] > el' =
00:02:07 #5061 [Verbose] > $"!array |> Array.Parallel.map !fn"
00:02:07 #5062 [Verbose] >
00:02:07 #5063 [Verbose] > inl sort_by forall dim el. (fn : el -> _) (array : a dim el) : a dim el =
00:02:07 #5064 [Verbose] > $"!array |> Array.sortBy !fn"
00:02:07 #5065 [Verbose] >
00:02:07 #5066 [Verbose] > inl sort_descending forall dim el. (array : a dim el) : a dim el =
00:02:07 #5067 [Verbose] > $"!array |> Array.sortDescending"
00:02:07 #5068 [Verbose] >
00:02:07 #5069 [Verbose] > inl transpose forall dim el. (array : a dim (a dim el)) : a dim (a dim el) =
00:02:07 #5070 [Verbose] > $"!array |> Array.transpose"
00:02:07 #5071 [Verbose] >
00:02:07 #5072 [Verbose] > inl try_item forall dim el. (i : i32) (array : a dim el) : option el =
00:02:07 #5073 [Verbose] > $"!array |> Array.tryItem !i" |> optionm'.unbox
00:02:07 #5074 [Verbose] >
00:02:07 #5075 [Verbose] > ╭─[ 265.74ms - stdout ]────────────────────────────────────────────────────────╮
00:02:07 #5076 [Verbose] > │ () │
00:02:07 #5077 [Verbose] > │ │
00:02:07 #5078 [Verbose] > │ │
00:02:07 #5079 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:07 #5080 [Verbose] >
00:02:07 #5081 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:07 #5082 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:07 #5083 [Verbose] > │ ## indexed │
00:02:07 #5084 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:07 #5085 [Verbose] >
00:02:07 #5086 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:07 #5087 [Verbose] > inl indexed (array : a _ _) =
00:02:07 #5088 [Verbose] > (([[]], 0), array)
00:02:07 #5089 [Verbose] > ||> am.fold fun (acc, i) x =>
00:02:07 #5090 [Verbose] > (i, x) :: acc, i + 1
00:02:07 #5091 [Verbose] > |> fst
00:02:07 #5092 [Verbose] > |> listm.rev
00:02:07 #5093 [Verbose] > |> listm.toArray
00:02:07 #5094 [Verbose] >
00:02:07 #5095 [Verbose] > ╭─[ 284.08ms - stdout ]────────────────────────────────────────────────────────╮
00:02:07 #5096 [Verbose] > │ () │
00:02:07 #5097 [Verbose] > │ │
00:02:07 #5098 [Verbose] > │ │
00:02:07 #5099 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:07 #5100 [Verbose] >
00:02:07 #5101 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:07 #5102 [Verbose] > // // test
00:02:07 #5103 [Verbose] >
00:02:07 #5104 [Verbose] > am.init 3i32 ((*) 2)
00:02:07 #5105 [Verbose] > |> indexed
00:02:07 #5106 [Verbose] > |> _assert_eq (a ;[[0i32, 0; 1, 2; 2, 4]] : a i32 _)
00:02:08 #5107 [Verbose] >
00:02:08 #5108 [Verbose] > ╭─[ 391.22ms - stdout ]────────────────────────────────────────────────────────╮
00:02:08 #5109 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:02:08 #5110 [Verbose] > │ and UH0 = │
00:02:08 #5111 [Verbose] > │ | UH0_0 of int32 * int32 * UH0 │
00:02:08 #5112 [Verbose] > │ | UH0_1 │
00:02:08 #5113 [Verbose] > │ and Mut1 = {mutable l0 : int32; mutable l1 : UH0; mutable l2 : int32} │
00:02:08 #5114 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:02:08 #5115 [Verbose] > │ let v1 : int32 = v0.l0 │
00:02:08 #5116 [Verbose] > │ let v2 : bool = v1 < 3 │
00:02:08 #5117 [Verbose] > │ v2 │
00:02:08 #5118 [Verbose] > │ and method2 (v0 : int32, v1 : Mut1) : bool = │
00:02:08 #5119 [Verbose] > │ let v2 : int32 = v1.l0 │
00:02:08 #5120 [Verbose] > │ let v3 : bool = v2 < v0 │
00:02:08 #5121 [Verbose] > │ v3 │
00:02:08 #5122 [Verbose] > │ and method3 (v0 : UH0, v1 : UH0) : UH0 = │
00:02:08 #5123 [Verbose] > │ match v0 with │
00:02:08 #5124 [Verbose] > │ | UH0_0(v2, v3, v4) -> (* Cons *) │
00:02:08 #5125 [Verbose] > │ let v5 : UH0 = UH0_0(v2, v3, v1) │
00:02:08 #5126 [Verbose] > │ method3(v4, v5) │
00:02:08 #5127 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:02:08 #5128 [Verbose] > │ v1 │
00:02:08 #5129 [Verbose] > │ and method5 (v0 : UH0, v1 : int32) : int32 = │
00:02:08 #5130 [Verbose] > │ match v0 with │
00:02:08 #5131 [Verbose] > │ | UH0_0(v2, v3, v4) -> (* Cons *) │
00:02:08 #5132 [Verbose] > │ let v5 : int32 = v1 + 1 │
00:02:08 #5133 [Verbose] > │ method5(v4, v5) │
00:02:08 #5134 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:02:08 #5135 [Verbose] > │ v1 │
00:02:08 #5136 [Verbose] > │ and method6 (v0 : (struct (int32 * int32) []), v1 : UH0, v2 : int32) : int32 │
00:02:08 #5137 [Verbose] > │ = │
00:02:08 #5138 [Verbose] > │ match v1 with │
00:02:08 #5139 [Verbose] > │ | UH0_0(v3, v4, v5) -> (* Cons *) │
00:02:08 #5140 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:02:08 #5141 [Verbose] > │ let v6 : int32 = v2 + 1 │
00:02:08 #5142 [Verbose] > │ method6(v0, v5, v6) │
00:02:08 #5143 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:02:08 #5144 [Verbose] > │ v2 │
00:02:08 #5145 [Verbose] > │ and method4 (v0 : UH0) : (struct (int32 * int32) []) = │
00:02:08 #5146 [Verbose] > │ let v1 : int32 = 0 │
00:02:08 #5147 [Verbose] > │ let v2 : int32 = method5(v0, v1) │
00:02:08 #5148 [Verbose] > │ let v3 : (struct (int32 * int32) []) = Array.zeroCreate<struct (int32 * │
00:02:08 #5149 [Verbose] > │ int32)> (v2) │
00:02:08 #5150 [Verbose] > │ let v4 : int32 = 0 │
00:02:08 #5151 [Verbose] > │ let v5 : int32 = method6(v3, v0, v4) │
00:02:08 #5152 [Verbose] > │ v3 │
00:02:08 #5153 [Verbose] > │ and method7 (v0 : (struct (int32 * int32) [])) : (struct (int32 * int32) []) │
00:02:08 #5154 [Verbose] > │ = │
00:02:08 #5155 [Verbose] > │ v0 │
00:02:08 #5156 [Verbose] > │ and method8 (v0 : (struct (int32 * int32) []), v1 : (struct (int32 * int32) │
00:02:08 #5157 [Verbose] > │ []), v2 : int32) : bool = │
00:02:08 #5158 [Verbose] > │ let v3 : int32 = v0.Length │
00:02:08 #5159 [Verbose] > │ let v4 : bool = v2 < v3 │
00:02:08 #5160 [Verbose] > │ if v4 then │
00:02:08 #5161 [Verbose] > │ let struct (v5 : int32, v6 : int32) = v0.[int v2] │
00:02:08 #5162 [Verbose] > │ let struct (v7 : int32, v8 : int32) = v1.[int v2] │
00:02:08 #5163 [Verbose] > │ let v9 : bool = v5 = v7 │
00:02:08 #5164 [Verbose] > │ let v11 : bool = │
00:02:08 #5165 [Verbose] > │ if v9 then │
00:02:08 #5166 [Verbose] > │ let v10 : bool = v6 = v8 │
00:02:08 #5167 [Verbose] > │ v10 │
00:02:08 #5168 [Verbose] > │ else │
00:02:08 #5169 [Verbose] > │ false │
00:02:08 #5170 [Verbose] > │ if v11 then │
00:02:08 #5171 [Verbose] > │ let v12 : int32 = v2 + 1 │
00:02:08 #5172 [Verbose] > │ method8(v0, v1, v12) │
00:02:08 #5173 [Verbose] > │ else │
00:02:08 #5174 [Verbose] > │ false │
00:02:08 #5175 [Verbose] > │ else │
00:02:08 #5176 [Verbose] > │ true │
00:02:08 #5177 [Verbose] > │ and method9 (v0 : bool) : bool = │
00:02:08 #5178 [Verbose] > │ v0 │
00:02:08 #5179 [Verbose] > │ and method0 () : unit = │
00:02:08 #5180 [Verbose] > │ let v0 : (int32 []) = Array.zeroCreate<int32> (3) │
00:02:08 #5181 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:02:08 #5182 [Verbose] > │ while method1(v1) do │
00:02:08 #5183 [Verbose] > │ let v3 : int32 = v1.l0 │
00:02:08 #5184 [Verbose] > │ let v4 : int32 = 2 * v3 │
00:02:08 #5185 [Verbose] > │ v0.[int v3] <- v4 │
00:02:08 #5186 [Verbose] > │ let v5 : int32 = v3 + 1 │
00:02:08 #5187 [Verbose] > │ v1.l0 <- v5 │
00:02:08 #5188 [Verbose] > │ () │
00:02:08 #5189 [Verbose] > │ let v6 : int32 = v0.Length │
00:02:08 #5190 [Verbose] > │ let v7 : UH0 = UH0_1 │
00:02:08 #5191 [Verbose] > │ let v8 : Mut1 = {l0 = 0; l1 = v7; l2 = 0} : Mut1 │
00:02:08 #5192 [Verbose] > │ while method2(v6, v8) do │
00:02:08 #5193 [Verbose] > │ let v10 : int32 = v8.l0 │
00:02:08 #5194 [Verbose] > │ let struct (v11 : UH0, v12 : int32) = v8.l1, v8.l2 │
00:02:08 #5195 [Verbose] > │ let v13 : int32 = v0.[int v10] │
00:02:08 #5196 [Verbose] > │ let v14 : int32 = v12 + 1 │
00:02:08 #5197 [Verbose] > │ let v15 : int32 = v10 + 1 │
00:02:08 #5198 [Verbose] > │ let v16 : UH0 = UH0_0(v12, v13, v11) │
00:02:08 #5199 [Verbose] > │ v8.l0 <- v15 │
00:02:08 #5200 [Verbose] > │ v8.l1 <- v16 │
00:02:08 #5201 [Verbose] > │ v8.l2 <- v14 │
00:02:08 #5202 [Verbose] > │ () │
00:02:08 #5203 [Verbose] > │ let struct (v17 : UH0, v18 : int32) = v8.l1, v8.l2 │
00:02:08 #5204 [Verbose] > │ let v19 : UH0 = UH0_1 │
00:02:08 #5205 [Verbose] > │ let v20 : UH0 = method3(v17, v19) │
00:02:08 #5206 [Verbose] > │ let v21 : (struct (int32 * int32) []) = method4(v20) │
00:02:08 #5207 [Verbose] > │ let v22 : (struct (int32 * int32) []) = [|struct (0, 0); struct (1, 2); │
00:02:08 #5208 [Verbose] > │ struct (2, 4)|] │
00:02:08 #5209 [Verbose] > │ let v23 : (struct (int32 * int32) []) = method7(v22) │
00:02:08 #5210 [Verbose] > │ let v24 : string = $"%A{v21}" │
00:02:08 #5211 [Verbose] > │ System.Console.WriteLine v24 │
00:02:08 #5212 [Verbose] > │ let v25 : int32 = v21.Length │
00:02:08 #5213 [Verbose] > │ let v26 : int32 = v23.Length │
00:02:08 #5214 [Verbose] > │ let v27 : bool = v25 = v26 │
00:02:08 #5215 [Verbose] > │ let v28 : bool = v27 <> true │
00:02:08 #5216 [Verbose] > │ let v31 : bool = │
00:02:08 #5217 [Verbose] > │ if v28 then │
00:02:08 #5218 [Verbose] > │ false │
00:02:08 #5219 [Verbose] > │ else │
00:02:08 #5220 [Verbose] > │ let v29 : int32 = 0 │
00:02:08 #5221 [Verbose] > │ method8(v21, v23, v29) │
00:02:08 #5222 [Verbose] > │ let v33 : bool = │
00:02:08 #5223 [Verbose] > │ if v31 then │
00:02:08 #5224 [Verbose] > │ true │
00:02:08 #5225 [Verbose] > │ else │
00:02:08 #5226 [Verbose] > │ method9(v31) │
00:02:08 #5227 [Verbose] > │ let v34 : string = $"__expect / actual: %A{v21} / expected: %A{v23}" │
00:02:08 #5228 [Verbose] > │ let v35 : bool = v33 = false │
00:02:08 #5229 [Verbose] > │ if v35 then │
00:02:08 #5230 [Verbose] > │ failwith<unit> v34 │
00:02:08 #5231 [Verbose] > │ method0() │
00:02:08 #5232 [Verbose] > │ │
00:02:08 #5233 [Verbose] > │ [|struct (0, 0); struct (1, 2); struct (2, 4)|] │
00:02:08 #5234 [Verbose] > │ │
00:02:08 #5235 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:08 #5236 [Verbose] >
00:02:08 #5237 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:08 #5238 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:08 #5239 [Verbose] > │ ## from_vec │
00:02:08 #5240 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:08 #5241 [Verbose] >
00:02:08 #5242 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:08 #5243 [Verbose] > inl from_vec forall dim el. (vec : vec el) : a dim el =
00:02:08 #5244 [Verbose] > inl vec = join vec
00:02:08 #5245 [Verbose] > !\($'"fable_library_rust::NativeArray_::array_from(!vec)"')
00:02:08 #5246 [Verbose] >
00:02:08 #5247 [Verbose] > ╭─[ 304.09ms - stdout ]────────────────────────────────────────────────────────╮
00:02:08 #5248 [Verbose] > │ () │
00:02:08 #5249 [Verbose] > │ │
00:02:08 #5250 [Verbose] > │ │
00:02:08 #5251 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:08 #5252 [Verbose] >
00:02:08 #5253 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:08 #5254 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:08 #5255 [Verbose] > │ ## to_vec │
00:02:08 #5256 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:08 #5257 [Verbose] >
00:02:08 #5258 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:08 #5259 [Verbose] > inl to_vec forall t. (ar : array_base t) : vec t =
00:02:08 #5260 [Verbose] > inl ar = join ar
00:02:08 #5261 [Verbose] > !\($'"!ar.to_vec()"')
00:02:08 #5262 [Verbose] >
00:02:08 #5263 [Verbose] > ╭─[ 241.13ms - stdout ]────────────────────────────────────────────────────────╮
00:02:08 #5264 [Verbose] > │ () │
00:02:08 #5265 [Verbose] > │ │
00:02:08 #5266 [Verbose] > │ │
00:02:08 #5267 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:08 #5268 [Verbose] >
00:02:08 #5269 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:08 #5270 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:08 #5271 [Verbose] > │ ## vec_push │
00:02:08 #5272 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:08 #5273 [Verbose] >
00:02:08 #5274 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:08 #5275 [Verbose] > inl vec_push forall el. (el : el) (vec : vec el) : vec el =
00:02:08 #5276 [Verbose] > inl el = join el
00:02:08 #5277 [Verbose] > inl vec = join vec
00:02:08 #5278 [Verbose] > !\($'"let mut !vec = !vec"')
00:02:08 #5279 [Verbose] > // inl vec = vec |> rust.to_mut
00:02:08 #5280 [Verbose] > !\($'"!vec.push(!el)"')
00:02:08 #5281 [Verbose] > !\($'"!vec"')
00:02:09 #5282 [Verbose] >
00:02:09 #5283 [Verbose] > ╭─[ 257.51ms - stdout ]────────────────────────────────────────────────────────╮
00:02:09 #5284 [Verbose] > │ () │
00:02:09 #5285 [Verbose] > │ │
00:02:09 #5286 [Verbose] > │ │
00:02:09 #5287 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:09 #5288 [Verbose] >
00:02:09 #5289 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:09 #5290 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:09 #5291 [Verbose] > │ ## vec_reverse │
00:02:09 #5292 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:09 #5293 [Verbose] >
00:02:09 #5294 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:09 #5295 [Verbose] > inl vec_reverse forall el. (vec : vec el) : vec el =
00:02:09 #5296 [Verbose] > inl vec = join vec
00:02:09 #5297 [Verbose] > !\($'"let mut !vec = !vec"')
00:02:09 #5298 [Verbose] > !\($'"!vec.reverse()"')
00:02:09 #5299 [Verbose] > !\($'"!vec"')
00:02:09 #5300 [Verbose] >
00:02:09 #5301 [Verbose] > ╭─[ 274.63ms - stdout ]────────────────────────────────────────────────────────╮
00:02:09 #5302 [Verbose] > │ () │
00:02:09 #5303 [Verbose] > │ │
00:02:09 #5304 [Verbose] > │ │
00:02:09 #5305 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:09 #5306 [Verbose] >
00:02:09 #5307 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:09 #5308 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:09 #5309 [Verbose] > │ ## vec_retain │
00:02:09 #5310 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:09 #5311 [Verbose] >
00:02:09 #5312 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:09 #5313 [Verbose] > inl vec_retain forall el. (fn : el -> bool) (vec : vec el) : vec el =
00:02:09 #5314 [Verbose] > inl vec = join vec
00:02:09 #5315 [Verbose] > inl fn = join fn
00:02:09 #5316 [Verbose] > !\($'"let mut !vec = !vec"')
00:02:09 #5317 [Verbose] > // inl vec = vec |> rust.to_mut
00:02:09 #5318 [Verbose] > !\($'"!vec.retain(|x| !fn(x.clone()))"')
00:02:09 #5319 [Verbose] > !\($'"!vec"')
00:02:09 #5320 [Verbose] >
00:02:09 #5321 [Verbose] > ╭─[ 261.17ms - stdout ]────────────────────────────────────────────────────────╮
00:02:09 #5322 [Verbose] > │ () │
00:02:09 #5323 [Verbose] > │ │
00:02:09 #5324 [Verbose] > │ │
00:02:09 #5325 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:09 #5326 [Verbose] >
00:02:09 #5327 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:09 #5328 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:09 #5329 [Verbose] > │ ## vec_sort_by_key │
00:02:09 #5330 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:09 #5331 [Verbose] >
00:02:09 #5332 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:09 #5333 [Verbose] > inl vec_sort_by_key forall el t. (fn : el -> t) (vec : vec el) : vec el =
00:02:09 #5334 [Verbose] > inl vec = join vec
00:02:09 #5335 [Verbose] > inl fn = join fn
00:02:09 #5336 [Verbose] > !\($'"let mut !vec = !vec"')
00:02:09 #5337 [Verbose] > // inl vec = vec |> rust.to_mut
00:02:09 #5338 [Verbose] > !\($'"!vec.sort_by_key(|x| !fn(x.clone()))"')
00:02:09 #5339 [Verbose] > !\($'"!vec"')
00:02:09 #5340 [Verbose] >
00:02:09 #5341 [Verbose] > ╭─[ 244.90ms - stdout ]────────────────────────────────────────────────────────╮
00:02:09 #5342 [Verbose] > │ () │
00:02:09 #5343 [Verbose] > │ │
00:02:09 #5344 [Verbose] > │ │
00:02:09 #5345 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:09 #5346 [Verbose] >
00:02:09 #5347 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:09 #5348 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:09 #5349 [Verbose] > │ ## vec_extend │
00:02:09 #5350 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:09 #5351 [Verbose] >
00:02:09 #5352 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:09 #5353 [Verbose] > inl vec_extend forall el. (el : vec el) (vec : vec el) : vec el =
00:02:09 #5354 [Verbose] > inl el = join el
00:02:09 #5355 [Verbose] > inl vec = join vec
00:02:09 #5356 [Verbose] > !\($'"let mut !vec = !vec"')
00:02:09 #5357 [Verbose] > // inl vec = vec |> rust.to_mut
00:02:09 #5358 [Verbose] > !\($'"!vec.extend(!el)"')
00:02:09 #5359 [Verbose] > !\($'"!vec"')
00:02:10 #5360 [Verbose] >
00:02:10 #5361 [Verbose] > ╭─[ 234.16ms - stdout ]────────────────────────────────────────────────────────╮
00:02:10 #5362 [Verbose] > │ () │
00:02:10 #5363 [Verbose] > │ │
00:02:10 #5364 [Verbose] > │ │
00:02:10 #5365 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:10 #5366 [Verbose] >
00:02:10 #5367 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:10 #5368 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:10 #5369 [Verbose] > │ ## vec_collect │
00:02:10 #5370 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:10 #5371 [Verbose] >
00:02:10 #5372 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:10 #5373 [Verbose] > inl vec_collect fn vec =
00:02:10 #5374 [Verbose] > ((;[[]] |> to_vec), (vec |> from_vec : _ i32 _))
00:02:10 #5375 [Verbose] > ||> am.fold fun acc x =>
00:02:10 #5376 [Verbose] > acc |> vec_extend (fn x)
00:02:10 #5377 [Verbose] >
00:02:10 #5378 [Verbose] > ╭─[ 321.82ms - stdout ]────────────────────────────────────────────────────────╮
00:02:10 #5379 [Verbose] > │ () │
00:02:10 #5380 [Verbose] > │ │
00:02:10 #5381 [Verbose] > │ │
00:02:10 #5382 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:10 #5383 [Verbose] >
00:02:10 #5384 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:10 #5385 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:10 #5386 [Verbose] > │ ## vec_collect_option │
00:02:10 #5387 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:10 #5388 [Verbose] >
00:02:10 #5389 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:10 #5390 [Verbose] > inl vec_collect_option vec =
00:02:10 #5391 [Verbose] > ((;[[]] |> to_vec |> Ok), (vec |> from_vec : _ i32 _))
00:02:10 #5392 [Verbose] > ||> am.fold fun acc x =>
00:02:10 #5393 [Verbose] > x
00:02:10 #5394 [Verbose] > |> resultm.unbox
00:02:10 #5395 [Verbose] > |> fun x =>
00:02:10 #5396 [Verbose] > match acc, x |> resultm.map optionm'.unbox with
00:02:10 #5397 [Verbose] > | Ok acc, Ok (Some x) => acc |> vec_extend x |> Ok
00:02:10 #5398 [Verbose] > | _, Error error => error |> Error
00:02:10 #5399 [Verbose] > | _ => acc
00:02:10 #5400 [Verbose] >
00:02:10 #5401 [Verbose] > ╭─[ 232.76ms - stdout ]────────────────────────────────────────────────────────╮
00:02:10 #5402 [Verbose] > │ () │
00:02:10 #5403 [Verbose] > │ │
00:02:10 #5404 [Verbose] > │ │
00:02:10 #5405 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:10 #5406 [Verbose] >
00:02:10 #5407 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:10 #5408 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:10 #5409 [Verbose] > │ ## vec_collect_into │
00:02:10 #5410 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:10 #5411 [Verbose] >
00:02:10 #5412 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:10 #5413 [Verbose] > inl vec_collect_into forall (c : * -> * -> *) t e.
00:02:10 #5414 [Verbose] > (x : vec (c t e))
00:02:10 #5415 [Verbose] > : c (vec t) e
00:02:10 #5416 [Verbose] > =
00:02:10 #5417 [Verbose] > !\($'"!x.into_iter().collect()"')
00:02:10 #5418 [Verbose] >
00:02:10 #5419 [Verbose] > ╭─[ 219.80ms - stdout ]────────────────────────────────────────────────────────╮
00:02:10 #5420 [Verbose] > │ () │
00:02:10 #5421 [Verbose] > │ │
00:02:10 #5422 [Verbose] > │ │
00:02:10 #5423 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:10 #5424 [Verbose] >
00:02:10 #5425 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:10 #5426 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:10 #5427 [Verbose] > │ ## vec_mapi │
00:02:10 #5428 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:10 #5429 [Verbose] >
00:02:10 #5430 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:10 #5431 [Verbose] > inl vec_mapi forall dim t u. (fn : dim -> t -> u) (ar : vec t) : vec u =
00:02:10 #5432 [Verbose] > inl fn = join fn
00:02:10 #5433 [Verbose] > inl ar = join ar
00:02:10 #5434 [Verbose] > !\($'"!ar.iter().enumerate().map(|(i, x)|
00:02:10 #5435 [Verbose] > !fn(i.try_into().unwrap())(x.clone())).collect()"')
00:02:11 #5436 [Verbose] >
00:02:11 #5437 [Verbose] > ╭─[ 214.30ms - stdout ]────────────────────────────────────────────────────────╮
00:02:11 #5438 [Verbose] > │ () │
00:02:11 #5439 [Verbose] > │ │
00:02:11 #5440 [Verbose] > │ │
00:02:11 #5441 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:11 #5442 [Verbose] >
00:02:11 #5443 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:11 #5444 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:11 #5445 [Verbose] > │ ## vec_map │
00:02:11 #5446 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:11 #5447 [Verbose] >
00:02:11 #5448 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:11 #5449 [Verbose] > inl vec_map forall t u. (fn : t -> u) (ar : vec t) : vec u =
00:02:11 #5450 [Verbose] > inl fn = join fn
00:02:11 #5451 [Verbose] > inl ar = join ar
00:02:11 #5452 [Verbose] > !\($'"!ar.iter().map(|x| !fn(x.clone())).collect()"')
00:02:11 #5453 [Verbose] >
00:02:11 #5454 [Verbose] > ╭─[ 223.87ms - stdout ]────────────────────────────────────────────────────────╮
00:02:11 #5455 [Verbose] > │ () │
00:02:11 #5456 [Verbose] > │ │
00:02:11 #5457 [Verbose] > │ │
00:02:11 #5458 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:11 #5459 [Verbose] >
00:02:11 #5460 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:11 #5461 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:11 #5462 [Verbose] > │ ## vec_filter │
00:02:11 #5463 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:11 #5464 [Verbose] >
00:02:11 #5465 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:11 #5466 [Verbose] > inl vec_filter forall t. (fn : t -> bool) (ar : vec t) : vec t =
00:02:11 #5467 [Verbose] > inl fn = join fn
00:02:11 #5468 [Verbose] > inl ar = join ar
00:02:11 #5469 [Verbose] > !\($'"!ar.into_iter().filter(|x| !fn(x.clone().clone())).collect()"')
00:02:11 #5470 [Verbose] >
00:02:11 #5471 [Verbose] > ╭─[ 333.73ms - stdout ]────────────────────────────────────────────────────────╮
00:02:11 #5472 [Verbose] > │ () │
00:02:11 #5473 [Verbose] > │ │
00:02:11 #5474 [Verbose] > │ │
00:02:11 #5475 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:11 #5476 [Verbose] >
00:02:11 #5477 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:11 #5478 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:11 #5479 [Verbose] > │ ## enumerate │
00:02:11 #5480 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:11 #5481 [Verbose] >
00:02:11 #5482 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:11 #5483 [Verbose] > inl enumerate forall dim {int; number} t. (ar : a dim t) : a dim (unativeint *
00:02:11 #5484 [Verbose] > t) =
00:02:11 #5485 [Verbose] > inl (a ar) = ar
00:02:11 #5486 [Verbose] > inl ar = ar |> to_vec
00:02:11 #5487 [Verbose] > !\($'"!ar.into_iter().enumerate().map(std::rc::Rc::new).collect()"')
00:02:11 #5488 [Verbose] > |> vec_map from_pair
00:02:11 #5489 [Verbose] > |> from_vec
00:02:11 #5490 [Verbose] >
00:02:11 #5491 [Verbose] > ╭─[ 204.67ms - stdout ]────────────────────────────────────────────────────────╮
00:02:11 #5492 [Verbose] > │ () │
00:02:11 #5493 [Verbose] > │ │
00:02:11 #5494 [Verbose] > │ │
00:02:11 #5495 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:11 #5496 [Verbose] >
00:02:11 #5497 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:11 #5498 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:11 #5499 [Verbose] > │ ## slice' │
00:02:11 #5500 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:11 #5501 [Verbose] >
00:02:11 #5502 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:11 #5503 [Verbose] > inl slice' forall dim el. (x : option el) : slice' el dim =
00:02:11 #5504 [Verbose] > match x with
00:02:11 #5505 [Verbose] > | Some x => !\($'"[[!x]]"')
00:02:11 #5506 [Verbose] > | None =>
00:02:11 #5507 [Verbose] > !\($'"[[\\\"\\\".to_string()]]"') : slice' el dim
00:02:11 #5508 [Verbose] > // emit_expr `(()) `(slice' el dim) () ($'"[[@dim]]"' : string) :
00:02:11 #5509 [Verbose] > slice' el 10
00:02:11 #5510 [Verbose] > // !\( : string) : slice' el i32 // !\($'"[[]]"')
00:02:12 #5511 [Verbose] >
00:02:12 #5512 [Verbose] > ╭─[ 280.22ms - stdout ]────────────────────────────────────────────────────────╮
00:02:12 #5513 [Verbose] > │ () │
00:02:12 #5514 [Verbose] > │ │
00:02:12 #5515 [Verbose] > │ │
00:02:12 #5516 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:12 #5517 [Verbose] >
00:02:12 #5518 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:12 #5519 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:12 #5520 [Verbose] > │ ## as_slice │
00:02:12 #5521 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:12 #5522 [Verbose] >
00:02:12 #5523 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:12 #5524 [Verbose] > inl as_slice forall t. (x : array_base t) : rust.ref' (slice t) =
00:02:12 #5525 [Verbose] > inl x = x |> to_vec
00:02:12 #5526 [Verbose] > !\($'"!x.as_slice()"')
00:02:12 #5527 [Verbose] >
00:02:12 #5528 [Verbose] > ╭─[ 237.70ms - stdout ]────────────────────────────────────────────────────────╮
00:02:12 #5529 [Verbose] > │ () │
00:02:12 #5530 [Verbose] > │ │
00:02:12 #5531 [Verbose] > │ │
00:02:12 #5532 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:13 #5533 [Verbose] > [NbConvertApp] Converting notebook am'.dib.ipynb to html
00:02:13 #5534 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:02:13 #5535 [Verbose] > validate(nb)
00:02:14 #5536 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:02:14 #5537 [Verbose] > return _pygments_highlight(
00:02:14 #5538 [Verbose] > [NbConvertApp] Writing 384950 bytes to am'.dib.html
00:02:15 #5539 [Debug] executeAsync / exitCode: 0 / output.Length: 88639
00:02:15 #5540 [Debug] main / executeCommand / exitCode: 0
00:02:15 #5541 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 \"sm'.dib\" -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:02:17 #5542 [Verbose] >
00:02:17 #5543 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:17 #5544 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:17 #5545 [Verbose] > │ # sm' │
00:02:17 #5546 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:17 #5547 [Verbose] >
00:02:17 #5548 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:17 #5549 [Verbose] > // // test
00:02:17 #5550 [Verbose] >
00:02:17 #5551 [Verbose] > open testing
00:02:21 #5552 [Verbose] >
00:02:21 #5553 [Verbose] > ╭─[ 3.52s - stdout ]───────────────────────────────────────────────────────────╮
00:02:21 #5554 [Verbose] > │ () │
00:02:21 #5555 [Verbose] > │ │
00:02:21 #5556 [Verbose] > │ │
00:02:21 #5557 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:21 #5558 [Verbose] >
00:02:21 #5559 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:21 #5560 [Verbose] > open rust_operators
00:02:21 #5561 [Verbose] >
00:02:21 #5562 [Verbose] > ╭─[ 248.09ms - stdout ]────────────────────────────────────────────────────────╮
00:02:21 #5563 [Verbose] > │ () │
00:02:21 #5564 [Verbose] > │ │
00:02:21 #5565 [Verbose] > │ │
00:02:21 #5566 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:21 #5567 [Verbose] >
00:02:21 #5568 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:21 #5569 [Verbose] > inl types () =
00:02:21 #5570 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"str\")>]] type Str = class
00:02:21 #5571 [Verbose] > end"
00:02:21 #5572 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"base64::DecodeError\")>]]
00:02:21 #5573 [Verbose] > type base64_DecodeError = class end"
00:02:21 #5574 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"borsh::io::Error\")>]] type
00:02:21 #5575 [Verbose] > borsh_io_Error = class end"
00:02:21 #5576 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"js_sys::JsString\")>]] type
00:02:21 #5577 [Verbose] > js_sys_JsString = class end"
00:02:21 #5578 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"serde_json::Error\")>]] type
00:02:21 #5579 [Verbose] > serde_json_Error = class end"
00:02:21 #5580 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"serde_json::Value\")>]] type
00:02:21 #5581 [Verbose] > serde_json_Value = class end"
00:02:21 #5582 [Verbose] > global "[[<Fable.Core.Erase;
00:02:21 #5583 [Verbose] > Fable.Core.Emit(\"serde_wasm_bindgen::Error\")>]] type serde_wasm_bindgen_Error
00:02:21 #5584 [Verbose] > = class end"
00:02:21 #5585 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::str::Utf8Error\")>]]
00:02:21 #5586 [Verbose] > type std_str_Utf8Error = class end"
00:02:21 #5587 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::string::String\")>]]
00:02:21 #5588 [Verbose] > type std_string_String = class end"
00:02:21 #5589 [Verbose] >
00:02:21 #5590 [Verbose] > ╭─[ 321.36ms - stdout ]────────────────────────────────────────────────────────╮
00:02:21 #5591 [Verbose] > │ () │
00:02:21 #5592 [Verbose] > │ │
00:02:21 #5593 [Verbose] > │ │
00:02:21 #5594 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:21 #5595 [Verbose] >
00:02:21 #5596 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:21 #5597 [Verbose] > // // test
00:02:21 #5598 [Verbose] >
00:02:21 #5599 [Verbose] > inl types () =
00:02:21 #5600 [Verbose] > rust.types ()
00:02:21 #5601 [Verbose] > types ()
00:02:22 #5602 [Verbose] >
00:02:22 #5603 [Verbose] > ╭─[ 248.29ms - stdout ]────────────────────────────────────────────────────────╮
00:02:22 #5604 [Verbose] > │ () │
00:02:22 #5605 [Verbose] > │ │
00:02:22 #5606 [Verbose] > │ │
00:02:22 #5607 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:22 #5608 [Verbose] >
00:02:22 #5609 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:22 #5610 [Verbose] > nominal base64_decode_error = $"base64_DecodeError"
00:02:22 #5611 [Verbose] > nominal borsh_io_error = $"borsh_io_Error"
00:02:22 #5612 [Verbose] > nominal utf8_error = $"std_str_Utf8Error"
00:02:22 #5613 [Verbose] > nominal json_value = $"serde_json_Value"
00:02:22 #5614 [Verbose] > nominal json_error = $"serde_json_Error"
00:02:22 #5615 [Verbose] > nominal serde_wasm_bindgen_error = $"serde_wasm_bindgen_Error"
00:02:22 #5616 [Verbose] > nominal std_string = $"std_string_String"
00:02:22 #5617 [Verbose] > nominal js_string = $"js_sys_JsString"
00:02:22 #5618 [Verbose] > nominal str = $"Str"
00:02:22 #5619 [Verbose] >
00:02:22 #5620 [Verbose] > ╭─[ 236.06ms - stdout ]────────────────────────────────────────────────────────╮
00:02:22 #5621 [Verbose] > │ () │
00:02:22 #5622 [Verbose] > │ │
00:02:22 #5623 [Verbose] > │ │
00:02:22 #5624 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:22 #5625 [Verbose] >
00:02:22 #5626 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:22 #5627 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:22 #5628 [Verbose] > │ ## contains │
00:02:22 #5629 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:22 #5630 [Verbose] >
00:02:22 #5631 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:22 #5632 [Verbose] > inl contains (value : string) (s : string) : bool =
00:02:22 #5633 [Verbose] > $"!s.Contains !value"
00:02:22 #5634 [Verbose] >
00:02:22 #5635 [Verbose] > ╭─[ 239.89ms - stdout ]────────────────────────────────────────────────────────╮
00:02:22 #5636 [Verbose] > │ () │
00:02:22 #5637 [Verbose] > │ │
00:02:22 #5638 [Verbose] > │ │
00:02:22 #5639 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:22 #5640 [Verbose] >
00:02:22 #5641 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:22 #5642 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:22 #5643 [Verbose] > │ ## ends_with │
00:02:22 #5644 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:22 #5645 [Verbose] >
00:02:22 #5646 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:22 #5647 [Verbose] > inl ends_with (value : string) (s : string) : bool =
00:02:22 #5648 [Verbose] > $"!s.EndsWith !value"
00:02:22 #5649 [Verbose] >
00:02:22 #5650 [Verbose] > ╭─[ 300.29ms - stdout ]────────────────────────────────────────────────────────╮
00:02:22 #5651 [Verbose] > │ () │
00:02:22 #5652 [Verbose] > │ │
00:02:22 #5653 [Verbose] > │ │
00:02:22 #5654 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:22 #5655 [Verbose] >
00:02:22 #5656 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:22 #5657 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:22 #5658 [Verbose] > │ ## pad_left │
00:02:22 #5659 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:22 #5660 [Verbose] >
00:02:22 #5661 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:22 #5662 [Verbose] > inl pad_left (total_width : i32) (padding_char : char) (s : string) : string =
00:02:22 #5663 [Verbose] > $"!s.PadLeft (!total_width, !padding_char)"
00:02:23 #5664 [Verbose] >
00:02:23 #5665 [Verbose] > ╭─[ 250.74ms - stdout ]────────────────────────────────────────────────────────╮
00:02:23 #5666 [Verbose] > │ () │
00:02:23 #5667 [Verbose] > │ │
00:02:23 #5668 [Verbose] > │ │
00:02:23 #5669 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:23 #5670 [Verbose] >
00:02:23 #5671 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:23 #5672 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:23 #5673 [Verbose] > │ ## pad_right │
00:02:23 #5674 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:23 #5675 [Verbose] >
00:02:23 #5676 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:23 #5677 [Verbose] > inl pad_right (pad : i32) (s : string) : string =
00:02:23 #5678 [Verbose] > $"!s.PadRight !pad"
00:02:23 #5679 [Verbose] >
00:02:23 #5680 [Verbose] > ╭─[ 253.20ms - stdout ]────────────────────────────────────────────────────────╮
00:02:23 #5681 [Verbose] > │ () │
00:02:23 #5682 [Verbose] > │ │
00:02:23 #5683 [Verbose] > │ │
00:02:23 #5684 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:23 #5685 [Verbose] >
00:02:23 #5686 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:23 #5687 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:23 #5688 [Verbose] > │ ## replace │
00:02:23 #5689 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:23 #5690 [Verbose] >
00:02:23 #5691 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:23 #5692 [Verbose] > inl replace (old_value : string) (new_value : string) (s : string) : string =
00:02:23 #5693 [Verbose] > $"!s.Replace (!old_value, !new_value)"
00:02:23 #5694 [Verbose] >
00:02:23 #5695 [Verbose] > ╭─[ 257.86ms - stdout ]────────────────────────────────────────────────────────╮
00:02:23 #5696 [Verbose] > │ () │
00:02:23 #5697 [Verbose] > │ │
00:02:23 #5698 [Verbose] > │ │
00:02:23 #5699 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:23 #5700 [Verbose] >
00:02:23 #5701 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:23 #5702 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:23 #5703 [Verbose] > │ ## starts_with │
00:02:23 #5704 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:23 #5705 [Verbose] >
00:02:23 #5706 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:23 #5707 [Verbose] > inl starts_with (value : string) (s : string) : bool =
00:02:23 #5708 [Verbose] > $"!s.StartsWith !value"
00:02:24 #5709 [Verbose] >
00:02:24 #5710 [Verbose] > ╭─[ 323.38ms - stdout ]────────────────────────────────────────────────────────╮
00:02:24 #5711 [Verbose] > │ () │
00:02:24 #5712 [Verbose] > │ │
00:02:24 #5713 [Verbose] > │ │
00:02:24 #5714 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:24 #5715 [Verbose] >
00:02:24 #5716 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:24 #5717 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:24 #5718 [Verbose] > │ ## substring │
00:02:24 #5719 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:24 #5720 [Verbose] >
00:02:24 #5721 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:24 #5722 [Verbose] > inl substring (start : i32) (len : i32) (str : string) : string =
00:02:24 #5723 [Verbose] > $"!str.Substring (!start, !len)"
00:02:24 #5724 [Verbose] >
00:02:24 #5725 [Verbose] > ╭─[ 277.88ms - stdout ]────────────────────────────────────────────────────────╮
00:02:24 #5726 [Verbose] > │ () │
00:02:24 #5727 [Verbose] > │ │
00:02:24 #5728 [Verbose] > │ │
00:02:24 #5729 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:24 #5730 [Verbose] >
00:02:24 #5731 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:24 #5732 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:24 #5733 [Verbose] > │ ## to_lower │
00:02:24 #5734 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:24 #5735 [Verbose] >
00:02:24 #5736 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:24 #5737 [Verbose] > inl to_lower (input : string) : string =
00:02:24 #5738 [Verbose] > $"!input.ToLower ()"
00:02:24 #5739 [Verbose] >
00:02:24 #5740 [Verbose] > ╭─[ 286.91ms - stdout ]────────────────────────────────────────────────────────╮
00:02:24 #5741 [Verbose] > │ () │
00:02:24 #5742 [Verbose] > │ │
00:02:24 #5743 [Verbose] > │ │
00:02:24 #5744 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:24 #5745 [Verbose] >
00:02:24 #5746 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:24 #5747 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:24 #5748 [Verbose] > │ ## to_upper │
00:02:24 #5749 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:24 #5750 [Verbose] >
00:02:24 #5751 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:24 #5752 [Verbose] > inl to_upper (input : string) : string =
00:02:24 #5753 [Verbose] > $"!input.ToUpper ()"
00:02:24 #5754 [Verbose] >
00:02:24 #5755 [Verbose] > ╭─[ 240.41ms - stdout ]────────────────────────────────────────────────────────╮
00:02:24 #5756 [Verbose] > │ () │
00:02:24 #5757 [Verbose] > │ │
00:02:24 #5758 [Verbose] > │ │
00:02:24 #5759 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:24 #5760 [Verbose] >
00:02:24 #5761 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:24 #5762 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:24 #5763 [Verbose] > │ ## trim │
00:02:24 #5764 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:24 #5765 [Verbose] >
00:02:24 #5766 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:24 #5767 [Verbose] > inl trim (input : string) : string =
00:02:24 #5768 [Verbose] > $"!input.Trim ()"
00:02:25 #5769 [Verbose] >
00:02:25 #5770 [Verbose] > ╭─[ 256.43ms - stdout ]────────────────────────────────────────────────────────╮
00:02:25 #5771 [Verbose] > │ () │
00:02:25 #5772 [Verbose] > │ │
00:02:25 #5773 [Verbose] > │ │
00:02:25 #5774 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:25 #5775 [Verbose] >
00:02:25 #5776 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:25 #5777 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:25 #5778 [Verbose] > │ ## trim_end │
00:02:25 #5779 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:25 #5780 [Verbose] >
00:02:25 #5781 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:25 #5782 [Verbose] > inl trim_end (trim_chars : array_base char) (input : string) : string =
00:02:25 #5783 [Verbose] > $"!input.TrimEnd !trim_chars"
00:02:25 #5784 [Verbose] >
00:02:25 #5785 [Verbose] > ╭─[ 244.09ms - stdout ]────────────────────────────────────────────────────────╮
00:02:25 #5786 [Verbose] > │ () │
00:02:25 #5787 [Verbose] > │ │
00:02:25 #5788 [Verbose] > │ │
00:02:25 #5789 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:25 #5790 [Verbose] >
00:02:25 #5791 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:25 #5792 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:25 #5793 [Verbose] > │ ## trim_start │
00:02:25 #5794 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:25 #5795 [Verbose] >
00:02:25 #5796 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:25 #5797 [Verbose] > inl trim_start (trim_chars : array_base char) (input : string) : string =
00:02:25 #5798 [Verbose] > $"!input.TrimStart !trim_chars"
00:02:25 #5799 [Verbose] >
00:02:25 #5800 [Verbose] > ╭─[ 254.55ms - stdout ]────────────────────────────────────────────────────────╮
00:02:25 #5801 [Verbose] > │ () │
00:02:25 #5802 [Verbose] > │ │
00:02:25 #5803 [Verbose] > │ │
00:02:25 #5804 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:25 #5805 [Verbose] >
00:02:25 #5806 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:25 #5807 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:25 #5808 [Verbose] > │ ## slice │
00:02:25 #5809 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:25 #5810 [Verbose] >
00:02:25 #5811 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:25 #5812 [Verbose] > inl slice from to s : string =
00:02:25 #5813 [Verbose] > sm.slice s { from to }
00:02:25 #5814 [Verbose] >
00:02:25 #5815 [Verbose] > ╭─[ 265.11ms - stdout ]────────────────────────────────────────────────────────╮
00:02:25 #5816 [Verbose] > │ () │
00:02:25 #5817 [Verbose] > │ │
00:02:25 #5818 [Verbose] > │ │
00:02:25 #5819 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:25 #5820 [Verbose] >
00:02:25 #5821 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:25 #5822 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:25 #5823 [Verbose] > │ ## raw_string_literal │
00:02:25 #5824 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:25 #5825 [Verbose] >
00:02:25 #5826 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:25 #5827 [Verbose] > inl raw_string_literal (s : string) : rust.ref' str =
00:02:25 #5828 [Verbose] > !\($"\"r#\\\"\" + !s + \"\\\"#\"")
00:02:26 #5829 [Verbose] >
00:02:26 #5830 [Verbose] > ╭─[ 244.16ms - stdout ]────────────────────────────────────────────────────────╮
00:02:26 #5831 [Verbose] > │ () │
00:02:26 #5832 [Verbose] > │ │
00:02:26 #5833 [Verbose] > │ │
00:02:26 #5834 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:26 #5835 [Verbose] >
00:02:26 #5836 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:26 #5837 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:26 #5838 [Verbose] > │ ## raw_string_literal_static │
00:02:26 #5839 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:26 #5840 [Verbose] >
00:02:26 #5841 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:26 #5842 [Verbose] > inl raw_string_literal_static (s : string) : rust.static_ref' str =
00:02:26 #5843 [Verbose] > !\($"\"r#\\\"\" + !s + \"\\\"#\"")
00:02:26 #5844 [Verbose] >
00:02:26 #5845 [Verbose] > ╭─[ 261.62ms - stdout ]────────────────────────────────────────────────────────╮
00:02:26 #5846 [Verbose] > │ () │
00:02:26 #5847 [Verbose] > │ │
00:02:26 #5848 [Verbose] > │ │
00:02:26 #5849 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:26 #5850 [Verbose] >
00:02:26 #5851 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:26 #5852 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:26 #5853 [Verbose] > │ ## include_str │
00:02:26 #5854 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:26 #5855 [Verbose] >
00:02:26 #5856 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:26 #5857 [Verbose] > inl include_str (path : string) : rust.ref' str =
00:02:26 #5858 [Verbose] > !\($'"include_str\!(\\\"" + !path + "\\\")"')
00:02:26 #5859 [Verbose] >
00:02:26 #5860 [Verbose] > ╭─[ 261.32ms - stdout ]────────────────────────────────────────────────────────╮
00:02:26 #5861 [Verbose] > │ () │
00:02:26 #5862 [Verbose] > │ │
00:02:26 #5863 [Verbose] > │ │
00:02:26 #5864 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:26 #5865 [Verbose] >
00:02:26 #5866 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:26 #5867 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:26 #5868 [Verbose] > │ ## as_str │
00:02:26 #5869 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:26 #5870 [Verbose] >
00:02:26 #5871 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:26 #5872 [Verbose] > inl as_str (s : string) : rust.ref' str =
00:02:26 #5873 [Verbose] > inl s = join s
00:02:26 #5874 [Verbose] > !\($'$"fable_library_rust::String_::LrcStr::as_str(&!s)"')
00:02:26 #5875 [Verbose] >
00:02:26 #5876 [Verbose] > ╭─[ 332.61ms - stdout ]────────────────────────────────────────────────────────╮
00:02:26 #5877 [Verbose] > │ () │
00:02:26 #5878 [Verbose] > │ │
00:02:26 #5879 [Verbose] > │ │
00:02:26 #5880 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:26 #5881 [Verbose] >
00:02:26 #5882 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:26 #5883 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:26 #5884 [Verbose] > │ ## from_std_string │
00:02:26 #5885 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:26 #5886 [Verbose] >
00:02:26 #5887 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:26 #5888 [Verbose] > inl from_std_string (str : std_string) : string =
00:02:26 #5889 [Verbose] > inl str = join str
00:02:26 #5890 [Verbose] > !\($'"fable_library_rust::String_::fromString(!str)"')
00:02:27 #5891 [Verbose] >
00:02:27 #5892 [Verbose] > ╭─[ 256.59ms - stdout ]────────────────────────────────────────────────────────╮
00:02:27 #5893 [Verbose] > │ () │
00:02:27 #5894 [Verbose] > │ │
00:02:27 #5895 [Verbose] > │ │
00:02:27 #5896 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:27 #5897 [Verbose] >
00:02:27 #5898 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:27 #5899 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:27 #5900 [Verbose] > │ ## ref_to_std_string │
00:02:27 #5901 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:27 #5902 [Verbose] >
00:02:27 #5903 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:27 #5904 [Verbose] > inl ref_to_std_string (str : rust.ref' str) : std_string =
00:02:27 #5905 [Verbose] > !\($'"String::from(!str)"')
00:02:27 #5906 [Verbose] >
00:02:27 #5907 [Verbose] > ╭─[ 326.18ms - stdout ]────────────────────────────────────────────────────────╮
00:02:27 #5908 [Verbose] > │ () │
00:02:27 #5909 [Verbose] > │ │
00:02:27 #5910 [Verbose] > │ │
00:02:27 #5911 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:27 #5912 [Verbose] >
00:02:27 #5913 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:27 #5914 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:27 #5915 [Verbose] > │ ## to_std_string │
00:02:27 #5916 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:27 #5917 [Verbose] >
00:02:27 #5918 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:27 #5919 [Verbose] > inl to_std_string (s : string) : std_string =
00:02:27 #5920 [Verbose] > inl s = join s
00:02:27 #5921 [Verbose] > s |> as_str |> ref_to_std_string
00:02:27 #5922 [Verbose] >
00:02:27 #5923 [Verbose] > ╭─[ 248.02ms - stdout ]────────────────────────────────────────────────────────╮
00:02:27 #5924 [Verbose] > │ () │
00:02:27 #5925 [Verbose] > │ │
00:02:27 #5926 [Verbose] > │ │
00:02:27 #5927 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:27 #5928 [Verbose] >
00:02:27 #5929 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:27 #5930 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:27 #5931 [Verbose] > │ ## as_str_std │
00:02:27 #5932 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:27 #5933 [Verbose] >
00:02:27 #5934 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:27 #5935 [Verbose] > inl as_str_std (s : std_string) : rust.ref' str =
00:02:27 #5936 [Verbose] > inl s = join s
00:02:27 #5937 [Verbose] > !\($'"!s.as_str()"')
00:02:28 #5938 [Verbose] >
00:02:28 #5939 [Verbose] > ╭─[ 241.36ms - stdout ]────────────────────────────────────────────────────────╮
00:02:28 #5940 [Verbose] > │ () │
00:02:28 #5941 [Verbose] > │ │
00:02:28 #5942 [Verbose] > │ │
00:02:28 #5943 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:28 #5944 [Verbose] >
00:02:28 #5945 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:28 #5946 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:28 #5947 [Verbose] > │ ## into_boxed_str │
00:02:28 #5948 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:28 #5949 [Verbose] >
00:02:28 #5950 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:28 #5951 [Verbose] > inl into_boxed_str (s : std_string) : rust.box str =
00:02:28 #5952 [Verbose] > !\($'"!s.into_boxed_str()"')
00:02:28 #5953 [Verbose] >
00:02:28 #5954 [Verbose] > ╭─[ 268.67ms - stdout ]────────────────────────────────────────────────────────╮
00:02:28 #5955 [Verbose] > │ () │
00:02:28 #5956 [Verbose] > │ │
00:02:28 #5957 [Verbose] > │ │
00:02:28 #5958 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:28 #5959 [Verbose] >
00:02:28 #5960 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:28 #5961 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:28 #5962 [Verbose] > │ ## format' │
00:02:28 #5963 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:28 #5964 [Verbose] >
00:02:28 #5965 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:28 #5966 [Verbose] > inl format' x : std_string =
00:02:28 #5967 [Verbose] > !\\(x, $'@@$"format\!(""{{}}"", $0)"')
00:02:28 #5968 [Verbose] >
00:02:28 #5969 [Verbose] > ╭─[ 247.25ms - stdout ]────────────────────────────────────────────────────────╮
00:02:28 #5970 [Verbose] > │ () │
00:02:28 #5971 [Verbose] > │ │
00:02:28 #5972 [Verbose] > │ │
00:02:28 #5973 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:28 #5974 [Verbose] >
00:02:28 #5975 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:28 #5976 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:28 #5977 [Verbose] > │ ## format_debug │
00:02:28 #5978 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:28 #5979 [Verbose] >
00:02:28 #5980 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:28 #5981 [Verbose] > inl format_debug x : string =
00:02:28 #5982 [Verbose] > $'$"%A{!x}"'
00:02:28 #5983 [Verbose] >
00:02:28 #5984 [Verbose] > ╭─[ 303.63ms - stdout ]────────────────────────────────────────────────────────╮
00:02:28 #5985 [Verbose] > │ () │
00:02:28 #5986 [Verbose] > │ │
00:02:28 #5987 [Verbose] > │ │
00:02:28 #5988 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:28 #5989 [Verbose] >
00:02:28 #5990 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:28 #5991 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:28 #5992 [Verbose] > │ ## format_debug' │
00:02:28 #5993 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:28 #5994 [Verbose] >
00:02:28 #5995 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:28 #5996 [Verbose] > inl format_debug' x : std_string =
00:02:28 #5997 [Verbose] > !\\(x, $'@@$"format\!(""{{:?}}"", $0)"')
00:02:29 #5998 [Verbose] >
00:02:29 #5999 [Verbose] > ╭─[ 265.91ms - stdout ]────────────────────────────────────────────────────────╮
00:02:29 #6000 [Verbose] > │ () │
00:02:29 #6001 [Verbose] > │ │
00:02:29 #6002 [Verbose] > │ │
00:02:29 #6003 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:29 #6004 [Verbose] >
00:02:29 #6005 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:29 #6006 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:29 #6007 [Verbose] > │ ## format_pretty' │
00:02:29 #6008 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:29 #6009 [Verbose] >
00:02:29 #6010 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:29 #6011 [Verbose] > inl format_pretty' x : std_string =
00:02:29 #6012 [Verbose] > !\\(x, $'@@$"format\!(""{{:#?}}"", $0)"')
00:02:29 #6013 [Verbose] >
00:02:29 #6014 [Verbose] > ╭─[ 240.47ms - stdout ]────────────────────────────────────────────────────────╮
00:02:29 #6015 [Verbose] > │ () │
00:02:29 #6016 [Verbose] > │ │
00:02:29 #6017 [Verbose] > │ │
00:02:29 #6018 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:29 #6019 [Verbose] >
00:02:29 #6020 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:29 #6021 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:29 #6022 [Verbose] > │ ## format_exception │
00:02:29 #6023 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:29 #6024 [Verbose] >
00:02:29 #6025 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:29 #6026 [Verbose] > inl format_exception (ex : exn) : string =
00:02:29 #6027 [Verbose] > run_target function
00:02:29 #6028 [Verbose] > | Fsharp (Native) => fun () => $'$"{!ex.GetType ()}: {!ex.Message}"'
00:02:29 #6029 [Verbose] > | _ => fun () => ex |> format_debug
00:02:29 #6030 [Verbose] >
00:02:29 #6031 [Verbose] > ╭─[ 297.25ms - stdout ]────────────────────────────────────────────────────────╮
00:02:29 #6032 [Verbose] > │ () │
00:02:29 #6033 [Verbose] > │ │
00:02:29 #6034 [Verbose] > │ │
00:02:29 #6035 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:29 #6036 [Verbose] >
00:02:29 #6037 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:29 #6038 [Verbose] > // // test
00:02:29 #6039 [Verbose] >
00:02:29 #6040 [Verbose] > fun () => failwith "test"
00:02:29 #6041 [Verbose] > |> _throws
00:02:29 #6042 [Verbose] > |> optionm.map sm'.format_exception
00:02:29 #6043 [Verbose] > |> _assert_eq (Some "System.Exception: test")
00:02:31 #6044 [Verbose] >
00:02:31 #6045 [Verbose] > ╭─[ 1.36s - stdout ]───────────────────────────────────────────────────────────╮
00:02:31 #6046 [Verbose] > │ type [<Struct>] US0 = │
00:02:31 #6047 [Verbose] > │ | US0_0 │
00:02:31 #6048 [Verbose] > │ | US0_1 of f1_0 : exn │
00:02:31 #6049 [Verbose] > │ and [<Struct>] US1 = │
00:02:31 #6050 [Verbose] > │ | US1_0 │
00:02:31 #6051 [Verbose] > │ | US1_1 of f1_0 : string │
00:02:31 #6052 [Verbose] > │ let rec closure0 () () : unit = │
00:02:31 #6053 [Verbose] > │ failwith<unit> "test" │
00:02:31 #6054 [Verbose] > │ and closure1 () (v0 : exn) : US0 = │
00:02:31 #6055 [Verbose] > │ US0_1(v0) │
00:02:31 #6056 [Verbose] > │ and method1 (v0 : bool) : bool = │
00:02:31 #6057 [Verbose] > │ v0 │
00:02:31 #6058 [Verbose] > │ and method0 () : unit = │
00:02:31 #6059 [Verbose] > │ let v0 : (unit -> unit) = closure0() │
00:02:31 #6060 [Verbose] > │ let v1 : US0 = US0_0 │
00:02:31 #6061 [Verbose] > │ let v2 : (exn -> US0) = closure1() │
00:02:31 #6062 [Verbose] > │ let v3 : US0 = try v0 (); v1 with ex -> ex |> v2 │
00:02:31 #6063 [Verbose] > │ let v14 : US1 = │
00:02:31 #6064 [Verbose] > │ match v3 with │
00:02:31 #6065 [Verbose] > │ | US0_0 -> (* None *) │
00:02:31 #6066 [Verbose] > │ US1_0 │
00:02:31 #6067 [Verbose] > │ | US0_1(v4) -> (* Some *) │
00:02:31 #6068 [Verbose] > │ let mutable result = None │
00:02:31 #6069 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:02:31 #6070 [Verbose] > │ let v5 : string = $"%A{v4}" │
00:02:31 #6071 [Verbose] > │ v5 │
00:02:31 #6072 [Verbose] > │ #endif │
00:02:31 #6073 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:02:31 #6074 [Verbose] > │ let v6 : string = $"%A{v4}" │
00:02:31 #6075 [Verbose] > │ v6 │
00:02:31 #6076 [Verbose] > │ #endif │
00:02:31 #6077 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:02:31 #6078 [Verbose] > │ let v7 : string = $"{v4.GetType ()}: {v4.Message}" │
00:02:31 #6079 [Verbose] > │ v7 │
00:02:31 #6080 [Verbose] > │ #endif │
00:02:31 #6081 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:02:31 #6082 [Verbose] > │ let v8 : string = $"%A{v4}" │
00:02:31 #6083 [Verbose] > │ v8 │
00:02:31 #6084 [Verbose] > │ #endif │
00:02:31 #6085 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:02:31 #6086 [Verbose] > │ let v9 : string = $"%A{v4}" │
00:02:31 #6087 [Verbose] > │ v9 │
00:02:31 #6088 [Verbose] > │ #endif │
00:02:31 #6089 [Verbose] > │ |> fun x -> result <- Some x │
00:02:31 #6090 [Verbose] > │ let v10 : string = result |> Option.get │
00:02:31 #6091 [Verbose] > │ US1_1(v10) │
00:02:31 #6092 [Verbose] > │ let v15 : string = $"%A{v14}" │
00:02:31 #6093 [Verbose] > │ System.Console.WriteLine v15 │
00:02:31 #6094 [Verbose] > │ let v20 : bool = │
00:02:31 #6095 [Verbose] > │ match v14 with │
00:02:31 #6096 [Verbose] > │ | US1_1(v18) -> (* Some *) │
00:02:31 #6097 [Verbose] > │ let v19 : bool = v18 = "System.Exception: test" │
00:02:31 #6098 [Verbose] > │ v19 │
00:02:31 #6099 [Verbose] > │ | _ -> │
00:02:31 #6100 [Verbose] > │ false │
00:02:31 #6101 [Verbose] > │ let v22 : bool = │
00:02:31 #6102 [Verbose] > │ if v20 then │
00:02:31 #6103 [Verbose] > │ true │
00:02:31 #6104 [Verbose] > │ else │
00:02:31 #6105 [Verbose] > │ method1(v20) │
00:02:31 #6106 [Verbose] > │ let v23 : string = "System.Exception: test" │
00:02:31 #6107 [Verbose] > │ let v24 : US1 = US1_1(v23) │
00:02:31 #6108 [Verbose] > │ let v25 : string = $"__expect / actual: %A{v14} / expected: %A{v24}" │
00:02:31 #6109 [Verbose] > │ let v26 : bool = v22 = false │
00:02:31 #6110 [Verbose] > │ if v26 then │
00:02:31 #6111 [Verbose] > │ failwith<unit> v25 │
00:02:31 #6112 [Verbose] > │ method0() │
00:02:31 #6113 [Verbose] > │ │
00:02:31 #6114 [Verbose] > │ US1_1 "System.Exception: test" │
00:02:31 #6115 [Verbose] > │ │
00:02:31 #6116 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:31 #6117 [Verbose] >
00:02:31 #6118 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:31 #6119 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:31 #6120 [Verbose] > │ ## obj_to_string │
00:02:31 #6121 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:31 #6122 [Verbose] >
00:02:31 #6123 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:31 #6124 [Verbose] > inl obj_to_string x : string =
00:02:31 #6125 [Verbose] > x |> $'_.ToString()'
00:02:31 #6126 [Verbose] >
00:02:31 #6127 [Verbose] > ╭─[ 299.44ms - stdout ]────────────────────────────────────────────────────────╮
00:02:31 #6128 [Verbose] > │ () │
00:02:31 #6129 [Verbose] > │ │
00:02:31 #6130 [Verbose] > │ │
00:02:31 #6131 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:31 #6132 [Verbose] >
00:02:31 #6133 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:31 #6134 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:31 #6135 [Verbose] > │ ## to_string any │
00:02:31 #6136 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:31 #6137 [Verbose] >
00:02:31 #6138 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:31 #6139 [Verbose] > instance to_string any =
00:02:31 #6140 [Verbose] > obj_to_string
00:02:31 #6141 [Verbose] >
00:02:31 #6142 [Verbose] > ╭─[ 279.23ms - stdout ]────────────────────────────────────────────────────────╮
00:02:31 #6143 [Verbose] > │ () │
00:02:31 #6144 [Verbose] > │ │
00:02:31 #6145 [Verbose] > │ │
00:02:31 #6146 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:31 #6147 [Verbose] >
00:02:31 #6148 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:31 #6149 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:31 #6150 [Verbose] > │ ## to_string result t u │
00:02:31 #6151 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:31 #6152 [Verbose] >
00:02:31 #6153 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:31 #6154 [Verbose] > instance to_string result t u = fun x =>
00:02:31 #6155 [Verbose] > real
00:02:31 #6156 [Verbose] > open rust
00:02:31 #6157 [Verbose] > typecase (t * u) with
00:02:31 #6158 [Verbose] > | string * string =>
00:02:31 #6159 [Verbose] > match x with
00:02:31 #6160 [Verbose] > | Ok x => x
00:02:31 #6161 [Verbose] > | Error x => $'"Error: " + !x + ""' : string
00:02:31 #6162 [Verbose] > | std_string * std_string =>
00:02:31 #6163 [Verbose] > match x with
00:02:31 #6164 [Verbose] > | Ok x => from_std_string x
00:02:31 #6165 [Verbose] > | Error x => $'"Error: " + string !x + ""' : string
00:02:31 #6166 [Verbose] > | _ => obj_to_string `u x
00:02:32 #6167 [Verbose] >
00:02:32 #6168 [Verbose] > ╭─[ 309.79ms - stdout ]────────────────────────────────────────────────────────╮
00:02:32 #6169 [Verbose] > │ () │
00:02:32 #6170 [Verbose] > │ │
00:02:32 #6171 [Verbose] > │ │
00:02:32 #6172 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:32 #6173 [Verbose] >
00:02:32 #6174 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:32 #6175 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:32 #6176 [Verbose] > │ ## serialize │
00:02:32 #6177 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:32 #6178 [Verbose] >
00:02:32 #6179 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:32 #6180 [Verbose] > inl serialize forall t. (x : t) : resultm.result' std_string json_error =
00:02:32 #6181 [Verbose] > !\($'"serde_json::to_string(&!x)"')
00:02:32 #6182 [Verbose] >
00:02:32 #6183 [Verbose] > ╭─[ 307.42ms - stdout ]────────────────────────────────────────────────────────╮
00:02:32 #6184 [Verbose] > │ () │
00:02:32 #6185 [Verbose] > │ │
00:02:32 #6186 [Verbose] > │ │
00:02:32 #6187 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:32 #6188 [Verbose] >
00:02:32 #6189 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:32 #6190 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:32 #6191 [Verbose] > │ ## deserialize │
00:02:32 #6192 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:32 #6193 [Verbose] >
00:02:32 #6194 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:32 #6195 [Verbose] > inl deserialize forall t. (json : string) : resultm.result' t std_string =
00:02:32 #6196 [Verbose] > inl json = json |> as_str
00:02:32 #6197 [Verbose] > !\($'"serde_json::from_str(&!json)"')
00:02:32 #6198 [Verbose] > |> resultm.map_error' fun (x : json_error) => x |> format'
00:02:32 #6199 [Verbose] >
00:02:32 #6200 [Verbose] > ╭─[ 244.20ms - stdout ]────────────────────────────────────────────────────────╮
00:02:32 #6201 [Verbose] > │ () │
00:02:32 #6202 [Verbose] > │ │
00:02:32 #6203 [Verbose] > │ │
00:02:32 #6204 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:32 #6205 [Verbose] >
00:02:32 #6206 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:32 #6207 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:32 #6208 [Verbose] > │ ## borsh_deserialize │
00:02:32 #6209 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:32 #6210 [Verbose] >
00:02:32 #6211 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:32 #6212 [Verbose] > inl borsh_deserialize forall t. (data : array_base u8) : resultm.result' t
00:02:32 #6213 [Verbose] > std_string =
00:02:32 #6214 [Verbose] > inl data = data |> am'.as_slice
00:02:32 #6215 [Verbose] > !\($'"let mut !data = !data"')
00:02:32 #6216 [Verbose] > inl result = !\($'"borsh::BorshDeserialize::deserialize(&mut !data)"')
00:02:32 #6217 [Verbose] > result
00:02:32 #6218 [Verbose] > |> resultm.map_error' fun (x : borsh_io_error) => x |> format'
00:02:32 #6219 [Verbose] >
00:02:32 #6220 [Verbose] > ╭─[ 288.13ms - stdout ]────────────────────────────────────────────────────────╮
00:02:32 #6221 [Verbose] > │ () │
00:02:32 #6222 [Verbose] > │ │
00:02:32 #6223 [Verbose] > │ │
00:02:32 #6224 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:32 #6225 [Verbose] >
00:02:32 #6226 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:32 #6227 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:32 #6228 [Verbose] > │ ## deserialize_vec │
00:02:32 #6229 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:32 #6230 [Verbose] >
00:02:32 #6231 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:32 #6232 [Verbose] > inl deserialize_vec (value : json_value) : resultm.result' (am'.vec u8)
00:02:32 #6233 [Verbose] > std_string =
00:02:32 #6234 [Verbose] > inl value = join value
00:02:32 #6235 [Verbose] > !\($'"serde_json::from_value(!value)"')
00:02:32 #6236 [Verbose] > |> resultm.map_error' fun (x : json_error) => x |> format'
00:02:33 #6237 [Verbose] >
00:02:33 #6238 [Verbose] > ╭─[ 307.52ms - stdout ]────────────────────────────────────────────────────────╮
00:02:33 #6239 [Verbose] > │ () │
00:02:33 #6240 [Verbose] > │ │
00:02:33 #6241 [Verbose] > │ │
00:02:33 #6242 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:33 #6243 [Verbose] >
00:02:33 #6244 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:33 #6245 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:33 #6246 [Verbose] > │ ## encode_uri_component │
00:02:33 #6247 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:33 #6248 [Verbose] >
00:02:33 #6249 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:33 #6250 [Verbose] > inl encode_uri_component (s : std_string) : js_string =
00:02:33 #6251 [Verbose] > !\($'"js_sys::encode_uri_component(&!s)"')
00:02:33 #6252 [Verbose] >
00:02:33 #6253 [Verbose] > ╭─[ 279.44ms - stdout ]────────────────────────────────────────────────────────╮
00:02:33 #6254 [Verbose] > │ () │
00:02:33 #6255 [Verbose] > │ │
00:02:33 #6256 [Verbose] > │ │
00:02:33 #6257 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:33 #6258 [Verbose] >
00:02:33 #6259 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:33 #6260 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:33 #6261 [Verbose] > │ ## strip_prefix │
00:02:33 #6262 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:33 #6263 [Verbose] >
00:02:33 #6264 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:33 #6265 [Verbose] > inl strip_prefix (prefix : char) (s : std_string) : optionm'.option' (rust.ref'
00:02:33 #6266 [Verbose] > str) =
00:02:33 #6267 [Verbose] > inl s = join s
00:02:33 #6268 [Verbose] > !\($'"!s.strip_prefix(!prefix)"')
00:02:33 #6269 [Verbose] >
00:02:33 #6270 [Verbose] > ╭─[ 332.31ms - stdout ]────────────────────────────────────────────────────────╮
00:02:33 #6271 [Verbose] > │ () │
00:02:33 #6272 [Verbose] > │ │
00:02:33 #6273 [Verbose] > │ │
00:02:33 #6274 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:33 #6275 [Verbose] >
00:02:33 #6276 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:33 #6277 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:33 #6278 [Verbose] > │ ## base64_decode │
00:02:33 #6279 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:33 #6280 [Verbose] >
00:02:33 #6281 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:33 #6282 [Verbose] > inl base64_decode (s : std_string) : result std_string std_string =
00:02:33 #6283 [Verbose] > fun () =>
00:02:33 #6284 [Verbose] > inl s = join s
00:02:33 #6285 [Verbose] > inl bytes : resultm.result' (am'.vec u8) base64_decode_error =
00:02:33 #6286 [Verbose] >
00:02:33 #6287 [Verbose] > !\($'"base64::Engine::decode(&base64::engine::general_purpose::STANDARD, !s)"')
00:02:33 #6288 [Verbose] > inl bytes =
00:02:33 #6289 [Verbose] > bytes
00:02:33 #6290 [Verbose] > |> resultm.map_error' format'
00:02:33 #6291 [Verbose] > |> resultm.try'
00:02:33 #6292 [Verbose] > inl result : resultm.result' std_string utf8_error =
00:02:33 #6293 [Verbose] > !\($'"std::str::from_utf8(&!bytes).map(String::from)"')
00:02:33 #6294 [Verbose] > result
00:02:33 #6295 [Verbose] > |> resultm.map_error' format'
00:02:33 #6296 [Verbose] > |> fun x =>
00:02:33 #6297 [Verbose] > join x ()
00:02:33 #6298 [Verbose] > |> resultm.unbox
00:02:34 #6299 [Verbose] >
00:02:34 #6300 [Verbose] > ╭─[ 264.42ms - stdout ]────────────────────────────────────────────────────────╮
00:02:34 #6301 [Verbose] > │ () │
00:02:34 #6302 [Verbose] > │ │
00:02:34 #6303 [Verbose] > │ │
00:02:34 #6304 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:34 #6305 [Verbose] >
00:02:34 #6306 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:34 #6307 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:34 #6308 [Verbose] > │ ## concat_array_trailing │
00:02:34 #6309 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:34 #6310 [Verbose] >
00:02:34 #6311 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:34 #6312 [Verbose] > inl concat_array_trailing (separator : string) (input : a i32 string) =
00:02:34 #6313 [Verbose] > ("", input)
00:02:34 #6314 [Verbose] > ||> am.fold fun acc (x : string) =>
00:02:34 #6315 [Verbose] > $'!acc + !x + !separator + ""'
00:02:34 #6316 [Verbose] >
00:02:34 #6317 [Verbose] > ╭─[ 262.10ms - stdout ]────────────────────────────────────────────────────────╮
00:02:34 #6318 [Verbose] > │ () │
00:02:34 #6319 [Verbose] > │ │
00:02:34 #6320 [Verbose] > │ │
00:02:34 #6321 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:34 #6322 [Verbose] >
00:02:34 #6323 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:34 #6324 [Verbose] > // // test
00:02:34 #6325 [Verbose] > // // rust=
00:02:34 #6326 [Verbose] >
00:02:34 #6327 [Verbose] > ;[[
00:02:34 #6328 [Verbose] > "1"
00:02:34 #6329 [Verbose] > "2"
00:02:34 #6330 [Verbose] > "3"
00:02:34 #6331 [Verbose] > ]]
00:02:34 #6332 [Verbose] > |> fun x =>
00:02:34 #6333 [Verbose] > inl code = (a x : _ i32 _) |> concat_array_trailing "\n"
00:02:34 #6334 [Verbose] > code
00:02:34 #6335 [Verbose] > |> _assert_eq "1\n2\n3\n"
00:02:39 #6336 [Verbose] >
00:02:39 #6337 [Verbose] > ╭─[ 5.21s - return value ]─────────────────────────────────────────────────────╮
00:02:39 #6338 [Verbose] > │ .rs output: │
00:02:39 #6339 [Verbose] > │ "1 │
00:02:39 #6340 [Verbose] > │ 2 │
00:02:39 #6341 [Verbose] > │ 3 │
00:02:39 #6342 [Verbose] > │ " │
00:02:39 #6343 [Verbose] > │ │
00:02:39 #6344 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:39 #6345 [Verbose] >
00:02:39 #6346 [Verbose] > ╭─[ 5.22s - stdout ]───────────────────────────────────────────────────────────╮
00:02:39 #6347 [Verbose] > │ │
00:02:39 #6348 [Verbose] > │ .fsx: │
00:02:39 #6349 [Verbose] > │ type Mut0 = {mutable l0 : int32; mutable l1 : string} │
00:02:39 #6350 [Verbose] > │ let rec method1 (v0 : (string [])) : (string []) = │
00:02:39 #6351 [Verbose] > │ v0 │
00:02:39 #6352 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool = │
00:02:39 #6353 [Verbose] > │ let v2 : int32 = v1.l0 │
00:02:39 #6354 [Verbose] > │ let v3 : bool = v2 < v0 │
00:02:39 #6355 [Verbose] > │ v3 │
00:02:39 #6356 [Verbose] > │ and method3 (v0 : bool) : bool = │
00:02:39 #6357 [Verbose] > │ v0 │
00:02:39 #6358 [Verbose] > │ and method0 () : unit = │
00:02:39 #6359 [Verbose] > │ let v0 : string = "1" │
00:02:39 #6360 [Verbose] > │ let v1 : string = "2" │
00:02:39 #6361 [Verbose] > │ let v2 : string = "3" │
00:02:39 #6362 [Verbose] > │ let v3 : (string []) = [|v0; v1; v2|] │
00:02:39 #6363 [Verbose] > │ let v4 : (string []) = method1(v3) │
00:02:39 #6364 [Verbose] > │ let v5 : int32 = v4.Length │
00:02:39 #6365 [Verbose] > │ let v6 : string = "" │
00:02:39 #6366 [Verbose] > │ let v7 : Mut0 = {l0 = 0; l1 = v6} : Mut0 │
00:02:39 #6367 [Verbose] > │ while method2(v5, v7) do │
00:02:39 #6368 [Verbose] > │ let v9 : int32 = v7.l0 │
00:02:39 #6369 [Verbose] > │ let v10 : string = v7.l1 │
00:02:39 #6370 [Verbose] > │ let v11 : string = v4.[int v9] │
00:02:39 #6371 [Verbose] > │ let v12 : string = "\n" │
00:02:39 #6372 [Verbose] > │ let v13 : string = v10 + v11 + v12 + "" │
00:02:39 #6373 [Verbose] > │ let v14 : int32 = v9 + 1 │
00:02:39 #6374 [Verbose] > │ v7.l0 <- v14 │
00:02:39 #6375 [Verbose] > │ v7.l1 <- v13 │
00:02:39 #6376 [Verbose] > │ () │
00:02:39 #6377 [Verbose] > │ let v15 : string = v7.l1 │
00:02:39 #6378 [Verbose] > │ let v16 : string = $"%A{v15}" │
00:02:39 #6379 [Verbose] > │ System.Console.WriteLine v16 │
00:02:39 #6380 [Verbose] > │ let v18 : bool = v15 = "1\n2\n3\n" │
00:02:39 #6381 [Verbose] > │ let v20 : bool = │
00:02:39 #6382 [Verbose] > │ if v18 then │
00:02:39 #6383 [Verbose] > │ true │
00:02:39 #6384 [Verbose] > │ else │
00:02:39 #6385 [Verbose] > │ method3(v18) │
00:02:39 #6386 [Verbose] > │ let v21 : string = "1\n2\n3\n" │
00:02:39 #6387 [Verbose] > │ let v22 : string = $"__expect / actual: %A{v15} / expected: %A{v21}" │
00:02:39 #6388 [Verbose] > │ let v23 : bool = v20 = false │
00:02:39 #6389 [Verbose] > │ if v23 then │
00:02:39 #6390 [Verbose] > │ failwith<unit> v22 │
00:02:39 #6391 [Verbose] > │ method0() │
00:02:39 #6392 [Verbose] > │ │
00:02:39 #6393 [Verbose] > │ │
00:02:39 #6394 [Verbose] > │ .rs: │
00:02:39 #6395 [Verbose] > │ #![allow(dead_code,)] │
00:02:39 #6396 [Verbose] > │ #![allow(non_camel_case_types,)] │
00:02:39 #6397 [Verbose] > │ #![allow(non_snake_case,)] │
00:02:39 #6398 [Verbose] > │ #![allow(non_upper_case_globals,)] │
00:02:39 #6399 [Verbose] > │ #![allow(unreachable_code,)] │
00:02:39 #6400 [Verbose] > │ #![allow(unused_attributes,)] │
00:02:39 #6401 [Verbose] > │ #![allow(unused_imports,)] │
00:02:39 #6402 [Verbose] > │ #![allow(unused_macros,)] │
00:02:39 #6403 [Verbose] > │ #![allow(unused_parens,)] │
00:02:39 #6404 [Verbose] > │ #![allow(unused_variables,)] │
00:02:39 #6405 [Verbose] > │ mod module_ccfa04bf { │
00:02:39 #6406 [Verbose] > │ pub mod Spiral_eval { │
00:02:39 #6407 [Verbose] > │ use super::*; │
00:02:39 #6408 [Verbose] > │ use fable_library_rust::Native_::LrcPtr; │
00:02:39 #6409 [Verbose] > │ use fable_library_rust::Native_::MutCell; │
00:02:39 #6410 [Verbose] > │ use fable_library_rust::Native_::on_startup; │
00:02:39 #6411 [Verbose] > │ use fable_library_rust::NativeArray_::Array; │
00:02:39 #6412 [Verbose] > │ use fable_library_rust::NativeArray_::count; │
00:02:39 #6413 [Verbose] > │ use fable_library_rust::NativeArray_::new_array; │
00:02:39 #6414 [Verbose] > │ use fable_library_rust::String_::append; │
00:02:39 #6415 [Verbose] > │ use fable_library_rust::String_::printfn; │
00:02:39 #6416 [Verbose] > │ use fable_library_rust::String_::sprintf; │
00:02:39 #6417 [Verbose] > │ use fable_library_rust::String_::string; │
00:02:39 #6418 [Verbose] > │ #[derive(Clone, Debug, Default, PartialEq, PartialOrd, Hash, Eq,)] │
00:02:39 #6419 [Verbose] > │ pub struct Mut0 { │
00:02:39 #6420 [Verbose] > │ pub l0: MutCell<i32>, │
00:02:39 #6421 [Verbose] > │ pub l1: MutCell<string>, │
00:02:39 #6422 [Verbose] > │ } │
00:02:39 #6423 [Verbose] > │ impl core::fmt::Display for Spiral_eval::Mut0 { │
00:02:39 #6424 [Verbose] > │ fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:02:39 #6425 [Verbose] > │ { │
00:02:39 #6426 [Verbose] > │ write!(f, "{}", core::any::type_name::<Self>()) │
00:02:39 #6427 [Verbose] > │ } │
00:02:39 #6428 [Verbose] > │ } │
00:02:39 #6429 [Verbose] > │ pub fn method1(v0: Array<string>) -> Array<string> { v0 } │
00:02:39 #6430 [Verbose] > │ pub fn method2(v0: i32, v1: LrcPtr<Spiral_eval::Mut0>) -> bool { │
00:02:39 #6431 [Verbose] > │ v1.l0.get().clone() < v0 │
00:02:39 #6432 [Verbose] > │ } │
00:02:39 #6433 [Verbose] > │ pub fn method3(v0: bool) -> bool { v0 } │
00:02:39 #6434 [Verbose] > │ pub fn method0() { │
00:02:39 #6435 [Verbose] > │ let v4: Array<string> = │
00:02:39 #6436 [Verbose] > │ Spiral_eval::method1(new_array(&[string("1"), string("2"), │
00:02:39 #6437 [Verbose] > │ string("3")])); │
00:02:39 #6438 [Verbose] > │ let v5: i32 = count(v4.clone()); │
00:02:39 #6439 [Verbose] > │ let v7: LrcPtr<Spiral_eval::Mut0> = │
00:02:39 #6440 [Verbose] > │ LrcPtr::new(Spiral_eval::Mut0{l0: MutCell::new(0_i32), │
00:02:39 #6441 [Verbose] > │ l1: │
00:02:39 #6442 [Verbose] > │ MutCell::new(string("")),}); │
00:02:39 #6443 [Verbose] > │ while Spiral_eval::method2(v5, v7.clone()) { │
00:02:39 #6444 [Verbose] > │ let v9: i32 = v7.l0.get().clone(); │
00:02:39 #6445 [Verbose] > │ let v13: string = │
00:02:39 #6446 [Verbose] > │ append(append(append(v7.l1.get().clone(), v4[ │
00:02:39 #6447 [Verbose] > │ v9].clone()), │
00:02:39 #6448 [Verbose] > │ string("\n")), string("")); │
00:02:39 #6449 [Verbose] > │ let v14: i32 = v9 + 1_i32; │
00:02:39 #6450 [Verbose] > │ v7.l0.set(v14); │
00:02:39 #6451 [Verbose] > │ v7.l1.set(v13); │
00:02:39 #6452 [Verbose] > │ () │
00:02:39 #6453 [Verbose] > │ } │
00:02:39 #6454 [Verbose] > │ { │
00:02:39 #6455 [Verbose] > │ let v15: string = v7.l1.get().clone(); │
00:02:39 #6456 [Verbose] > │ let v16: string = sprintf!("{:?}", v15.clone()); │
00:02:39 #6457 [Verbose] > │ printfn!("{0}", v16); │
00:02:39 #6458 [Verbose] > │ { │
00:02:39 #6459 [Verbose] > │ let v18: bool = v15.clone() == string("1\n2\n3\n"); │
00:02:39 #6460 [Verbose] > │ if (if v18 { true } else { Spiral_eval::method3(v18) }) │
00:02:39 #6461 [Verbose] > │ == │
00:02:39 #6462 [Verbose] > │ false { │
00:02:39 #6463 [Verbose] > │ panic!("{}", │
00:02:39 #6464 [Verbose] > │ sprintf!("__expect / actual: {:?} / expected: │
00:02:39 #6465 [Verbose] > │ {:?}", v15, string("1\n2\n3\n"))); │
00:02:39 #6466 [Verbose] > │ } │
00:02:39 #6467 [Verbose] > │ } │
00:02:39 #6468 [Verbose] > │ } │
00:02:39 #6469 [Verbose] > │ } │
00:02:39 #6470 [Verbose] > │ on_startup!(Spiral_eval::method0()); │
00:02:39 #6471 [Verbose] > │ } │
00:02:39 #6472 [Verbose] > │ } │
00:02:39 #6473 [Verbose] > │ pub use module_ccfa04bf::*; │
00:02:39 #6474 [Verbose] > │ │
00:02:39 #6475 [Verbose] > │ │
00:02:39 #6476 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:39 #6477 [Verbose] >
00:02:39 #6478 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:39 #6479 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:39 #6480 [Verbose] > │ ## concat_list_trailing │
00:02:39 #6481 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:39 #6482 [Verbose] >
00:02:39 #6483 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:39 #6484 [Verbose] > inl concat_list_trailing separator input =
00:02:39 #6485 [Verbose] > ("", input)
00:02:39 #6486 [Verbose] > ||> listm.fold fun acc (x : string) =>
00:02:39 #6487 [Verbose] > $'!acc + !x + !separator + ""'
00:02:39 #6488 [Verbose] >
00:02:39 #6489 [Verbose] > ╭─[ 229.57ms - stdout ]────────────────────────────────────────────────────────╮
00:02:39 #6490 [Verbose] > │ () │
00:02:39 #6491 [Verbose] > │ │
00:02:39 #6492 [Verbose] > │ │
00:02:39 #6493 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:39 #6494 [Verbose] >
00:02:39 #6495 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:39 #6496 [Verbose] > // // test
00:02:39 #6497 [Verbose] > // // rust=
00:02:39 #6498 [Verbose] >
00:02:39 #6499 [Verbose] > [[
00:02:39 #6500 [Verbose] > "1"
00:02:39 #6501 [Verbose] > "2"
00:02:39 #6502 [Verbose] > "3"
00:02:39 #6503 [Verbose] > ]]
00:02:39 #6504 [Verbose] > |> fun x =>
00:02:39 #6505 [Verbose] > inl code = (x : _) |> sm'.concat_list_trailing "\n"
00:02:39 #6506 [Verbose] > code
00:02:39 #6507 [Verbose] > |> _assert_eq "1\n2\n3\n"
00:02:43 #6508 [Verbose] >
00:02:43 #6509 [Verbose] > ╭─[ 4.01s - return value ]─────────────────────────────────────────────────────╮
00:02:43 #6510 [Verbose] > │ .rs output: │
00:02:43 #6511 [Verbose] > │ "1 │
00:02:43 #6512 [Verbose] > │ 2 │
00:02:43 #6513 [Verbose] > │ 3 │
00:02:43 #6514 [Verbose] > │ " │
00:02:43 #6515 [Verbose] > │ │
00:02:43 #6516 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:43 #6517 [Verbose] >
00:02:43 #6518 [Verbose] > ╭─[ 4.02s - stdout ]───────────────────────────────────────────────────────────╮
00:02:43 #6519 [Verbose] > │ │
00:02:43 #6520 [Verbose] > │ .fsx: │
00:02:43 #6521 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:02:43 #6522 [Verbose] > │ v0 │
00:02:43 #6523 [Verbose] > │ and method0 () : unit = │
00:02:43 #6524 [Verbose] > │ let v0 : string = "" │
00:02:43 #6525 [Verbose] > │ let v1 : string = "1" │
00:02:43 #6526 [Verbose] > │ let v2 : string = "\n" │
00:02:43 #6527 [Verbose] > │ let v3 : string = v0 + v1 + v2 + "" │
00:02:43 #6528 [Verbose] > │ let v4 : string = "2" │
00:02:43 #6529 [Verbose] > │ let v5 : string = v3 + v4 + v2 + "" │
00:02:43 #6530 [Verbose] > │ let v6 : string = "3" │
00:02:43 #6531 [Verbose] > │ let v7 : string = v5 + v6 + v2 + "" │
00:02:43 #6532 [Verbose] > │ let v8 : string = $"%A{v7}" │
00:02:43 #6533 [Verbose] > │ System.Console.WriteLine v8 │
00:02:43 #6534 [Verbose] > │ let v10 : bool = v7 = "1\n2\n3\n" │
00:02:43 #6535 [Verbose] > │ let v12 : bool = │
00:02:43 #6536 [Verbose] > │ if v10 then │
00:02:43 #6537 [Verbose] > │ true │
00:02:43 #6538 [Verbose] > │ else │
00:02:43 #6539 [Verbose] > │ method1(v10) │
00:02:43 #6540 [Verbose] > │ let v13 : string = "1\n2\n3\n" │
00:02:43 #6541 [Verbose] > │ let v14 : string = $"__expect / actual: %A{v7} / expected: %A{v13}" │
00:02:43 #6542 [Verbose] > │ let v15 : bool = v12 = false │
00:02:43 #6543 [Verbose] > │ if v15 then │
00:02:43 #6544 [Verbose] > │ failwith<unit> v14 │
00:02:43 #6545 [Verbose] > │ method0() │
00:02:43 #6546 [Verbose] > │ │
00:02:43 #6547 [Verbose] > │ │
00:02:43 #6548 [Verbose] > │ .rs: │
00:02:43 #6549 [Verbose] > │ #![allow(dead_code,)] │
00:02:43 #6550 [Verbose] > │ #![allow(non_camel_case_types,)] │
00:02:43 #6551 [Verbose] > │ #![allow(non_snake_case,)] │
00:02:43 #6552 [Verbose] > │ #![allow(non_upper_case_globals,)] │
00:02:43 #6553 [Verbose] > │ #![allow(unreachable_code,)] │
00:02:43 #6554 [Verbose] > │ #![allow(unused_attributes,)] │
00:02:43 #6555 [Verbose] > │ #![allow(unused_imports,)] │
00:02:43 #6556 [Verbose] > │ #![allow(unused_macros,)] │
00:02:43 #6557 [Verbose] > │ #![allow(unused_parens,)] │
00:02:43 #6558 [Verbose] > │ #![allow(unused_variables,)] │
00:02:43 #6559 [Verbose] > │ mod module_ccfa04bf { │
00:02:43 #6560 [Verbose] > │ pub mod Spiral_eval { │
00:02:43 #6561 [Verbose] > │ use super::*; │
00:02:43 #6562 [Verbose] > │ use fable_library_rust::Native_::on_startup; │
00:02:43 #6563 [Verbose] > │ use fable_library_rust::String_::printfn; │
00:02:43 #6564 [Verbose] > │ use fable_library_rust::String_::sprintf; │
00:02:43 #6565 [Verbose] > │ use fable_library_rust::String_::string; │
00:02:43 #6566 [Verbose] > │ pub fn method1(v0: bool) -> bool { v0 } │
00:02:43 #6567 [Verbose] > │ pub fn method0() { │
00:02:43 #6568 [Verbose] > │ let v7: string = string("1\n2\n3\n"); │
00:02:43 #6569 [Verbose] > │ let v8: string = sprintf!("{:?}", v7.clone()); │
00:02:43 #6570 [Verbose] > │ printfn!("{0}", v8); │
00:02:43 #6571 [Verbose] > │ { │
00:02:43 #6572 [Verbose] > │ let v10: bool = v7.clone() == string("1\n2\n3\n"); │
00:02:43 #6573 [Verbose] > │ if (if v10 { true } else { Spiral_eval::method1(v10) }) == │
00:02:43 #6574 [Verbose] > │ false { │
00:02:43 #6575 [Verbose] > │ panic!("{}", │
00:02:43 #6576 [Verbose] > │ sprintf!("__expect / actual: {:?} / expected: │
00:02:43 #6577 [Verbose] > │ {:?}", v7, string("1\n2\n3\n"))); │
00:02:43 #6578 [Verbose] > │ } │
00:02:43 #6579 [Verbose] > │ } │
00:02:43 #6580 [Verbose] > │ } │
00:02:43 #6581 [Verbose] > │ on_startup!(Spiral_eval::method0()); │
00:02:43 #6582 [Verbose] > │ } │
00:02:43 #6583 [Verbose] > │ } │
00:02:43 #6584 [Verbose] > │ pub use module_ccfa04bf::*; │
00:02:43 #6585 [Verbose] > │ │
00:02:43 #6586 [Verbose] > │ │
00:02:43 #6587 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:43 #6588 [Verbose] >
00:02:43 #6589 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:43 #6590 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:43 #6591 [Verbose] > │ ## concat_list_heap_trailing │
00:02:43 #6592 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:43 #6593 [Verbose] >
00:02:43 #6594 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:43 #6595 [Verbose] > inl concat_list_heap_trailing separator input =
00:02:43 #6596 [Verbose] > ("", input)
00:02:43 #6597 [Verbose] > ||> listm.fold fun acc (x : string) =>
00:02:43 #6598 [Verbose] > inl acc = acc |> to_std_string
00:02:43 #6599 [Verbose] > inl x = x |> as_str
00:02:43 #6600 [Verbose] > inl separator = separator |> as_str
00:02:43 #6601 [Verbose] > !\($'"!acc + !x + !separator"')
00:02:43 #6602 [Verbose] > |> from_std_string
00:02:44 #6603 [Verbose] >
00:02:44 #6604 [Verbose] > ╭─[ 305.29ms - stdout ]────────────────────────────────────────────────────────╮
00:02:44 #6605 [Verbose] > │ () │
00:02:44 #6606 [Verbose] > │ │
00:02:44 #6607 [Verbose] > │ │
00:02:44 #6608 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:44 #6609 [Verbose] >
00:02:44 #6610 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:44 #6611 [Verbose] > // // test
00:02:44 #6612 [Verbose] > // // rust=
00:02:44 #6613 [Verbose] >
00:02:44 #6614 [Verbose] > types ()
00:02:44 #6615 [Verbose] >
00:02:44 #6616 [Verbose] > [[
00:02:44 #6617 [Verbose] > "1"
00:02:44 #6618 [Verbose] > "2"
00:02:44 #6619 [Verbose] > "3"
00:02:44 #6620 [Verbose] > ]]
00:02:44 #6621 [Verbose] > |> fun x =>
00:02:44 #6622 [Verbose] > inl code = (x : _) |> sm'.concat_list_heap_trailing "\n"
00:02:44 #6623 [Verbose] > code
00:02:44 #6624 [Verbose] > |> _assert_eq "1\n2\n3\n"
00:02:48 #6625 [Verbose] >
00:02:48 #6626 [Verbose] > ╭─[ 4.55s - return value ]─────────────────────────────────────────────────────╮
00:02:48 #6627 [Verbose] > │ .rs output: │
00:02:48 #6628 [Verbose] > │ "1 │
00:02:48 #6629 [Verbose] > │ 2 │
00:02:48 #6630 [Verbose] > │ 3 │
00:02:48 #6631 [Verbose] > │ " │
00:02:48 #6632 [Verbose] > │ │
00:02:48 #6633 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:48 #6634 [Verbose] >
00:02:48 #6635 [Verbose] > ╭─[ 4.56s - stdout ]───────────────────────────────────────────────────────────╮
00:02:48 #6636 [Verbose] > │ │
00:02:48 #6637 [Verbose] > │ .fsx: │
00:02:48 #6638 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Func0<$0>")>] type Func0<'T> = class │
00:02:48 #6639 [Verbose] > │ end │
00:02:48 #6640 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Func1<$0, $1>")>] type Func0<'T, 'U> = │
00:02:48 #6641 [Verbose] > │ class end │
00:02:48 #6642 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Box<$0>")>] type Box<'T> = class end │
00:02:48 #6643 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("dyn $0")>] type Dyn<'T> = class end │
00:02:48 #6644 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn() -> $0")>] type Fn<'T> = class end │
00:02:48 #6645 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn()")>] type FnUnit = class end │
00:02:48 #6646 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("FnOnce() -> $0")>] type FnOnce<'T> = │
00:02:48 #6647 [Verbose] > │ class end │
00:02:48 #6648 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn($0, $1)")>] type ActionFn2<'T, 'U> = │
00:02:48 #6649 [Verbose] > │ class end │
00:02:48 #6650 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("impl $0")>] type Impl<'T> = class end │
00:02:48 #6651 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] type Mut<'T> = class end │
00:02:48 #6652 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&$0")>] type Ref<'T> = class end │
00:02:48 #6653 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&'static $0")>] type StaticRef<'T> = │
00:02:48 #6654 [Verbose] > │ class end │
00:02:48 #6655 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("MutCell<$0>")>] type MutCell<'T> = │
00:02:48 #6656 [Verbose] > │ class end │
00:02:48 #6657 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::any::Any")>] type std_any_Any = │
00:02:48 #6658 [Verbose] > │ class end │
00:02:48 #6659 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::cell::RefCell<$0>")>] type │
00:02:48 #6660 [Verbose] > │ std_cell_RefCell<'T> = class end │
00:02:48 #6661 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::pin::Pin<$0>")>] type │
00:02:48 #6662 [Verbose] > │ std_pin_Pin<'T> = class end │
00:02:48 #6663 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::rc::Rc<$0>")>] type std_rc_Rc<'T> │
00:02:48 #6664 [Verbose] > │ = class end │
00:02:48 #6665 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::rc::Weak<$0>")>] type │
00:02:48 #6666 [Verbose] > │ std_rc_Weak<'T> = class end │
00:02:48 #6667 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::sync::Arc<$0>")>] type │
00:02:48 #6668 [Verbose] > │ std_sync_Arc<'T> = class end │
00:02:48 #6669 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("str")>] type Str = class end │
00:02:48 #6670 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>] type │
00:02:48 #6671 [Verbose] > │ base64_DecodeError = class end │
00:02:48 #6672 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>] type │
00:02:48 #6673 [Verbose] > │ borsh_io_Error = class end │
00:02:48 #6674 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>] type │
00:02:48 #6675 [Verbose] > │ js_sys_JsString = class end │
00:02:48 #6676 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>] type │
00:02:48 #6677 [Verbose] > │ serde_json_Error = class end │
00:02:48 #6678 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>] type │
00:02:48 #6679 [Verbose] > │ serde_json_Value = class end │
00:02:48 #6680 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>] type │
00:02:48 #6681 [Verbose] > │ serde_wasm_bindgen_Error = class end │
00:02:48 #6682 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::str::Utf8Error")>] type │
00:02:48 #6683 [Verbose] > │ std_str_Utf8Error = class end │
00:02:48 #6684 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type │
00:02:48 #6685 [Verbose] > │ std_string_String = class end │
00:02:48 #6686 [Verbose] > │ let rec method1 () : string = │
00:02:48 #6687 [Verbose] > │ let v0 : string = "" │
00:02:48 #6688 [Verbose] > │ v0 │
00:02:48 #6689 [Verbose] > │ and method2 (v0 : string) : string = │
00:02:48 #6690 [Verbose] > │ v0 │
00:02:48 #6691 [Verbose] > │ and method3 () : string = │
00:02:48 #6692 [Verbose] > │ let v0 : string = "1" │
00:02:48 #6693 [Verbose] > │ v0 │
00:02:48 #6694 [Verbose] > │ and method4 () : string = │
00:02:48 #6695 [Verbose] > │ let v0 : string = "\n" │
00:02:48 #6696 [Verbose] > │ v0 │
00:02:48 #6697 [Verbose] > │ and method5 (v0 : std_string_String) : std_string_String = │
00:02:48 #6698 [Verbose] > │ v0 │
00:02:48 #6699 [Verbose] > │ and method6 (v0 : string) : string = │
00:02:48 #6700 [Verbose] > │ v0 │
00:02:48 #6701 [Verbose] > │ and method7 () : string = │
00:02:48 #6702 [Verbose] > │ let v0 : string = "2" │
00:02:48 #6703 [Verbose] > │ v0 │
00:02:48 #6704 [Verbose] > │ and method8 () : string = │
00:02:48 #6705 [Verbose] > │ let v0 : string = "3" │
00:02:48 #6706 [Verbose] > │ v0 │
00:02:48 #6707 [Verbose] > │ and method9 (v0 : bool) : bool = │
00:02:48 #6708 [Verbose] > │ v0 │
00:02:48 #6709 [Verbose] > │ and method0 () : unit = │
00:02:48 #6710 [Verbose] > │ let v0 : string = method1() │
00:02:48 #6711 [Verbose] > │ let v1 : string = method2(v0) │
00:02:48 #6712 [Verbose] > │ let v2 : string = $"fable_library_rust::String_::LrcStr::as_str(&v1)" │
00:02:48 #6713 [Verbose] > │ let v3 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v2 │
00:02:48 #6714 [Verbose] > │ let v4 : string = "String::from(v3)" │
00:02:48 #6715 [Verbose] > │ let v5 : std_string_String = Fable.Core.RustInterop.emitRustExpr () v4 │
00:02:48 #6716 [Verbose] > │ let v6 : string = method3() │
00:02:48 #6717 [Verbose] > │ let v7 : string = $"fable_library_rust::String_::LrcStr::as_str(&v6)" │
00:02:48 #6718 [Verbose] > │ let v8 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v7 │
00:02:48 #6719 [Verbose] > │ let v9 : string = method4() │
00:02:48 #6720 [Verbose] > │ let v10 : string = $"fable_library_rust::String_::LrcStr::as_str(&v9)" │
00:02:48 #6721 [Verbose] > │ let v11 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v10 │
00:02:48 #6722 [Verbose] > │ let v12 : string = "v5 + v8 + v11" │
00:02:48 #6723 [Verbose] > │ let v13 : std_string_String = Fable.Core.RustInterop.emitRustExpr () v12 │
00:02:48 #6724 [Verbose] > │ let v14 : std_string_String = method5(v13) │
00:02:48 #6725 [Verbose] > │ let v15 : string = "fable_library_rust::String_::fromString(v14)" │
00:02:48 #6726 [Verbose] > │ let v16 : string = Fable.Core.RustInterop.emitRustExpr () v15 │
00:02:48 #6727 [Verbose] > │ let v17 : string = method6(v16) │
00:02:48 #6728 [Verbose] > │ let v18 : string = method2(v17) │
00:02:48 #6729 [Verbose] > │ let v19 : string = $"fable_library_rust::String_::LrcStr::as_str(&v18)" │
00:02:48 #6730 [Verbose] > │ let v20 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v19 │
00:02:48 #6731 [Verbose] > │ let v21 : string = "String::from(v20)" │
00:02:48 #6732 [Verbose] > │ let v22 : std_string_String = Fable.Core.RustInterop.emitRustExpr () v21 │
00:02:48 #6733 [Verbose] > │ let v23 : string = method7() │
00:02:48 #6734 [Verbose] > │ let v24 : string = $"fable_library_rust::String_::LrcStr::as_str(&v23)" │
00:02:48 #6735 [Verbose] > │ let v25 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v24 │
00:02:48 #6736 [Verbose] > │ let v26 : string = method4() │
00:02:48 #6737 [Verbose] > │ let v27 : string = $"fable_library_rust::String_::LrcStr::as_str(&v26)" │
00:02:48 #6738 [Verbose] > │ let v28 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v27 │
00:02:48 #6739 [Verbose] > │ let v29 : string = "v22 + v25 + v28" │
00:02:48 #6740 [Verbose] > │ let v30 : std_string_String = Fable.Core.RustInterop.emitRustExpr () v29 │
00:02:48 #6741 [Verbose] > │ let v31 : std_string_String = method5(v30) │
00:02:48 #6742 [Verbose] > │ let v32 : string = "fable_library_rust::String_::fromString(v31)" │
00:02:48 #6743 [Verbose] > │ let v33 : string = Fable.Core.RustInterop.emitRustExpr () v32 │
00:02:48 #6744 [Verbose] > │ let v34 : string = method6(v33) │
00:02:48 #6745 [Verbose] > │ let v35 : string = method2(v34) │
00:02:48 #6746 [Verbose] > │ let v36 : string = $"fable_library_rust::String_::LrcStr::as_str(&v35)" │
00:02:48 #6747 [Verbose] > │ let v37 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v36 │
00:02:48 #6748 [Verbose] > │ let v38 : string = "String::from(v37)" │
00:02:48 #6749 [Verbose] > │ let v39 : std_string_String = Fable.Core.RustInterop.emitRustExpr () v38 │
00:02:48 #6750 [Verbose] > │ let v40 : string = method8() │
00:02:48 #6751 [Verbose] > │ let v41 : string = $"fable_library_rust::String_::LrcStr::as_str(&v40)" │
00:02:48 #6752 [Verbose] > │ let v42 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v41 │
00:02:48 #6753 [Verbose] > │ let v43 : string = method4() │
00:02:48 #6754 [Verbose] > │ let v44 : string = $"fable_library_rust::String_::LrcStr::as_str(&v43)" │
00:02:48 #6755 [Verbose] > │ let v45 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v44 │
00:02:48 #6756 [Verbose] > │ let v46 : string = "v39 + v42 + v45" │
00:02:48 #6757 [Verbose] > │ let v47 : std_string_String = Fable.Core.RustInterop.emitRustExpr () v46 │
00:02:48 #6758 [Verbose] > │ let v48 : std_string_String = method5(v47) │
00:02:48 #6759 [Verbose] > │ let v49 : string = "fable_library_rust::String_::fromString(v48)" │
00:02:48 #6760 [Verbose] > │ let v50 : string = Fable.Core.RustInterop.emitRustExpr () v49 │
00:02:48 #6761 [Verbose] > │ let v51 : string = $"%A{v50}" │
00:02:48 #6762 [Verbose] > │ System.Console.WriteLine v51 │
00:02:48 #6763 [Verbose] > │ let v53 : bool = v50 = "1\n2\n3\n" │
00:02:48 #6764 [Verbose] > │ let v55 : bool = │
00:02:48 #6765 [Verbose] > │ if v53 then │
00:02:48 #6766 [Verbose] > │ true │
00:02:48 #6767 [Verbose] > │ else │
00:02:48 #6768 [Verbose] > │ method9(v53) │
00:02:48 #6769 [Verbose] > │ let v56 : string = "1\n2\n3\n" │
00:02:48 #6770 [Verbose] > │ let v57 : string = $"__expect / actual: %A{v50} / expected: %A{v56}" │
00:02:48 #6771 [Verbose] > │ let v58 : bool = v55 = false │
00:02:48 #6772 [Verbose] > │ if v58 then │
00:02:48 #6773 [Verbose] > │ failwith<unit> v57 │
00:02:48 #6774 [Verbose] > │ method0() │
00:02:48 #6775 [Verbose] > │ │
00:02:48 #6776 [Verbose] > │ │
00:02:48 #6777 [Verbose] > │ .rs: │
00:02:48 #6778 [Verbose] > │ #![allow(dead_code,)] │
00:02:48 #6779 [Verbose] > │ #![allow(non_camel_case_types,)] │
00:02:48 #6780 [Verbose] > │ #![allow(non_snake_case,)] │
00:02:48 #6781 [Verbose] > │ #![allow(non_upper_case_globals,)] │
00:02:48 #6782 [Verbose] > │ #![allow(unreachable_code,)] │
00:02:48 #6783 [Verbose] > │ #![allow(unused_attributes,)] │
00:02:48 #6784 [Verbose] > │ #![allow(unused_imports,)] │
00:02:48 #6785 [Verbose] > │ #![allow(unused_macros,)] │
00:02:48 #6786 [Verbose] > │ #![allow(unused_parens,)] │
00:02:48 #6787 [Verbose] > │ #![allow(unused_variables,)] │
00:02:48 #6788 [Verbose] > │ mod module_ccfa04bf { │
00:02:48 #6789 [Verbose] > │ pub mod Spiral_eval { │
00:02:48 #6790 [Verbose] > │ use super::*; │
00:02:48 #6791 [Verbose] > │ use fable_library_rust::Native_::on_startup; │
00:02:48 #6792 [Verbose] > │ use fable_library_rust::String_::printfn; │
00:02:48 #6793 [Verbose] > │ use fable_library_rust::String_::sprintf; │
00:02:48 #6794 [Verbose] > │ use fable_library_rust::String_::string; │
00:02:48 #6795 [Verbose] > │ pub fn method1() -> string { string("") } │
00:02:48 #6796 [Verbose] > │ pub fn method2(v0: string) -> string { v0 } │
00:02:48 #6797 [Verbose] > │ pub fn method3() -> string { string("1") } │
00:02:48 #6798 [Verbose] > │ pub fn method4() -> string { string("\n") } │
00:02:48 #6799 [Verbose] > │ pub fn method5(v0: std::string::String) -> std::string::String { v0 │
00:02:48 #6800 [Verbose] > │ } │
00:02:48 #6801 [Verbose] > │ pub fn method6(v0: string) -> string { v0 } │
00:02:48 #6802 [Verbose] > │ pub fn method7() -> string { string("2") } │
00:02:48 #6803 [Verbose] > │ pub fn method8() -> string { string("3") } │
00:02:48 #6804 [Verbose] > │ pub fn method9(v0: bool) -> bool { v0 } │
00:02:48 #6805 [Verbose] > │ pub fn method0() { │
00:02:48 #6806 [Verbose] > │ let v1: string = Spiral_eval::method2(Spiral_eval::method1()); │
00:02:48 #6807 [Verbose] > │ let v3: &str = fable_library_rust::String_::LrcStr::as_str(&v1); │
00:02:48 #6808 [Verbose] > │ let v5: std::string::String = String::from(v3); │
00:02:48 #6809 [Verbose] > │ let v6: string = Spiral_eval::method3(); │
00:02:48 #6810 [Verbose] > │ let v8: &str = fable_library_rust::String_::LrcStr::as_str(&v6); │
00:02:48 #6811 [Verbose] > │ let v9: string = Spiral_eval::method4(); │
00:02:48 #6812 [Verbose] > │ let v11: &str = │
00:02:48 #6813 [Verbose] > │ fable_library_rust::String_::LrcStr::as_str(&v9); │
00:02:48 #6814 [Verbose] > │ let v14: std::string::String = │
00:02:48 #6815 [Verbose] > │ Spiral_eval::method5(v5 + v8 + v11); │
00:02:48 #6816 [Verbose] > │ let v18: string = │
00:02:48 #6817 [Verbose] > │ │
00:02:48 #6818 [Verbose] > │ Spiral_eval::method2(Spiral_eval::method6(fable_library_rust::String_::fromS │
00:02:48 #6819 [Verbose] > │ tring(v14))); │
00:02:48 #6820 [Verbose] > │ let v20: &str = │
00:02:48 #6821 [Verbose] > │ fable_library_rust::String_::LrcStr::as_str(&v18); │
00:02:48 #6822 [Verbose] > │ let v22: std::string::String = String::from(v20); │
00:02:48 #6823 [Verbose] > │ let v23: string = Spiral_eval::method7(); │
00:02:48 #6824 [Verbose] > │ let v25: &str = │
00:02:48 #6825 [Verbose] > │ fable_library_rust::String_::LrcStr::as_str(&v23); │
00:02:48 #6826 [Verbose] > │ let v26: string = Spiral_eval::method4(); │
00:02:48 #6827 [Verbose] > │ let v28: &str = │
00:02:48 #6828 [Verbose] > │ fable_library_rust::String_::LrcStr::as_str(&v26); │
00:02:48 #6829 [Verbose] > │ let v31: std::string::String = │
00:02:48 #6830 [Verbose] > │ Spiral_eval::method5(v22 + v25 + v28); │
00:02:48 #6831 [Verbose] > │ let v35: string = │
00:02:48 #6832 [Verbose] > │ │
00:02:48 #6833 [Verbose] > │ Spiral_eval::method2(Spiral_eval::method6(fable_library_rust::String_::fromS │
00:02:48 #6834 [Verbose] > │ tring(v31))); │
00:02:48 #6835 [Verbose] > │ let v37: &str = │
00:02:48 #6836 [Verbose] > │ fable_library_rust::String_::LrcStr::as_str(&v35); │
00:02:48 #6837 [Verbose] > │ let v39: std::string::String = String::from(v37); │
00:02:48 #6838 [Verbose] > │ let v40: string = Spiral_eval::method8(); │
00:02:48 #6839 [Verbose] > │ let v42: &str = │
00:02:48 #6840 [Verbose] > │ fable_library_rust::String_::LrcStr::as_str(&v40); │
00:02:48 #6841 [Verbose] > │ let v43: string = Spiral_eval::method4(); │
00:02:48 #6842 [Verbose] > │ let v45: &str = │
00:02:48 #6843 [Verbose] > │ fable_library_rust::String_::LrcStr::as_str(&v43); │
00:02:48 #6844 [Verbose] > │ let v48: std::string::String = │
00:02:48 #6845 [Verbose] > │ Spiral_eval::method5(v39 + v42 + v45); │
00:02:48 #6846 [Verbose] > │ let v50: string = fable_library_rust::String_::fromString(v48); │
00:02:48 #6847 [Verbose] > │ let v51: string = sprintf!("{:?}", v50.clone()); │
00:02:48 #6848 [Verbose] > │ printfn!("{0}", v51); │
00:02:48 #6849 [Verbose] > │ { │
00:02:48 #6850 [Verbose] > │ let v53: bool = v50.clone() == string("1\n2\n3\n"); │
00:02:48 #6851 [Verbose] > │ if (if v53 { true } else { Spiral_eval::method9(v53) }) == │
00:02:48 #6852 [Verbose] > │ false { │
00:02:48 #6853 [Verbose] > │ panic!("{}", │
00:02:48 #6854 [Verbose] > │ sprintf!("__expect / actual: {:?} / expected: │
00:02:48 #6855 [Verbose] > │ {:?}", v50, string("1\n2\n3\n"))); │
00:02:48 #6856 [Verbose] > │ } │
00:02:48 #6857 [Verbose] > │ } │
00:02:48 #6858 [Verbose] > │ } │
00:02:48 #6859 [Verbose] > │ on_startup!(Spiral_eval::method0()); │
00:02:48 #6860 [Verbose] > │ } │
00:02:48 #6861 [Verbose] > │ } │
00:02:48 #6862 [Verbose] > │ pub use module_ccfa04bf::*; │
00:02:48 #6863 [Verbose] > │ │
00:02:48 #6864 [Verbose] > │ │
00:02:48 #6865 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:48 #6866 [Verbose] >
00:02:48 #6867 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:48 #6868 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:48 #6869 [Verbose] > │ ## concat │
00:02:48 #6870 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:48 #6871 [Verbose] >
00:02:48 #6872 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:48 #6873 [Verbose] > inl concat (a : string) (b : seq.seq' _) : string =
00:02:48 #6874 [Verbose] > $"!b |> String.concat !a"
00:02:49 #6875 [Verbose] >
00:02:49 #6876 [Verbose] > ╭─[ 224.79ms - stdout ]────────────────────────────────────────────────────────╮
00:02:49 #6877 [Verbose] > │ () │
00:02:49 #6878 [Verbose] > │ │
00:02:49 #6879 [Verbose] > │ │
00:02:49 #6880 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:49 #6881 [Verbose] >
00:02:49 #6882 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:49 #6883 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:49 #6884 [Verbose] > │ ## ellipsis │
00:02:49 #6885 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:49 #6886 [Verbose] >
00:02:49 #6887 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:49 #6888 [Verbose] > inl ellipsis (max : i32) (s : string) =
00:02:49 #6889 [Verbose] > if sm.length s <= max
00:02:49 #6890 [Verbose] > then s
00:02:49 #6891 [Verbose] > else s |> slice 0 (max - 1) |> fun x => $'!x + "..."'
00:02:49 #6892 [Verbose] >
00:02:49 #6893 [Verbose] > ╭─[ 232.61ms - stdout ]────────────────────────────────────────────────────────╮
00:02:49 #6894 [Verbose] > │ () │
00:02:49 #6895 [Verbose] > │ │
00:02:49 #6896 [Verbose] > │ │
00:02:49 #6897 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:49 #6898 [Verbose] >
00:02:49 #6899 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:49 #6900 [Verbose] > // // test
00:02:49 #6901 [Verbose] >
00:02:49 #6902 [Verbose] > "12345"
00:02:49 #6903 [Verbose] > |> ellipsis 2
00:02:49 #6904 [Verbose] > |> _assert_eq "12..."
00:02:49 #6905 [Verbose] >
00:02:49 #6906 [Verbose] > "12345"
00:02:49 #6907 [Verbose] > |> ellipsis 4
00:02:49 #6908 [Verbose] > |> _assert_eq "1234..."
00:02:49 #6909 [Verbose] >
00:02:49 #6910 [Verbose] > ╭─[ 292.93ms - stdout ]────────────────────────────────────────────────────────╮
00:02:49 #6911 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:02:49 #6912 [Verbose] > │ v0 │
00:02:49 #6913 [Verbose] > │ and method0 () : unit = │
00:02:49 #6914 [Verbose] > │ let v0 : string = "12" │
00:02:49 #6915 [Verbose] > │ let v1 : string = v0 + "..." │
00:02:49 #6916 [Verbose] > │ let v2 : string = $"%A{v1}" │
00:02:49 #6917 [Verbose] > │ System.Console.WriteLine v2 │
00:02:49 #6918 [Verbose] > │ let v4 : bool = v1 = "12..." │
00:02:49 #6919 [Verbose] > │ let v6 : bool = │
00:02:49 #6920 [Verbose] > │ if v4 then │
00:02:49 #6921 [Verbose] > │ true │
00:02:49 #6922 [Verbose] > │ else │
00:02:49 #6923 [Verbose] > │ method1(v4) │
00:02:49 #6924 [Verbose] > │ let v7 : string = "12..." │
00:02:49 #6925 [Verbose] > │ let v8 : string = $"__expect / actual: %A{v1} / expected: %A{v7}" │
00:02:49 #6926 [Verbose] > │ let v9 : bool = v6 = false │
00:02:49 #6927 [Verbose] > │ if v9 then │
00:02:49 #6928 [Verbose] > │ failwith<unit> v8 │
00:02:49 #6929 [Verbose] > │ let v10 : string = "1234" │
00:02:49 #6930 [Verbose] > │ let v11 : string = v10 + "..." │
00:02:49 #6931 [Verbose] > │ let v12 : string = $"%A{v11}" │
00:02:49 #6932 [Verbose] > │ System.Console.WriteLine v12 │
00:02:49 #6933 [Verbose] > │ let v14 : bool = v11 = "1234..." │
00:02:49 #6934 [Verbose] > │ let v16 : bool = │
00:02:49 #6935 [Verbose] > │ if v14 then │
00:02:49 #6936 [Verbose] > │ true │
00:02:49 #6937 [Verbose] > │ else │
00:02:49 #6938 [Verbose] > │ method1(v14) │
00:02:49 #6939 [Verbose] > │ let v17 : string = "1234..." │
00:02:49 #6940 [Verbose] > │ let v18 : string = $"__expect / actual: %A{v11} / expected: %A{v17}" │
00:02:49 #6941 [Verbose] > │ let v19 : bool = v16 = false │
00:02:49 #6942 [Verbose] > │ if v19 then │
00:02:49 #6943 [Verbose] > │ failwith<unit> v18 │
00:02:49 #6944 [Verbose] > │ method0() │
00:02:49 #6945 [Verbose] > │ │
00:02:49 #6946 [Verbose] > │ "12..." │
00:02:49 #6947 [Verbose] > │ "1234..." │
00:02:49 #6948 [Verbose] > │ │
00:02:49 #6949 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:49 #6950 [Verbose] >
00:02:49 #6951 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:49 #6952 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:49 #6953 [Verbose] > │ ## ellipsis_end │
00:02:49 #6954 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:49 #6955 [Verbose] >
00:02:49 #6956 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:49 #6957 [Verbose] > inl ellipsis_end (max : i64) (s : string) =
00:02:49 #6958 [Verbose] > inl len = sm.length s
00:02:49 #6959 [Verbose] > if len <= max
00:02:49 #6960 [Verbose] > then s
00:02:49 #6961 [Verbose] > else
00:02:49 #6962 [Verbose] > inl half = f64 max / 2
00:02:49 #6963 [Verbose] > inl start_half = half |> math.ceil |> i64
00:02:49 #6964 [Verbose] > inl end_half = half |> math.floor |> i64
00:02:49 #6965 [Verbose] > inl start = s |> slice 0 (start_half - 1)
00:02:49 #6966 [Verbose] > inl end = s |> slice (len - end_half) (len - 1)
00:02:49 #6967 [Verbose] > (a ;[[start; "..."; end]] : _ i32 _)
00:02:49 #6968 [Verbose] > |> seq.of_array
00:02:49 #6969 [Verbose] > |> concat ""
00:02:49 #6970 [Verbose] >
00:02:49 #6971 [Verbose] > ╭─[ 219.74ms - stdout ]────────────────────────────────────────────────────────╮
00:02:49 #6972 [Verbose] > │ () │
00:02:49 #6973 [Verbose] > │ │
00:02:49 #6974 [Verbose] > │ │
00:02:49 #6975 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:49 #6976 [Verbose] >
00:02:49 #6977 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:49 #6978 [Verbose] > // // test
00:02:49 #6979 [Verbose] >
00:02:49 #6980 [Verbose] > "12345"
00:02:49 #6981 [Verbose] > |> ellipsis_end 2
00:02:49 #6982 [Verbose] > |> _assert_eq "1...5"
00:02:49 #6983 [Verbose] >
00:02:49 #6984 [Verbose] > "12345"
00:02:49 #6985 [Verbose] > |> ellipsis_end 3
00:02:49 #6986 [Verbose] > |> _assert_eq "12...5"
00:02:49 #6987 [Verbose] >
00:02:49 #6988 [Verbose] > "1234567"
00:02:49 #6989 [Verbose] > |> ellipsis_end 4
00:02:49 #6990 [Verbose] > |> _assert_eq "12...67"
00:02:50 #6991 [Verbose] >
00:02:50 #6992 [Verbose] > ╭─[ 422.13ms - stdout ]────────────────────────────────────────────────────────╮
00:02:50 #6993 [Verbose] > │ let rec method1 (v0 : (string [])) : (string []) = │
00:02:50 #6994 [Verbose] > │ v0 │
00:02:50 #6995 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:02:50 #6996 [Verbose] > │ v0 │
00:02:50 #6997 [Verbose] > │ and method0 () : unit = │
00:02:50 #6998 [Verbose] > │ let v0 : float = float 2L │
00:02:50 #6999 [Verbose] > │ let v1 : float = v0 / 2.0 │
00:02:50 #7000 [Verbose] > │ let v2 : (float -> float) = ceil │
00:02:50 #7001 [Verbose] > │ let v3 : float = v2 v1 │
00:02:50 #7002 [Verbose] > │ let v4 : int64 = int64 v3 │
00:02:50 #7003 [Verbose] > │ let v5 : (float -> float) = floor │
00:02:50 #7004 [Verbose] > │ let v6 : float = v5 v1 │
00:02:50 #7005 [Verbose] > │ let v7 : int64 = int64 v6 │
00:02:50 #7006 [Verbose] > │ let v8 : int64 = v4 - 1L │
00:02:50 #7007 [Verbose] > │ let v9 : string = "12345".[int 0L..int v8] │
00:02:50 #7008 [Verbose] > │ let v10 : int64 = 5L - v7 │
00:02:50 #7009 [Verbose] > │ let v11 : string = "12345".[int v10..int 4L] │
00:02:50 #7010 [Verbose] > │ let v12 : string = "..." │
00:02:50 #7011 [Verbose] > │ let v13 : (string []) = [|v9; v12; v11|] │
00:02:50 #7012 [Verbose] > │ let v14 : (string []) = method1(v13) │
00:02:50 #7013 [Verbose] > │ let v15 : ((string []) -> string seq) = Seq.ofArray │
00:02:50 #7014 [Verbose] > │ let v16 : string seq = v15 v14 │
00:02:50 #7015 [Verbose] > │ let v17 : string = "" │
00:02:50 #7016 [Verbose] > │ let v18 : string = v16 |> String.concat v17 │
00:02:50 #7017 [Verbose] > │ let v19 : string = $"%A{v18}" │
00:02:50 #7018 [Verbose] > │ System.Console.WriteLine v19 │
00:02:50 #7019 [Verbose] > │ let v21 : bool = v18 = "1...5" │
00:02:50 #7020 [Verbose] > │ let v23 : bool = │
00:02:50 #7021 [Verbose] > │ if v21 then │
00:02:50 #7022 [Verbose] > │ true │
00:02:50 #7023 [Verbose] > │ else │
00:02:50 #7024 [Verbose] > │ method2(v21) │
00:02:50 #7025 [Verbose] > │ let v24 : string = "1...5" │
00:02:50 #7026 [Verbose] > │ let v25 : string = $"__expect / actual: %A{v18} / expected: %A{v24}" │
00:02:50 #7027 [Verbose] > │ let v26 : bool = v23 = false │
00:02:50 #7028 [Verbose] > │ if v26 then │
00:02:50 #7029 [Verbose] > │ failwith<unit> v25 │
00:02:50 #7030 [Verbose] > │ let v27 : float = float 3L │
00:02:50 #7031 [Verbose] > │ let v28 : float = v27 / 2.0 │
00:02:50 #7032 [Verbose] > │ let v29 : (float -> float) = ceil │
00:02:50 #7033 [Verbose] > │ let v30 : float = v29 v28 │
00:02:50 #7034 [Verbose] > │ let v31 : int64 = int64 v30 │
00:02:50 #7035 [Verbose] > │ let v32 : (float -> float) = floor │
00:02:50 #7036 [Verbose] > │ let v33 : float = v32 v28 │
00:02:50 #7037 [Verbose] > │ let v34 : int64 = int64 v33 │
00:02:50 #7038 [Verbose] > │ let v35 : int64 = v31 - 1L │
00:02:50 #7039 [Verbose] > │ let v36 : string = "12345".[int 0L..int v35] │
00:02:50 #7040 [Verbose] > │ let v37 : int64 = 5L - v34 │
00:02:50 #7041 [Verbose] > │ let v38 : string = "12345".[int v37..int 4L] │
00:02:50 #7042 [Verbose] > │ let v39 : (string []) = [|v36; v12; v38|] │
00:02:50 #7043 [Verbose] > │ let v40 : (string []) = method1(v39) │
00:02:50 #7044 [Verbose] > │ let v41 : ((string []) -> string seq) = Seq.ofArray │
00:02:50 #7045 [Verbose] > │ let v42 : string seq = v41 v40 │
00:02:50 #7046 [Verbose] > │ let v43 : string = v42 |> String.concat v17 │
00:02:50 #7047 [Verbose] > │ let v44 : string = $"%A{v43}" │
00:02:50 #7048 [Verbose] > │ System.Console.WriteLine v44 │
00:02:50 #7049 [Verbose] > │ let v46 : bool = v43 = "12...5" │
00:02:50 #7050 [Verbose] > │ let v48 : bool = │
00:02:50 #7051 [Verbose] > │ if v46 then │
00:02:50 #7052 [Verbose] > │ true │
00:02:50 #7053 [Verbose] > │ else │
00:02:50 #7054 [Verbose] > │ method2(v46) │
00:02:50 #7055 [Verbose] > │ let v49 : string = "12...5" │
00:02:50 #7056 [Verbose] > │ let v50 : string = $"__expect / actual: %A{v43} / expected: %A{v49}" │
00:02:50 #7057 [Verbose] > │ let v51 : bool = v48 = false │
00:02:50 #7058 [Verbose] > │ if v51 then │
00:02:50 #7059 [Verbose] > │ failwith<unit> v50 │
00:02:50 #7060 [Verbose] > │ let v52 : float = float 4L │
00:02:50 #7061 [Verbose] > │ let v53 : float = v52 / 2.0 │
00:02:50 #7062 [Verbose] > │ let v54 : (float -> float) = ceil │
00:02:50 #7063 [Verbose] > │ let v55 : float = v54 v53 │
00:02:50 #7064 [Verbose] > │ let v56 : int64 = int64 v55 │
00:02:50 #7065 [Verbose] > │ let v57 : (float -> float) = floor │
00:02:50 #7066 [Verbose] > │ let v58 : float = v57 v53 │
00:02:50 #7067 [Verbose] > │ let v59 : int64 = int64 v58 │
00:02:50 #7068 [Verbose] > │ let v60 : int64 = v56 - 1L │
00:02:50 #7069 [Verbose] > │ let v61 : string = "1234567".[int 0L..int v60] │
00:02:50 #7070 [Verbose] > │ let v62 : int64 = 7L - v59 │
00:02:50 #7071 [Verbose] > │ let v63 : string = "1234567".[int v62..int 6L] │
00:02:50 #7072 [Verbose] > │ let v64 : (string []) = [|v61; v12; v63|] │
00:02:50 #7073 [Verbose] > │ let v65 : (string []) = method1(v64) │
00:02:50 #7074 [Verbose] > │ let v66 : ((string []) -> string seq) = Seq.ofArray │
00:02:50 #7075 [Verbose] > │ let v67 : string seq = v66 v65 │
00:02:50 #7076 [Verbose] > │ let v68 : string = v67 |> String.concat v17 │
00:02:50 #7077 [Verbose] > │ let v69 : string = $"%A{v68}" │
00:02:50 #7078 [Verbose] > │ System.Console.WriteLine v69 │
00:02:50 #7079 [Verbose] > │ let v71 : bool = v68 = "12...67" │
00:02:50 #7080 [Verbose] > │ let v73 : bool = │
00:02:50 #7081 [Verbose] > │ if v71 then │
00:02:50 #7082 [Verbose] > │ true │
00:02:50 #7083 [Verbose] > │ else │
00:02:50 #7084 [Verbose] > │ method2(v71) │
00:02:50 #7085 [Verbose] > │ let v74 : string = "12...67" │
00:02:50 #7086 [Verbose] > │ let v75 : string = $"__expect / actual: %A{v68} / expected: %A{v74}" │
00:02:50 #7087 [Verbose] > │ let v76 : bool = v73 = false │
00:02:50 #7088 [Verbose] > │ if v76 then │
00:02:50 #7089 [Verbose] > │ failwith<unit> v75 │
00:02:50 #7090 [Verbose] > │ method0() │
00:02:50 #7091 [Verbose] > │ │
00:02:50 #7092 [Verbose] > │ "1...5" │
00:02:50 #7093 [Verbose] > │ "12...5" │
00:02:50 #7094 [Verbose] > │ "12...67" │
00:02:50 #7095 [Verbose] > │ │
00:02:50 #7096 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:50 #7097 [Verbose] >
00:02:50 #7098 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:50 #7099 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:50 #7100 [Verbose] > │ ## format_ellipsis │
00:02:50 #7101 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:50 #7102 [Verbose] >
00:02:50 #7103 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:50 #7104 [Verbose] > inl format_ellipsis s =
00:02:50 #7105 [Verbose] > s
00:02:50 #7106 [Verbose] > |> format_debug
00:02:50 #7107 [Verbose] > |> ellipsis_end 400
00:02:50 #7108 [Verbose] >
00:02:50 #7109 [Verbose] > ╭─[ 250.30ms - stdout ]────────────────────────────────────────────────────────╮
00:02:50 #7110 [Verbose] > │ () │
00:02:50 #7111 [Verbose] > │ │
00:02:50 #7112 [Verbose] > │ │
00:02:50 #7113 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:50 #7114 [Verbose] >
00:02:50 #7115 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:50 #7116 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:50 #7117 [Verbose] > │ ## split │
00:02:50 #7118 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:50 #7119 [Verbose] >
00:02:50 #7120 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:50 #7121 [Verbose] > inl split (separator : string) (str : string) : array_base string =
00:02:50 #7122 [Verbose] > $"!str.Split !separator"
00:02:50 #7123 [Verbose] >
00:02:50 #7124 [Verbose] > ╭─[ 240.42ms - stdout ]────────────────────────────────────────────────────────╮
00:02:50 #7125 [Verbose] > │ () │
00:02:50 #7126 [Verbose] > │ │
00:02:50 #7127 [Verbose] > │ │
00:02:50 #7128 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:50 #7129 [Verbose] >
00:02:50 #7130 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:50 #7131 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:50 #7132 [Verbose] > │ ## split_string │
00:02:50 #7133 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:50 #7134 [Verbose] >
00:02:50 #7135 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:50 #7136 [Verbose] > inl split_string (separator : array_base string) (str : string) : array_base
00:02:50 #7137 [Verbose] > string =
00:02:50 #7138 [Verbose] > run_target function
00:02:50 #7139 [Verbose] > | Fsharp (Native) => fun () => $"!str.Split (!separator,
00:02:50 #7140 [Verbose] > System.StringSplitOptions.None)"
00:02:50 #7141 [Verbose] > | _ => fun () => str |> split ((a separator : _ i32 _) |> seq.of_array
00:02:50 #7142 [Verbose] > |> concat (join ""))
00:02:50 #7143 [Verbose] >
00:02:50 #7144 [Verbose] > ╭─[ 235.31ms - stdout ]────────────────────────────────────────────────────────╮
00:02:50 #7145 [Verbose] > │ () │
00:02:50 #7146 [Verbose] > │ │
00:02:50 #7147 [Verbose] > │ │
00:02:50 #7148 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:50 #7149 [Verbose] >
00:02:50 #7150 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:50 #7151 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:50 #7152 [Verbose] > │ ## join' │
00:02:50 #7153 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:50 #7154 [Verbose] >
00:02:51 #7155 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:51 #7156 [Verbose] > inl join' (concat : string) (s : a i32 string) : string =
00:02:51 #7157 [Verbose] > $"System.String.Join (!concat, !s)"
00:02:51 #7158 [Verbose] >
00:02:51 #7159 [Verbose] > ╭─[ 242.26ms - stdout ]────────────────────────────────────────────────────────╮
00:02:51 #7160 [Verbose] > │ () │
00:02:51 #7161 [Verbose] > │ │
00:02:51 #7162 [Verbose] > │ │
00:02:51 #7163 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:51 #7164 [Verbose] >
00:02:51 #7165 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:51 #7166 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:51 #7167 [Verbose] > │ ## to_char_array │
00:02:51 #7168 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:51 #7169 [Verbose] >
00:02:51 #7170 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:51 #7171 [Verbose] > inl to_char_array (str : string) : a i32 char =
00:02:51 #7172 [Verbose] > am.init (str |> sm.length) (fun i => sm.index str i)
00:02:51 #7173 [Verbose] >
00:02:51 #7174 [Verbose] > ╭─[ 325.17ms - stdout ]────────────────────────────────────────────────────────╮
00:02:51 #7175 [Verbose] > │ () │
00:02:51 #7176 [Verbose] > │ │
00:02:51 #7177 [Verbose] > │ │
00:02:51 #7178 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:51 #7179 [Verbose] >
00:02:51 #7180 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:51 #7181 [Verbose] > // // test
00:02:51 #7182 [Verbose] >
00:02:51 #7183 [Verbose] > "abc"
00:02:51 #7184 [Verbose] > |> to_char_array
00:02:51 #7185 [Verbose] > |> _assert_eq (a ;[['a'; 'b'; 'c']])
00:02:51 #7186 [Verbose] >
00:02:51 #7187 [Verbose] > ╭─[ 345.06ms - stdout ]────────────────────────────────────────────────────────╮
00:02:51 #7188 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:02:51 #7189 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:02:51 #7190 [Verbose] > │ let v1 : int32 = v0.l0 │
00:02:51 #7191 [Verbose] > │ let v2 : bool = v1 < 3 │
00:02:51 #7192 [Verbose] > │ v2 │
00:02:51 #7193 [Verbose] > │ and method2 (v0 : (char [])) : (char []) = │
00:02:51 #7194 [Verbose] > │ v0 │
00:02:51 #7195 [Verbose] > │ and method3 (v0 : (char []), v1 : (char []), v2 : int32) : bool = │
00:02:51 #7196 [Verbose] > │ let v3 : int32 = v0.Length │
00:02:51 #7197 [Verbose] > │ let v4 : bool = v2 < v3 │
00:02:51 #7198 [Verbose] > │ if v4 then │
00:02:51 #7199 [Verbose] > │ let v5 : char = v0.[int v2] │
00:02:51 #7200 [Verbose] > │ let v6 : char = v1.[int v2] │
00:02:51 #7201 [Verbose] > │ let v7 : bool = v5 = v6 │
00:02:51 #7202 [Verbose] > │ if v7 then │
00:02:51 #7203 [Verbose] > │ let v8 : int32 = v2 + 1 │
00:02:51 #7204 [Verbose] > │ method3(v0, v1, v8) │
00:02:51 #7205 [Verbose] > │ else │
00:02:51 #7206 [Verbose] > │ false │
00:02:51 #7207 [Verbose] > │ else │
00:02:51 #7208 [Verbose] > │ true │
00:02:51 #7209 [Verbose] > │ and method4 (v0 : bool) : bool = │
00:02:51 #7210 [Verbose] > │ v0 │
00:02:51 #7211 [Verbose] > │ and method0 () : unit = │
00:02:51 #7212 [Verbose] > │ let v0 : (char []) = Array.zeroCreate<char> (3) │
00:02:51 #7213 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:02:51 #7214 [Verbose] > │ while method1(v1) do │
00:02:51 #7215 [Verbose] > │ let v3 : int32 = v1.l0 │
00:02:51 #7216 [Verbose] > │ let v4 : char = "abc".[int v3] │
00:02:51 #7217 [Verbose] > │ v0.[int v3] <- v4 │
00:02:51 #7218 [Verbose] > │ let v5 : int32 = v3 + 1 │
00:02:51 #7219 [Verbose] > │ v1.l0 <- v5 │
00:02:51 #7220 [Verbose] > │ () │
00:02:51 #7221 [Verbose] > │ let v6 : (char []) = [|'a'; 'b'; 'c'|] │
00:02:51 #7222 [Verbose] > │ let v7 : (char []) = method2(v6) │
00:02:51 #7223 [Verbose] > │ let v8 : string = $"%A{v0}" │
00:02:51 #7224 [Verbose] > │ System.Console.WriteLine v8 │
00:02:51 #7225 [Verbose] > │ let v9 : int32 = v0.Length │
00:02:51 #7226 [Verbose] > │ let v10 : int32 = v7.Length │
00:02:51 #7227 [Verbose] > │ let v11 : bool = v9 = v10 │
00:02:51 #7228 [Verbose] > │ let v12 : bool = v11 <> true │
00:02:51 #7229 [Verbose] > │ let v15 : bool = │
00:02:51 #7230 [Verbose] > │ if v12 then │
00:02:51 #7231 [Verbose] > │ false │
00:02:51 #7232 [Verbose] > │ else │
00:02:51 #7233 [Verbose] > │ let v13 : int32 = 0 │
00:02:51 #7234 [Verbose] > │ method3(v0, v7, v13) │
00:02:51 #7235 [Verbose] > │ let v17 : bool = │
00:02:51 #7236 [Verbose] > │ if v15 then │
00:02:51 #7237 [Verbose] > │ true │
00:02:51 #7238 [Verbose] > │ else │
00:02:51 #7239 [Verbose] > │ method4(v15) │
00:02:51 #7240 [Verbose] > │ let v18 : string = $"__expect / actual: %A{v0} / expected: %A{v7}" │
00:02:51 #7241 [Verbose] > │ let v19 : bool = v17 = false │
00:02:51 #7242 [Verbose] > │ if v19 then │
00:02:51 #7243 [Verbose] > │ failwith<unit> v18 │
00:02:51 #7244 [Verbose] > │ method0() │
00:02:51 #7245 [Verbose] > │ │
00:02:51 #7246 [Verbose] > │ [|'a'; 'b'; 'c'|] │
00:02:51 #7247 [Verbose] > │ │
00:02:51 #7248 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:51 #7249 [Verbose] >
00:02:51 #7250 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:51 #7251 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:51 #7252 [Verbose] > │ ## to_char_list │
00:02:51 #7253 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:51 #7254 [Verbose] >
00:02:51 #7255 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:51 #7256 [Verbose] > inl to_char_list (str : string) : list char =
00:02:51 #7257 [Verbose] > listm.init (str |> sm.length) (fun (i : i64) => sm.index str i)
00:02:52 #7258 [Verbose] >
00:02:52 #7259 [Verbose] > ╭─[ 245.01ms - stdout ]────────────────────────────────────────────────────────╮
00:02:52 #7260 [Verbose] > │ () │
00:02:52 #7261 [Verbose] > │ │
00:02:52 #7262 [Verbose] > │ │
00:02:52 #7263 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:52 #7264 [Verbose] >
00:02:52 #7265 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:52 #7266 [Verbose] > // // test
00:02:52 #7267 [Verbose] >
00:02:52 #7268 [Verbose] > "abc"
00:02:52 #7269 [Verbose] > |> to_char_list
00:02:52 #7270 [Verbose] > |> _assert_eq [['a'; 'b'; 'c']]
00:02:52 #7271 [Verbose] >
00:02:52 #7272 [Verbose] > ╭─[ 307.70ms - stdout ]────────────────────────────────────────────────────────╮
00:02:52 #7273 [Verbose] > │ type UH0 = │
00:02:52 #7274 [Verbose] > │ | UH0_0 of char * UH0 │
00:02:52 #7275 [Verbose] > │ | UH0_1 │
00:02:52 #7276 [Verbose] > │ let rec method0 () : unit = │
00:02:52 #7277 [Verbose] > │ let v0 : UH0 = UH0_1 │
00:02:52 #7278 [Verbose] > │ let v1 : UH0 = UH0_0('c', v0) │
00:02:52 #7279 [Verbose] > │ let v2 : UH0 = UH0_0('b', v1) │
00:02:52 #7280 [Verbose] > │ let v3 : UH0 = UH0_0('a', v2) │
00:02:52 #7281 [Verbose] > │ let v4 : string = $"%A{v3}" │
00:02:52 #7282 [Verbose] > │ System.Console.WriteLine v4 │
00:02:52 #7283 [Verbose] > │ let v23 : UH0 = UH0_1 │
00:02:52 #7284 [Verbose] > │ let v24 : UH0 = UH0_0('c', v23) │
00:02:52 #7285 [Verbose] > │ let v25 : UH0 = UH0_0('b', v24) │
00:02:52 #7286 [Verbose] > │ let v26 : UH0 = UH0_0('a', v25) │
00:02:52 #7287 [Verbose] > │ let v27 : UH0 = UH0_1 │
00:02:52 #7288 [Verbose] > │ let v28 : UH0 = UH0_0('c', v27) │
00:02:52 #7289 [Verbose] > │ let v29 : UH0 = UH0_0('b', v28) │
00:02:52 #7290 [Verbose] > │ let v30 : UH0 = UH0_0('a', v29) │
00:02:52 #7291 [Verbose] > │ let v31 : string = $"__expect / actual: %A{v26} / expected: %A{v30}" │
00:02:52 #7292 [Verbose] > │ () │
00:02:52 #7293 [Verbose] > │ method0() │
00:02:52 #7294 [Verbose] > │ │
00:02:52 #7295 [Verbose] > │ UH0_0 ('a', UH0_0 ('b', UH0_0 ('c', UH0_1))) │
00:02:52 #7296 [Verbose] > │ │
00:02:52 #7297 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:52 #7298 [Verbose] >
00:02:52 #7299 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:52 #7300 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:52 #7301 [Verbose] > │ ## to_string std_string │
00:02:52 #7302 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:52 #7303 [Verbose] >
00:02:52 #7304 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:52 #7305 [Verbose] > open rust
00:02:52 #7306 [Verbose] > instance to_string std_string = from_std_string
00:02:52 #7307 [Verbose] >
00:02:52 #7308 [Verbose] > ╭─[ 206.18ms - stdout ]────────────────────────────────────────────────────────╮
00:02:52 #7309 [Verbose] > │ () │
00:02:52 #7310 [Verbose] > │ │
00:02:52 #7311 [Verbose] > │ │
00:02:52 #7312 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:52 #7313 [Verbose] >
00:02:52 #7314 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:52 #7315 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:52 #7316 [Verbose] > │ ## main │
00:02:52 #7317 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:52 #7318 [Verbose] >
00:02:52 #7319 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:52 #7320 [Verbose] > inl main () =
00:02:52 #7321 [Verbose] > $"let contains x = !contains x" : ()
00:02:52 #7322 [Verbose] > $"let ends_with x = !ends_with x" : ()
00:02:52 #7323 [Verbose] > $"let pad_left x = !pad_left x" : ()
00:02:52 #7324 [Verbose] > $"let pad_right x = !pad_right x" : ()
00:02:52 #7325 [Verbose] > $"let replace x = !replace x" : ()
00:02:52 #7326 [Verbose] > inl slice (a : i32) (b : i32) c = slice a b c
00:02:52 #7327 [Verbose] > $"let slice x = !slice x" : ()
00:02:52 #7328 [Verbose] > $"let split x = !split x" : ()
00:02:52 #7329 [Verbose] > $"let split_string x = !split_string x" : ()
00:02:52 #7330 [Verbose] > $"let starts_with x = !starts_with x" : ()
00:02:52 #7331 [Verbose] > $"let substring x = !substring x" : ()
00:02:52 #7332 [Verbose] > $"let to_lower x = !to_lower x" : ()
00:02:52 #7333 [Verbose] > $"let to_upper x = !to_upper x" : ()
00:02:52 #7334 [Verbose] > $"let trim x = !trim x" : ()
00:02:52 #7335 [Verbose] > $"let trim_end x = !trim_end x" : ()
00:02:52 #7336 [Verbose] > $"let trim_start x = !trim_start x" : ()
00:02:52 #7337 [Verbose] > $"let ellipsis x = !ellipsis x" : ()
00:02:52 #7338 [Verbose] > $"let ellipsis_end x = !ellipsis_end x" : ()
00:02:52 #7339 [Verbose] > $"let format_exception x = !format_exception x" : ()
00:02:52 #7340 [Verbose] > $"let concat_array_trailing x = !concat_array_trailing x" : ()
00:02:52 #7341 [Verbose] > inl concat a (b : seq.seq' string) = concat a b
00:02:52 #7342 [Verbose] > $"let concat x = !concat x" : ()
00:02:52 #7343 [Verbose] > $"let join' x = !join' x" : ()
00:02:52 #7344 [Verbose] > $"let to_char_array x = !to_char_array x" : ()
00:02:53 #7345 [Verbose] >
00:02:53 #7346 [Verbose] > ╭─[ 477.48ms - stdout ]────────────────────────────────────────────────────────╮
00:02:53 #7347 [Verbose] > │ type Mut0 = {mutable l0 : int32; mutable l1 : string} │
00:02:53 #7348 [Verbose] > │ and Mut1 = {mutable l0 : int32} │
00:02:53 #7349 [Verbose] > │ let rec closure1 (v0 : string) (v1 : string) : bool = │
00:02:53 #7350 [Verbose] > │ let v2 : bool = v1.Contains v0 │
00:02:53 #7351 [Verbose] > │ v2 │
00:02:53 #7352 [Verbose] > │ and closure0 () (v0 : string) : (string -> bool) = │
00:02:53 #7353 [Verbose] > │ closure1(v0) │
00:02:53 #7354 [Verbose] > │ and closure3 (v0 : string) (v1 : string) : bool = │
00:02:53 #7355 [Verbose] > │ let v2 : bool = v1.EndsWith v0 │
00:02:53 #7356 [Verbose] > │ v2 │
00:02:53 #7357 [Verbose] > │ and closure2 () (v0 : string) : (string -> bool) = │
00:02:53 #7358 [Verbose] > │ closure3(v0) │
00:02:53 #7359 [Verbose] > │ and closure6 (v0 : int32, v1 : char) (v2 : string) : string = │
00:02:53 #7360 [Verbose] > │ let v3 : string = v2.PadLeft (v0, v1) │
00:02:53 #7361 [Verbose] > │ v3 │
00:02:53 #7362 [Verbose] > │ and closure5 (v0 : int32) (v1 : char) : (string -> string) = │
00:02:53 #7363 [Verbose] > │ closure6(v0, v1) │
00:02:53 #7364 [Verbose] > │ and closure4 () (v0 : int32) : (char -> (string -> string)) = │
00:02:53 #7365 [Verbose] > │ closure5(v0) │
00:02:53 #7366 [Verbose] > │ and closure8 (v0 : int32) (v1 : string) : string = │
00:02:53 #7367 [Verbose] > │ let v2 : string = v1.PadRight v0 │
00:02:53 #7368 [Verbose] > │ v2 │
00:02:53 #7369 [Verbose] > │ and closure7 () (v0 : int32) : (string -> string) = │
00:02:53 #7370 [Verbose] > │ closure8(v0) │
00:02:53 #7371 [Verbose] > │ and closure11 (v0 : string, v1 : string) (v2 : string) : string = │
00:02:53 #7372 [Verbose] > │ let v3 : string = v2.Replace (v0, v1) │
00:02:53 #7373 [Verbose] > │ v3 │
00:02:53 #7374 [Verbose] > │ and closure10 (v0 : string) (v1 : string) : (string -> string) = │
00:02:53 #7375 [Verbose] > │ closure11(v0, v1) │
00:02:53 #7376 [Verbose] > │ and closure9 () (v0 : string) : (string -> (string -> string)) = │
00:02:53 #7377 [Verbose] > │ closure10(v0) │
00:02:53 #7378 [Verbose] > │ and closure14 (v0 : int32, v1 : int32) (v2 : string) : string = │
00:02:53 #7379 [Verbose] > │ let v3 : string = v2.[int v0..int v1] │
00:02:53 #7380 [Verbose] > │ v3 │
00:02:53 #7381 [Verbose] > │ and closure13 (v0 : int32) (v1 : int32) : (string -> string) = │
00:02:53 #7382 [Verbose] > │ closure14(v0, v1) │
00:02:53 #7383 [Verbose] > │ and closure12 () (v0 : int32) : (int32 -> (string -> string)) = │
00:02:53 #7384 [Verbose] > │ closure13(v0) │
00:02:53 #7385 [Verbose] > │ and closure16 (v0 : string) (v1 : string) : (string []) = │
00:02:53 #7386 [Verbose] > │ let v2 : (string []) = v1.Split v0 │
00:02:53 #7387 [Verbose] > │ v2 │
00:02:53 #7388 [Verbose] > │ and closure15 () (v0 : string) : (string -> (string [])) = │
00:02:53 #7389 [Verbose] > │ closure16(v0) │
00:02:53 #7390 [Verbose] > │ and method0 () : string = │
00:02:53 #7391 [Verbose] > │ let v0 : string = "" │
00:02:53 #7392 [Verbose] > │ v0 │
00:02:53 #7393 [Verbose] > │ and closure18 (v0 : (string [])) (v1 : string) : (string []) = │
00:02:53 #7394 [Verbose] > │ let mutable result = None │
00:02:53 #7395 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:02:53 #7396 [Verbose] > │ let v2 : ((string []) -> string seq) = Seq.ofArray │
00:02:53 #7397 [Verbose] > │ let v3 : string seq = v2 v0 │
00:02:53 #7398 [Verbose] > │ let v4 : string = method0() │
00:02:53 #7399 [Verbose] > │ let v5 : string = v3 |> String.concat v4 │
00:02:53 #7400 [Verbose] > │ let v6 : (string []) = v1.Split v5 │
00:02:53 #7401 [Verbose] > │ v6 │
00:02:53 #7402 [Verbose] > │ #endif │
00:02:53 #7403 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:02:53 #7404 [Verbose] > │ let v7 : ((string []) -> string seq) = Seq.ofArray │
00:02:53 #7405 [Verbose] > │ let v8 : string seq = v7 v0 │
00:02:53 #7406 [Verbose] > │ let v9 : string = method0() │
00:02:53 #7407 [Verbose] > │ let v10 : string = v8 |> String.concat v9 │
00:02:53 #7408 [Verbose] > │ let v11 : (string []) = v1.Split v10 │
00:02:53 #7409 [Verbose] > │ v11 │
00:02:53 #7410 [Verbose] > │ #endif │
00:02:53 #7411 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:02:53 #7412 [Verbose] > │ let v12 : (string []) = v1.Split (v0, System.StringSplitOptions.None) │
00:02:53 #7413 [Verbose] > │ v12 │
00:02:53 #7414 [Verbose] > │ #endif │
00:02:53 #7415 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:02:53 #7416 [Verbose] > │ let v13 : ((string []) -> string seq) = Seq.ofArray │
00:02:53 #7417 [Verbose] > │ let v14 : string seq = v13 v0 │
00:02:53 #7418 [Verbose] > │ let v15 : string = method0() │
00:02:53 #7419 [Verbose] > │ let v16 : string = v14 |> String.concat v15 │
00:02:53 #7420 [Verbose] > │ let v17 : (string []) = v1.Split v16 │
00:02:53 #7421 [Verbose] > │ v17 │
00:02:53 #7422 [Verbose] > │ #endif │
00:02:53 #7423 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:02:53 #7424 [Verbose] > │ let v18 : ((string []) -> string seq) = Seq.ofArray │
00:02:53 #7425 [Verbose] > │ let v19 : string seq = v18 v0 │
00:02:53 #7426 [Verbose] > │ let v20 : string = method0() │
00:02:53 #7427 [Verbose] > │ let v21 : string = v19 |> String.concat v20 │
00:02:53 #7428 [Verbose] > │ let v22 : (string []) = v1.Split v21 │
00:02:53 #7429 [Verbose] > │ v22 │
00:02:53 #7430 [Verbose] > │ #endif │
00:02:53 #7431 [Verbose] > │ |> fun x -> result <- Some x │
00:02:53 #7432 [Verbose] > │ let v23 : (string []) = result |> Option.get │
00:02:53 #7433 [Verbose] > │ v23 │
00:02:53 #7434 [Verbose] > │ and closure17 () (v0 : (string [])) : (string -> (string [])) = │
00:02:53 #7435 [Verbose] > │ closure18(v0) │
00:02:53 #7436 [Verbose] > │ and closure20 (v0 : string) (v1 : string) : bool = │
00:02:53 #7437 [Verbose] > │ let v2 : bool = v1.StartsWith v0 │
00:02:53 #7438 [Verbose] > │ v2 │
00:02:53 #7439 [Verbose] > │ and closure19 () (v0 : string) : (string -> bool) = │
00:02:53 #7440 [Verbose] > │ closure20(v0) │
00:02:53 #7441 [Verbose] > │ and closure23 (v0 : int32, v1 : int32) (v2 : string) : string = │
00:02:53 #7442 [Verbose] > │ let v3 : string = v2.Substring (v0, v1) │
00:02:53 #7443 [Verbose] > │ v3 │
00:02:53 #7444 [Verbose] > │ and closure22 (v0 : int32) (v1 : int32) : (string -> string) = │
00:02:53 #7445 [Verbose] > │ closure23(v0, v1) │
00:02:53 #7446 [Verbose] > │ and closure21 () (v0 : int32) : (int32 -> (string -> string)) = │
00:02:53 #7447 [Verbose] > │ closure22(v0) │
00:02:53 #7448 [Verbose] > │ and closure24 () (v0 : string) : string = │
00:02:53 #7449 [Verbose] > │ let v1 : string = v0.ToLower () │
00:02:53 #7450 [Verbose] > │ v1 │
00:02:53 #7451 [Verbose] > │ and closure25 () (v0 : string) : string = │
00:02:53 #7452 [Verbose] > │ let v1 : string = v0.ToUpper () │
00:02:53 #7453 [Verbose] > │ v1 │
00:02:53 #7454 [Verbose] > │ and closure26 () (v0 : string) : string = │
00:02:53 #7455 [Verbose] > │ let v1 : string = v0.Trim () │
00:02:53 #7456 [Verbose] > │ v1 │
00:02:53 #7457 [Verbose] > │ and closure28 (v0 : (char [])) (v1 : string) : string = │
00:02:53 #7458 [Verbose] > │ let v2 : string = v1.TrimEnd v0 │
00:02:53 #7459 [Verbose] > │ v2 │
00:02:53 #7460 [Verbose] > │ and closure27 () (v0 : (char [])) : (string -> string) = │
00:02:53 #7461 [Verbose] > │ closure28(v0) │
00:02:53 #7462 [Verbose] > │ and closure30 (v0 : (char [])) (v1 : string) : string = │
00:02:53 #7463 [Verbose] > │ let v2 : string = v1.TrimStart v0 │
00:02:53 #7464 [Verbose] > │ v2 │
00:02:53 #7465 [Verbose] > │ and closure29 () (v0 : (char [])) : (string -> string) = │
00:02:53 #7466 [Verbose] > │ closure30(v0) │
00:02:53 #7467 [Verbose] > │ and closure32 (v0 : int32) (v1 : string) : string = │
00:02:53 #7468 [Verbose] > │ let v2 : int32 = v1.Length │
00:02:53 #7469 [Verbose] > │ let v3 : bool = v2 <= v0 │
00:02:53 #7470 [Verbose] > │ if v3 then │
00:02:53 #7471 [Verbose] > │ v1 │
00:02:53 #7472 [Verbose] > │ else │
00:02:53 #7473 [Verbose] > │ let v4 : int32 = v0 - 1 │
00:02:53 #7474 [Verbose] > │ let v5 : string = v1.[int 0..int v4] │
00:02:53 #7475 [Verbose] > │ let v6 : string = v5 + "..." │
00:02:53 #7476 [Verbose] > │ v6 │
00:02:53 #7477 [Verbose] > │ and closure31 () (v0 : int32) : (string -> string) = │
00:02:53 #7478 [Verbose] > │ closure32(v0) │
00:02:53 #7479 [Verbose] > │ and method1 (v0 : (string [])) : (string []) = │
00:02:53 #7480 [Verbose] > │ v0 │
00:02:53 #7481 [Verbose] > │ and closure34 (v0 : int64) (v1 : string) : string = │
00:02:53 #7482 [Verbose] > │ let v2 : int64 = System.Convert.ToInt64 v1.Length │
00:02:53 #7483 [Verbose] > │ let v3 : bool = v2 <= v0 │
00:02:53 #7484 [Verbose] > │ if v3 then │
00:02:53 #7485 [Verbose] > │ v1 │
00:02:53 #7486 [Verbose] > │ else │
00:02:53 #7487 [Verbose] > │ let v4 : float = float v0 │
00:02:53 #7488 [Verbose] > │ let v5 : float = v4 / 2.0 │
00:02:53 #7489 [Verbose] > │ let v6 : (float -> float) = ceil │
00:02:53 #7490 [Verbose] > │ let v7 : float = v6 v5 │
00:02:53 #7491 [Verbose] > │ let v8 : int64 = int64 v7 │
00:02:53 #7492 [Verbose] > │ let v9 : (float -> float) = floor │
00:02:53 #7493 [Verbose] > │ let v10 : float = v9 v5 │
00:02:53 #7494 [Verbose] > │ let v11 : int64 = int64 v10 │
00:02:53 #7495 [Verbose] > │ let v12 : int64 = v8 - 1L │
00:02:53 #7496 [Verbose] > │ let v13 : string = v1.[int 0L..int v12] │
00:02:53 #7497 [Verbose] > │ let v14 : int64 = v2 - v11 │
00:02:53 #7498 [Verbose] > │ let v15 : int64 = v2 - 1L │
00:02:53 #7499 [Verbose] > │ let v16 : string = v1.[int v14..int v15] │
00:02:53 #7500 [Verbose] > │ let v17 : string = "..." │
00:02:53 #7501 [Verbose] > │ let v18 : (string []) = [|v13; v17; v16|] │
00:02:53 #7502 [Verbose] > │ let v19 : (string []) = method1(v18) │
00:02:53 #7503 [Verbose] > │ let v20 : ((string []) -> string seq) = Seq.ofArray │
00:02:53 #7504 [Verbose] > │ let v21 : string seq = v20 v19 │
00:02:53 #7505 [Verbose] > │ let v22 : string = "" │
00:02:53 #7506 [Verbose] > │ let v23 : string = v21 |> String.concat v22 │
00:02:53 #7507 [Verbose] > │ v23 │
00:02:53 #7508 [Verbose] > │ and closure33 () (v0 : int64) : (string -> string) = │
00:02:53 #7509 [Verbose] > │ closure34(v0) │
00:02:53 #7510 [Verbose] > │ and closure35 () (v0 : exn) : string = │
00:02:53 #7511 [Verbose] > │ let mutable result = None │
00:02:53 #7512 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:02:53 #7513 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:02:53 #7514 [Verbose] > │ v1 │
00:02:53 #7515 [Verbose] > │ #endif │
00:02:53 #7516 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:02:53 #7517 [Verbose] > │ let v2 : string = $"%A{v0}" │
00:02:53 #7518 [Verbose] > │ v2 │
00:02:53 #7519 [Verbose] > │ #endif │
00:02:53 #7520 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:02:53 #7521 [Verbose] > │ let v3 : string = $"{v0.GetType ()}: {v0.Message}" │
00:02:53 #7522 [Verbose] > │ v3 │
00:02:53 #7523 [Verbose] > │ #endif │
00:02:53 #7524 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:02:53 #7525 [Verbose] > │ let v4 : string = $"%A{v0}" │
00:02:53 #7526 [Verbose] > │ v4 │
00:02:53 #7527 [Verbose] > │ #endif │
00:02:53 #7528 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:02:53 #7529 [Verbose] > │ let v5 : string = $"%A{v0}" │
00:02:53 #7530 [Verbose] > │ v5 │
00:02:53 #7531 [Verbose] > │ #endif │
00:02:53 #7532 [Verbose] > │ |> fun x -> result <- Some x │
00:02:53 #7533 [Verbose] > │ let v6 : string = result |> Option.get │
00:02:53 #7534 [Verbose] > │ v6 │
00:02:53 #7535 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool = │
00:02:53 #7536 [Verbose] > │ let v2 : int32 = v1.l0 │
00:02:53 #7537 [Verbose] > │ let v3 : bool = v2 < v0 │
00:02:53 #7538 [Verbose] > │ v3 │
00:02:53 #7539 [Verbose] > │ and closure37 (v0 : string) (v1 : (string [])) : string = │
00:02:53 #7540 [Verbose] > │ let v2 : int32 = v1.Length │
00:02:53 #7541 [Verbose] > │ let v3 : string = "" │
00:02:53 #7542 [Verbose] > │ let v4 : Mut0 = {l0 = 0; l1 = v3} : Mut0 │
00:02:53 #7543 [Verbose] > │ while method2(v2, v4) do │
00:02:53 #7544 [Verbose] > │ let v6 : int32 = v4.l0 │
00:02:53 #7545 [Verbose] > │ let v7 : string = v4.l1 │
00:02:53 #7546 [Verbose] > │ let v8 : string = v1.[int v6] │
00:02:53 #7547 [Verbose] > │ let v9 : string = v7 + v8 + v0 + "" │
00:02:53 #7548 [Verbose] > │ let v10 : int32 = v6 + 1 │
00:02:53 #7549 [Verbose] > │ v4.l0 <- v10 │
00:02:53 #7550 [Verbose] > │ v4.l1 <- v9 │
00:02:53 #7551 [Verbose] > │ () │
00:02:53 #7552 [Verbose] > │ let v11 : string = v4.l1 │
00:02:53 #7553 [Verbose] > │ v11 │
00:02:53 #7554 [Verbose] > │ and closure36 () (v0 : string) : ((string []) -> string) = │
00:02:53 #7555 [Verbose] > │ closure37(v0) │
00:02:53 #7556 [Verbose] > │ and closure39 (v0 : string) (v1 : string seq) : string = │
00:02:53 #7557 [Verbose] > │ let v2 : string = v1 |> String.concat v0 │
00:02:53 #7558 [Verbose] > │ v2 │
00:02:53 #7559 [Verbose] > │ and closure38 () (v0 : string) : (string seq -> string) = │
00:02:53 #7560 [Verbose] > │ closure39(v0) │
00:02:53 #7561 [Verbose] > │ and closure41 (v0 : string) (v1 : (string [])) : string = │
00:02:53 #7562 [Verbose] > │ let v2 : string = System.String.Join (v0, v1) │
00:02:53 #7563 [Verbose] > │ v2 │
00:02:53 #7564 [Verbose] > │ and closure40 () (v0 : string) : ((string []) -> string) = │
00:02:53 #7565 [Verbose] > │ closure41(v0) │
00:02:53 #7566 [Verbose] > │ and method3 (v0 : int32, v1 : Mut1) : bool = │
00:02:53 #7567 [Verbose] > │ let v2 : int32 = v1.l0 │
00:02:53 #7568 [Verbose] > │ let v3 : bool = v2 < v0 │
00:02:53 #7569 [Verbose] > │ v3 │
00:02:53 #7570 [Verbose] > │ and closure42 () (v0 : string) : (char []) = │
00:02:53 #7571 [Verbose] > │ let v1 : int32 = v0.Length │
00:02:53 #7572 [Verbose] > │ let v2 : (char []) = Array.zeroCreate<char> (v1) │
00:02:53 #7573 [Verbose] > │ let v3 : Mut1 = {l0 = 0} : Mut1 │
00:02:53 #7574 [Verbose] > │ while method3(v1, v3) do │
00:02:53 #7575 [Verbose] > │ let v5 : int32 = v3.l0 │
00:02:53 #7576 [Verbose] > │ let v6 : char = v0.[int v5] │
00:02:53 #7577 [Verbose] > │ v2.[int v5] <- v6 │
00:02:53 #7578 [Verbose] > │ let v7 : int32 = v5 + 1 │
00:02:53 #7579 [Verbose] > │ v3.l0 <- v7 │
00:02:53 #7580 [Verbose] > │ () │
00:02:53 #7581 [Verbose] > │ v2 │
00:02:53 #7582 [Verbose] > │ let v0 : (string -> (string -> bool)) = closure0() │
00:02:53 #7583 [Verbose] > │ let contains x = v0 x │
00:02:53 #7584 [Verbose] > │ let v1 : (string -> (string -> bool)) = closure2() │
00:02:53 #7585 [Verbose] > │ let ends_with x = v1 x │
00:02:53 #7586 [Verbose] > │ let v2 : (int32 -> (char -> (string -> string))) = closure4() │
00:02:53 #7587 [Verbose] > │ let pad_left x = v2 x │
00:02:53 #7588 [Verbose] > │ let v3 : (int32 -> (string -> string)) = closure7() │
00:02:53 #7589 [Verbose] > │ let pad_right x = v3 x │
00:02:53 #7590 [Verbose] > │ let v4 : (string -> (string -> (string -> string))) = closure9() │
00:02:53 #7591 [Verbose] > │ let replace x = v4 x │
00:02:53 #7592 [Verbose] > │ let v5 : (int32 -> (int32 -> (string -> string))) = closure12() │
00:02:53 #7593 [Verbose] > │ let slice x = v5 x │
00:02:53 #7594 [Verbose] > │ let v6 : (string -> (string -> (string []))) = closure15() │
00:02:53 #7595 [Verbose] > │ let split x = v6 x │
00:02:53 #7596 [Verbose] > │ let v7 : ((string []) -> (string -> (string []))) = closure17() │
00:02:53 #7597 [Verbose] > │ let split_string x = v7 x │
00:02:53 #7598 [Verbose] > │ let v8 : (string -> (string -> bool)) = closure19() │
00:02:53 #7599 [Verbose] > │ let starts_with x = v8 x │
00:02:53 #7600 [Verbose] > │ let v9 : (int32 -> (int32 -> (string -> string))) = closure21() │
00:02:53 #7601 [Verbose] > │ let substring x = v9 x │
00:02:53 #7602 [Verbose] > │ let v10 : (string -> string) = closure24() │
00:02:53 #7603 [Verbose] > │ let to_lower x = v10 x │
00:02:53 #7604 [Verbose] > │ let v11 : (string -> string) = closure25() │
00:02:53 #7605 [Verbose] > │ let to_upper x = v11 x │
00:02:53 #7606 [Verbose] > │ let v12 : (string -> string) = closure26() │
00:02:53 #7607 [Verbose] > │ let trim x = v12 x │
00:02:53 #7608 [Verbose] > │ let v13 : ((char []) -> (string -> string)) = closure27() │
00:02:53 #7609 [Verbose] > │ let trim_end x = v13 x │
00:02:53 #7610 [Verbose] > │ let v14 : ((char []) -> (string -> string)) = closure29() │
00:02:53 #7611 [Verbose] > │ let trim_start x = v14 x │
00:02:53 #7612 [Verbose] > │ let v15 : (int32 -> (string -> string)) = closure31() │
00:02:53 #7613 [Verbose] > │ let ellipsis x = v15 x │
00:02:53 #7614 [Verbose] > │ let v16 : (int64 -> (string -> string)) = closure33() │
00:02:53 #7615 [Verbose] > │ let ellipsis_end x = v16 x │
00:02:53 #7616 [Verbose] > │ let v17 : (exn -> string) = closure35() │
00:02:53 #7617 [Verbose] > │ let format_exception x = v17 x │
00:02:53 #7618 [Verbose] > │ let v18 : (string -> ((string []) -> string)) = closure36() │
00:02:53 #7619 [Verbose] > │ let concat_array_trailing x = v18 x │
00:02:53 #7620 [Verbose] > │ let v19 : (string -> (string seq -> string)) = closure38() │
00:02:53 #7621 [Verbose] > │ let concat x = v19 x │
00:02:53 #7622 [Verbose] > │ let v20 : (string -> ((string []) -> string)) = closure40() │
00:02:53 #7623 [Verbose] > │ let join' x = v20 x │
00:02:53 #7624 [Verbose] > │ let v21 : (string -> (char [])) = closure42() │
00:02:53 #7625 [Verbose] > │ let to_char_array x = v21 x │
00:02:53 #7626 [Verbose] > │ () │
00:02:53 #7627 [Verbose] > │ │
00:02:53 #7628 [Verbose] > │ │
00:02:53 #7629 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:54 #7630 [Verbose] > [NbConvertApp] Converting notebook sm'.dib.ipynb to html
00:02:54 #7631 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:02:54 #7632 [Verbose] > validate(nb)
00:02:55 #7633 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:02:55 #7634 [Verbose] > return _pygments_highlight(
00:02:56 #7635 [Verbose] > [NbConvertApp] Writing 441765 bytes to sm'.dib.html
00:02:56 #7636 [Debug] executeAsync / exitCode: 0 / output.Length: 140359
00:02:56 #7637 [Debug] main / executeCommand / exitCode: 0
00:02:56 #7638 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 \"listm'.dib\" -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:02:59 #7639 [Verbose] >
00:02:59 #7640 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:59 #7641 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:59 #7642 [Verbose] > │ # listm │
00:02:59 #7643 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:59 #7644 [Verbose] >
00:02:59 #7645 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:59 #7646 [Verbose] > // // test
00:02:59 #7647 [Verbose] >
00:02:59 #7648 [Verbose] > open testing
00:02:59 #7649 [Verbose] >
00:02:59 #7650 [Verbose] > prototype append t : t -> t -> t
00:03:02 #7651 [Verbose] >
00:03:02 #7652 [Verbose] > ╭─[ 3.60s - stdout ]───────────────────────────────────────────────────────────╮
00:03:02 #7653 [Verbose] > │ () │
00:03:02 #7654 [Verbose] > │ │
00:03:02 #7655 [Verbose] > │ │
00:03:02 #7656 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:02 #7657 [Verbose] >
00:03:02 #7658 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:02 #7659 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:02 #7660 [Verbose] > │ ## append │
00:03:02 #7661 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:02 #7662 [Verbose] >
00:03:02 #7663 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:02 #7664 [Verbose] > instance append list t =
00:03:02 #7665 [Verbose] > listm.append
00:03:02 #7666 [Verbose] >
00:03:02 #7667 [Verbose] > ╭─[ 224.60ms - stdout ]────────────────────────────────────────────────────────╮
00:03:02 #7668 [Verbose] > │ () │
00:03:02 #7669 [Verbose] > │ │
00:03:02 #7670 [Verbose] > │ │
00:03:02 #7671 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:02 #7672 [Verbose] >
00:03:02 #7673 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:02 #7674 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:02 #7675 [Verbose] > │ ## /@ │
00:03:02 #7676 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:02 #7677 [Verbose] >
00:03:02 #7678 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:02 #7679 [Verbose] > inl (/@) a b =
00:03:02 #7680 [Verbose] > b |> append a
00:03:03 #7681 [Verbose] >
00:03:03 #7682 [Verbose] > ╭─[ 237.78ms - stdout ]────────────────────────────────────────────────────────╮
00:03:03 #7683 [Verbose] > │ () │
00:03:03 #7684 [Verbose] > │ │
00:03:03 #7685 [Verbose] > │ │
00:03:03 #7686 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:03 #7687 [Verbose] >
00:03:03 #7688 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:03 #7689 [Verbose] > // // test
00:03:03 #7690 [Verbose] >
00:03:03 #7691 [Verbose] > [[ "a"; "b" ]] /@ [[ "c"; "d" ]]
00:03:03 #7692 [Verbose] > |> _assert_eq [[ "a"; "b"; "c"; "d" ]]
00:03:04 #7693 [Verbose] >
00:03:04 #7694 [Verbose] > ╭─[ 1.28s - stdout ]───────────────────────────────────────────────────────────╮
00:03:04 #7695 [Verbose] > │ type UH0 = │
00:03:04 #7696 [Verbose] > │ | UH0_0 of string * UH0 │
00:03:04 #7697 [Verbose] > │ | UH0_1 │
00:03:04 #7698 [Verbose] > │ let rec method0 () : unit = │
00:03:04 #7699 [Verbose] > │ let v0 : string = "a" │
00:03:04 #7700 [Verbose] > │ let v1 : string = "b" │
00:03:04 #7701 [Verbose] > │ let v2 : string = "c" │
00:03:04 #7702 [Verbose] > │ let v3 : string = "d" │
00:03:04 #7703 [Verbose] > │ let v4 : UH0 = UH0_1 │
00:03:04 #7704 [Verbose] > │ let v5 : UH0 = UH0_0(v3, v4) │
00:03:04 #7705 [Verbose] > │ let v6 : UH0 = UH0_0(v2, v5) │
00:03:04 #7706 [Verbose] > │ let v7 : UH0 = UH0_0(v1, v6) │
00:03:04 #7707 [Verbose] > │ let v8 : UH0 = UH0_0(v0, v7) │
00:03:04 #7708 [Verbose] > │ let v9 : string = $"%A{v8}" │
00:03:04 #7709 [Verbose] > │ System.Console.WriteLine v9 │
00:03:04 #7710 [Verbose] > │ let v35 : UH0 = UH0_1 │
00:03:04 #7711 [Verbose] > │ let v36 : UH0 = UH0_0(v3, v35) │
00:03:04 #7712 [Verbose] > │ let v37 : UH0 = UH0_0(v2, v36) │
00:03:04 #7713 [Verbose] > │ let v38 : UH0 = UH0_0(v1, v37) │
00:03:04 #7714 [Verbose] > │ let v39 : UH0 = UH0_0(v0, v38) │
00:03:04 #7715 [Verbose] > │ let v40 : UH0 = UH0_1 │
00:03:04 #7716 [Verbose] > │ let v41 : UH0 = UH0_0(v3, v40) │
00:03:04 #7717 [Verbose] > │ let v42 : UH0 = UH0_0(v2, v41) │
00:03:04 #7718 [Verbose] > │ let v43 : UH0 = UH0_0(v1, v42) │
00:03:04 #7719 [Verbose] > │ let v44 : UH0 = UH0_0(v0, v43) │
00:03:04 #7720 [Verbose] > │ let v45 : string = $"__expect / actual: %A{v39} / expected: %A{v44}" │
00:03:04 #7721 [Verbose] > │ () │
00:03:04 #7722 [Verbose] > │ method0() │
00:03:04 #7723 [Verbose] > │ │
00:03:04 #7724 [Verbose] > │ UH0_0 ("a", UH0_0 ("b", UH0_0 ("c", UH0_0 ("d", UH0_1)))) │
00:03:04 #7725 [Verbose] > │ │
00:03:04 #7726 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:04 #7727 [Verbose] >
00:03:04 #7728 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:04 #7729 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:04 #7730 [Verbose] > │ ## init_series │
00:03:04 #7731 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:04 #7732 [Verbose] >
00:03:04 #7733 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:04 #7734 [Verbose] > inl init_series start end inc =
00:03:04 #7735 [Verbose] > inl total : f64 = conv ((end - start) / inc) + 1
00:03:04 #7736 [Verbose] > listm.init total (conv >> (*) inc >> (+) start)
00:03:04 #7737 [Verbose] >
00:03:04 #7738 [Verbose] > ╭─[ 274.29ms - stdout ]────────────────────────────────────────────────────────╮
00:03:04 #7739 [Verbose] > │ () │
00:03:04 #7740 [Verbose] > │ │
00:03:04 #7741 [Verbose] > │ │
00:03:04 #7742 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:04 #7743 [Verbose] >
00:03:04 #7744 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:04 #7745 [Verbose] > // // test
00:03:04 #7746 [Verbose] >
00:03:04 #7747 [Verbose] > init_series 0 1 0.5
00:03:04 #7748 [Verbose] > |> _assert_eq [[ 0f64; 0.5; 1 ]]
00:03:05 #7749 [Verbose] >
00:03:05 #7750 [Verbose] > ╭─[ 313.95ms - stdout ]────────────────────────────────────────────────────────╮
00:03:05 #7751 [Verbose] > │ type UH0 = │
00:03:05 #7752 [Verbose] > │ | UH0_0 of float * UH0 │
00:03:05 #7753 [Verbose] > │ | UH0_1 │
00:03:05 #7754 [Verbose] > │ let rec method0 () : unit = │
00:03:05 #7755 [Verbose] > │ let v0 : UH0 = UH0_1 │
00:03:05 #7756 [Verbose] > │ let v1 : UH0 = UH0_0(1.0, v0) │
00:03:05 #7757 [Verbose] > │ let v2 : UH0 = UH0_0(0.5, v1) │
00:03:05 #7758 [Verbose] > │ let v3 : UH0 = UH0_0(0.0, v2) │
00:03:05 #7759 [Verbose] > │ let v4 : string = $"%A{v3}" │
00:03:05 #7760 [Verbose] > │ System.Console.WriteLine v4 │
00:03:05 #7761 [Verbose] > │ let v23 : UH0 = UH0_1 │
00:03:05 #7762 [Verbose] > │ let v24 : UH0 = UH0_0(1.0, v23) │
00:03:05 #7763 [Verbose] > │ let v25 : UH0 = UH0_0(0.5, v24) │
00:03:05 #7764 [Verbose] > │ let v26 : UH0 = UH0_0(0.0, v25) │
00:03:05 #7765 [Verbose] > │ let v27 : UH0 = UH0_1 │
00:03:05 #7766 [Verbose] > │ let v28 : UH0 = UH0_0(1.0, v27) │
00:03:05 #7767 [Verbose] > │ let v29 : UH0 = UH0_0(0.5, v28) │
00:03:05 #7768 [Verbose] > │ let v30 : UH0 = UH0_0(0.0, v29) │
00:03:05 #7769 [Verbose] > │ let v31 : string = $"__expect / actual: %A{v26} / expected: %A{v30}" │
00:03:05 #7770 [Verbose] > │ () │
00:03:05 #7771 [Verbose] > │ method0() │
00:03:05 #7772 [Verbose] > │ │
00:03:05 #7773 [Verbose] > │ UH0_0 (0.0, UH0_0 (0.5, UH0_0 (1.0, UH0_1))) │
00:03:05 #7774 [Verbose] > │ │
00:03:05 #7775 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:05 #7776 [Verbose] >
00:03:05 #7777 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:05 #7778 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:05 #7779 [Verbose] > │ ## try_item │
00:03:05 #7780 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:05 #7781 [Verbose] >
00:03:05 #7782 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:05 #7783 [Verbose] > inl rec try_item i = function
00:03:05 #7784 [Verbose] > | Cons (x, _) when i = 0 => Some x
00:03:05 #7785 [Verbose] > | Cons (_, xs) => try_item (i - 1) xs
00:03:05 #7786 [Verbose] > | Nil => None
00:03:05 #7787 [Verbose] >
00:03:05 #7788 [Verbose] > ╭─[ 258.41ms - stdout ]────────────────────────────────────────────────────────╮
00:03:05 #7789 [Verbose] > │ () │
00:03:05 #7790 [Verbose] > │ │
00:03:05 #7791 [Verbose] > │ │
00:03:05 #7792 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:05 #7793 [Verbose] >
00:03:05 #7794 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:05 #7795 [Verbose] > // // test
00:03:05 #7796 [Verbose] >
00:03:05 #7797 [Verbose] > listm.init 10i32 id
00:03:05 #7798 [Verbose] > |> try_item 9i32
00:03:05 #7799 [Verbose] > |> _assert_eq (Some 9)
00:03:05 #7800 [Verbose] >
00:03:05 #7801 [Verbose] > ╭─[ 383.42ms - stdout ]────────────────────────────────────────────────────────╮
00:03:05 #7802 [Verbose] > │ type [<Struct>] US0 = │
00:03:05 #7803 [Verbose] > │ | US0_0 │
00:03:05 #7804 [Verbose] > │ | US0_1 of f1_0 : int32 │
00:03:05 #7805 [Verbose] > │ let rec method0 () : unit = │
00:03:05 #7806 [Verbose] > │ let v0 : US0 = US0_1(9) │
00:03:05 #7807 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:03:05 #7808 [Verbose] > │ System.Console.WriteLine v1 │
00:03:05 #7809 [Verbose] > │ let v5 : US0 = US0_1(9) │
00:03:05 #7810 [Verbose] > │ let v6 : US0 = US0_1(9) │
00:03:05 #7811 [Verbose] > │ let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}" │
00:03:05 #7812 [Verbose] > │ () │
00:03:05 #7813 [Verbose] > │ method0() │
00:03:05 #7814 [Verbose] > │ │
00:03:05 #7815 [Verbose] > │ US0_1 9 │
00:03:05 #7816 [Verbose] > │ │
00:03:05 #7817 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:05 #7818 [Verbose] >
00:03:05 #7819 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:05 #7820 [Verbose] > // // test
00:03:05 #7821 [Verbose] >
00:03:05 #7822 [Verbose] > listm.init 10i32 id
00:03:05 #7823 [Verbose] > |> try_item 10i32
00:03:05 #7824 [Verbose] > |> _assert_eq None
00:03:05 #7825 [Verbose] >
00:03:05 #7826 [Verbose] > ╭─[ 246.48ms - stdout ]────────────────────────────────────────────────────────╮
00:03:05 #7827 [Verbose] > │ type [<Struct>] US0 = │
00:03:05 #7828 [Verbose] > │ | US0_0 │
00:03:05 #7829 [Verbose] > │ | US0_1 of f1_0 : int32 │
00:03:05 #7830 [Verbose] > │ let rec method0 () : unit = │
00:03:05 #7831 [Verbose] > │ let v0 : US0 = US0_0 │
00:03:05 #7832 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:03:05 #7833 [Verbose] > │ System.Console.WriteLine v1 │
00:03:05 #7834 [Verbose] > │ let v5 : US0 = US0_0 │
00:03:05 #7835 [Verbose] > │ let v6 : US0 = US0_0 │
00:03:05 #7836 [Verbose] > │ let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}" │
00:03:05 #7837 [Verbose] > │ () │
00:03:05 #7838 [Verbose] > │ method0() │
00:03:05 #7839 [Verbose] > │ │
00:03:05 #7840 [Verbose] > │ US0_0 │
00:03:05 #7841 [Verbose] > │ │
00:03:05 #7842 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:05 #7843 [Verbose] >
00:03:05 #7844 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:05 #7845 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:05 #7846 [Verbose] > │ ## list_item │
00:03:05 #7847 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:05 #7848 [Verbose] >
00:03:05 #7849 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:05 #7850 [Verbose] > inl item i =
00:03:05 #7851 [Verbose] > try_item i >> optionm.value
00:03:06 #7852 [Verbose] >
00:03:06 #7853 [Verbose] > ╭─[ 246.17ms - stdout ]────────────────────────────────────────────────────────╮
00:03:06 #7854 [Verbose] > │ () │
00:03:06 #7855 [Verbose] > │ │
00:03:06 #7856 [Verbose] > │ │
00:03:06 #7857 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:06 #7858 [Verbose] >
00:03:06 #7859 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:06 #7860 [Verbose] > // // test
00:03:06 #7861 [Verbose] >
00:03:06 #7862 [Verbose] > listm.init 10i32 id
00:03:06 #7863 [Verbose] > |> item 9i32
00:03:06 #7864 [Verbose] > |> _assert_eq 9
00:03:06 #7865 [Verbose] >
00:03:06 #7866 [Verbose] > ╭─[ 295.90ms - stdout ]────────────────────────────────────────────────────────╮
00:03:06 #7867 [Verbose] > │ let rec method0 () : unit = │
00:03:06 #7868 [Verbose] > │ let v0 : string = $"%A{9}" │
00:03:06 #7869 [Verbose] > │ System.Console.WriteLine v0 │
00:03:06 #7870 [Verbose] > │ let v1 : string = $"__expect / actual: %A{9} / expected: %A{9}" │
00:03:06 #7871 [Verbose] > │ () │
00:03:06 #7872 [Verbose] > │ method0() │
00:03:06 #7873 [Verbose] > │ │
00:03:06 #7874 [Verbose] > │ 9 │
00:03:06 #7875 [Verbose] > │ │
00:03:06 #7876 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:06 #7877 [Verbose] >
00:03:06 #7878 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:06 #7879 [Verbose] > // // test
00:03:06 #7880 [Verbose] >
00:03:06 #7881 [Verbose] > fun () =>
00:03:06 #7882 [Verbose] > listm.init 10i32 id
00:03:06 #7883 [Verbose] > |> item 10i32
00:03:06 #7884 [Verbose] > |> ignore
00:03:06 #7885 [Verbose] > |> _throws
00:03:06 #7886 [Verbose] > |> optionm.map sm'.format_exception
00:03:06 #7887 [Verbose] > |> _assert_eq (Some "System.Exception: Option does not have a value.")
00:03:06 #7888 [Verbose] >
00:03:06 #7889 [Verbose] > ╭─[ 499.21ms - stdout ]────────────────────────────────────────────────────────╮
00:03:06 #7890 [Verbose] > │ type [<Struct>] US0 = │
00:03:06 #7891 [Verbose] > │ | US0_0 │
00:03:06 #7892 [Verbose] > │ | US0_1 of f1_0 : exn │
00:03:06 #7893 [Verbose] > │ and [<Struct>] US1 = │
00:03:06 #7894 [Verbose] > │ | US1_0 │
00:03:06 #7895 [Verbose] > │ | US1_1 of f1_0 : string │
00:03:06 #7896 [Verbose] > │ let rec closure0 () () : unit = │
00:03:06 #7897 [Verbose] > │ let v0 : int32 = failwith<int32> "Option does not have a value." │
00:03:06 #7898 [Verbose] > │ () │
00:03:06 #7899 [Verbose] > │ and closure1 () (v0 : exn) : US0 = │
00:03:06 #7900 [Verbose] > │ US0_1(v0) │
00:03:06 #7901 [Verbose] > │ and method1 (v0 : bool) : bool = │
00:03:06 #7902 [Verbose] > │ v0 │
00:03:06 #7903 [Verbose] > │ and method0 () : unit = │
00:03:06 #7904 [Verbose] > │ let v0 : (unit -> unit) = closure0() │
00:03:06 #7905 [Verbose] > │ let v1 : US0 = US0_0 │
00:03:06 #7906 [Verbose] > │ let v2 : (exn -> US0) = closure1() │
00:03:06 #7907 [Verbose] > │ let v3 : US0 = try v0 (); v1 with ex -> ex |> v2 │
00:03:06 #7908 [Verbose] > │ let v14 : US1 = │
00:03:06 #7909 [Verbose] > │ match v3 with │
00:03:06 #7910 [Verbose] > │ | US0_0 -> (* None *) │
00:03:06 #7911 [Verbose] > │ US1_0 │
00:03:06 #7912 [Verbose] > │ | US0_1(v4) -> (* Some *) │
00:03:06 #7913 [Verbose] > │ let mutable result = None │
00:03:06 #7914 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:03:06 #7915 [Verbose] > │ let v5 : string = $"%A{v4}" │
00:03:06 #7916 [Verbose] > │ v5 │
00:03:06 #7917 [Verbose] > │ #endif │
00:03:07 #7918 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:03:07 #7919 [Verbose] > │ let v6 : string = $"%A{v4}" │
00:03:07 #7920 [Verbose] > │ v6 │
00:03:07 #7921 [Verbose] > │ #endif │
00:03:07 #7922 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:07 #7923 [Verbose] > │ let v7 : string = $"{v4.GetType ()}: {v4.Message}" │
00:03:07 #7924 [Verbose] > │ v7 │
00:03:07 #7925 [Verbose] > │ #endif │
00:03:07 #7926 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:07 #7927 [Verbose] > │ let v8 : string = $"%A{v4}" │
00:03:07 #7928 [Verbose] > │ v8 │
00:03:07 #7929 [Verbose] > │ #endif │
00:03:07 #7930 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:03:07 #7931 [Verbose] > │ let v9 : string = $"%A{v4}" │
00:03:07 #7932 [Verbose] > │ v9 │
00:03:07 #7933 [Verbose] > │ #endif │
00:03:07 #7934 [Verbose] > │ |> fun x -> result <- Some x │
00:03:07 #7935 [Verbose] > │ let v10 : string = result |> Option.get │
00:03:07 #7936 [Verbose] > │ US1_1(v10) │
00:03:07 #7937 [Verbose] > │ let v15 : string = $"%A{v14}" │
00:03:07 #7938 [Verbose] > │ System.Console.WriteLine v15 │
00:03:07 #7939 [Verbose] > │ let v20 : bool = │
00:03:07 #7940 [Verbose] > │ match v14 with │
00:03:07 #7941 [Verbose] > │ | US1_1(v18) -> (* Some *) │
00:03:07 #7942 [Verbose] > │ let v19 : bool = v18 = "System.Exception: Option does not have a │
00:03:07 #7943 [Verbose] > │ value." │
00:03:07 #7944 [Verbose] > │ v19 │
00:03:07 #7945 [Verbose] > │ | _ -> │
00:03:07 #7946 [Verbose] > │ false │
00:03:07 #7947 [Verbose] > │ let v22 : bool = │
00:03:07 #7948 [Verbose] > │ if v20 then │
00:03:07 #7949 [Verbose] > │ true │
00:03:07 #7950 [Verbose] > │ else │
00:03:07 #7951 [Verbose] > │ method1(v20) │
00:03:07 #7952 [Verbose] > │ let v23 : string = "System.Exception: Option does not have a value." │
00:03:07 #7953 [Verbose] > │ let v24 : US1 = US1_1(v23) │
00:03:07 #7954 [Verbose] > │ let v25 : string = $"__expect / actual: %A{v14} / expected: %A{v24}" │
00:03:07 #7955 [Verbose] > │ let v26 : bool = v22 = false │
00:03:07 #7956 [Verbose] > │ if v26 then │
00:03:07 #7957 [Verbose] > │ failwith<unit> v25 │
00:03:07 #7958 [Verbose] > │ method0() │
00:03:07 #7959 [Verbose] > │ │
00:03:07 #7960 [Verbose] > │ US1_1 "System.Exception: Option does not have a value." │
00:03:07 #7961 [Verbose] > │ │
00:03:07 #7962 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:07 #7963 [Verbose] >
00:03:07 #7964 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:07 #7965 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:07 #7966 [Verbose] > │ ## try_item_ │
00:03:07 #7967 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:07 #7968 [Verbose] >
00:03:07 #7969 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:07 #7970 [Verbose] > let rec try_item_ i = function
00:03:07 #7971 [Verbose] > | Cons (x, _) when i = 0 => Some x
00:03:07 #7972 [Verbose] > | Cons (_, xs) => try_item_ (i - 1) xs
00:03:07 #7973 [Verbose] > | Nil => None
00:03:07 #7974 [Verbose] >
00:03:07 #7975 [Verbose] > ╭─[ 258.13ms - stdout ]────────────────────────────────────────────────────────╮
00:03:07 #7976 [Verbose] > │ () │
00:03:07 #7977 [Verbose] > │ │
00:03:07 #7978 [Verbose] > │ │
00:03:07 #7979 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:07 #7980 [Verbose] >
00:03:07 #7981 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:07 #7982 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:07 #7983 [Verbose] > │ ## item_ │
00:03:07 #7984 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:07 #7985 [Verbose] >
00:03:07 #7986 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:07 #7987 [Verbose] > inl item_ i =
00:03:07 #7988 [Verbose] > try_item_ i >> optionm.value
00:03:07 #7989 [Verbose] >
00:03:07 #7990 [Verbose] > ╭─[ 287.64ms - stdout ]────────────────────────────────────────────────────────╮
00:03:07 #7991 [Verbose] > │ () │
00:03:07 #7992 [Verbose] > │ │
00:03:07 #7993 [Verbose] > │ │
00:03:07 #7994 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:07 #7995 [Verbose] >
00:03:07 #7996 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:07 #7997 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:07 #7998 [Verbose] > │ ## sum │
00:03:07 #7999 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:07 #8000 [Verbose] >
00:03:07 #8001 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:07 #8002 [Verbose] > inl sum list =
00:03:07 #8003 [Verbose] > list |> listm.fold (+) 0
00:03:07 #8004 [Verbose] >
00:03:07 #8005 [Verbose] > ╭─[ 230.69ms - stdout ]────────────────────────────────────────────────────────╮
00:03:07 #8006 [Verbose] > │ () │
00:03:07 #8007 [Verbose] > │ │
00:03:07 #8008 [Verbose] > │ │
00:03:07 #8009 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:07 #8010 [Verbose] >
00:03:07 #8011 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:07 #8012 [Verbose] > // // test
00:03:07 #8013 [Verbose] >
00:03:07 #8014 [Verbose] > listm.init 10i32 id
00:03:07 #8015 [Verbose] > |> sum
00:03:07 #8016 [Verbose] > |> _assert_eq 45
00:03:08 #8017 [Verbose] >
00:03:08 #8018 [Verbose] > ╭─[ 302.51ms - stdout ]────────────────────────────────────────────────────────╮
00:03:08 #8019 [Verbose] > │ let rec method0 () : unit = │
00:03:08 #8020 [Verbose] > │ let v0 : string = $"%A{45}" │
00:03:08 #8021 [Verbose] > │ System.Console.WriteLine v0 │
00:03:08 #8022 [Verbose] > │ let v1 : string = $"__expect / actual: %A{45} / expected: %A{45}" │
00:03:08 #8023 [Verbose] > │ () │
00:03:08 #8024 [Verbose] > │ method0() │
00:03:08 #8025 [Verbose] > │ │
00:03:08 #8026 [Verbose] > │ 45 │
00:03:08 #8027 [Verbose] > │ │
00:03:08 #8028 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:08 #8029 [Verbose] >
00:03:08 #8030 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:08 #8031 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:08 #8032 [Verbose] > │ ## unzip │
00:03:08 #8033 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:08 #8034 [Verbose] >
00:03:08 #8035 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:08 #8036 [Verbose] > inl unzip list =
00:03:08 #8037 [Verbose] > (([[]], [[]]), list)
00:03:08 #8038 [Verbose] > ||> listm.fold fun (acc_x, acc_y) (x, y) =>
00:03:08 #8039 [Verbose] > x :: acc_x, y :: acc_y
00:03:08 #8040 [Verbose] > |> fun x, y =>
00:03:08 #8041 [Verbose] > x |> listm.rev, y |> listm.rev
00:03:08 #8042 [Verbose] >
00:03:08 #8043 [Verbose] > ╭─[ 253.04ms - stdout ]────────────────────────────────────────────────────────╮
00:03:08 #8044 [Verbose] > │ () │
00:03:08 #8045 [Verbose] > │ │
00:03:08 #8046 [Verbose] > │ │
00:03:08 #8047 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:08 #8048 [Verbose] >
00:03:08 #8049 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:08 #8050 [Verbose] > // // test
00:03:08 #8051 [Verbose] >
00:03:08 #8052 [Verbose] > listm.init 10i32 id
00:03:08 #8053 [Verbose] > |> listm.map (fun x => x, x)
00:03:08 #8054 [Verbose] > |> unzip
00:03:08 #8055 [Verbose] > |> fun x, y =>
00:03:08 #8056 [Verbose] > x |> sum
00:03:08 #8057 [Verbose] > |> _assert_eq 45
00:03:08 #8058 [Verbose] >
00:03:08 #8059 [Verbose] > y |> sum
00:03:08 #8060 [Verbose] > |> _assert_eq 45
00:03:08 #8061 [Verbose] >
00:03:08 #8062 [Verbose] > ╭─[ 278.38ms - stdout ]────────────────────────────────────────────────────────╮
00:03:08 #8063 [Verbose] > │ let rec method0 () : unit = │
00:03:08 #8064 [Verbose] > │ let v0 : string = $"%A{45}" │
00:03:08 #8065 [Verbose] > │ System.Console.WriteLine v0 │
00:03:08 #8066 [Verbose] > │ let v1 : string = $"__expect / actual: %A{45} / expected: %A{45}" │
00:03:08 #8067 [Verbose] > │ let v2 : string = $"%A{45}" │
00:03:08 #8068 [Verbose] > │ System.Console.WriteLine v2 │
00:03:08 #8069 [Verbose] > │ let v3 : string = $"__expect / actual: %A{45} / expected: %A{45}" │
00:03:08 #8070 [Verbose] > │ () │
00:03:08 #8071 [Verbose] > │ method0() │
00:03:08 #8072 [Verbose] > │ │
00:03:08 #8073 [Verbose] > │ 45 │
00:03:08 #8074 [Verbose] > │ 45 │
00:03:08 #8075 [Verbose] > │ │
00:03:08 #8076 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:08 #8077 [Verbose] >
00:03:08 #8078 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:08 #8079 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:08 #8080 [Verbose] > │ ## try_index_of │
00:03:08 #8081 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:08 #8082 [Verbose] >
00:03:08 #8083 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:08 #8084 [Verbose] > inl try_index_of item list =
00:03:08 #8085 [Verbose] > inl rec loop i = function
00:03:08 #8086 [Verbose] > | [[]] => None
00:03:08 #8087 [Verbose] > | x :: xs =>
00:03:08 #8088 [Verbose] > if x = item
00:03:08 #8089 [Verbose] > then Some i
00:03:08 #8090 [Verbose] > else loop (i + 1) xs
00:03:08 #8091 [Verbose] > loop 0 list
00:03:08 #8092 [Verbose] >
00:03:08 #8093 [Verbose] > inl index_of item =
00:03:08 #8094 [Verbose] > try_index_of item >> optionm.value
00:03:08 #8095 [Verbose] >
00:03:08 #8096 [Verbose] > inl try_index_of_ item list =
00:03:08 #8097 [Verbose] > let rec loop i = function
00:03:08 #8098 [Verbose] > | [[]] => None
00:03:08 #8099 [Verbose] > | x :: xs =>
00:03:08 #8100 [Verbose] > if x = item
00:03:08 #8101 [Verbose] > then Some i
00:03:08 #8102 [Verbose] > else loop (i + 1) xs
00:03:08 #8103 [Verbose] > loop 0 list
00:03:08 #8104 [Verbose] >
00:03:08 #8105 [Verbose] > inl index_of_ item =
00:03:08 #8106 [Verbose] > try_index_of_ item >> optionm.value
00:03:08 #8107 [Verbose] >
00:03:08 #8108 [Verbose] > inl try_index_of__ item list =
00:03:08 #8109 [Verbose] > inl i = mut 0
00:03:08 #8110 [Verbose] > inl list = mut list
00:03:08 #8111 [Verbose] > inl result = mut None
00:03:08 #8112 [Verbose] > let rec loop () =
00:03:08 #8113 [Verbose] > match *list with
00:03:08 #8114 [Verbose] > | [[]] => result <- None
00:03:08 #8115 [Verbose] > | x :: xs =>
00:03:08 #8116 [Verbose] > if x = item
00:03:08 #8117 [Verbose] > then result <- Some *i
00:03:08 #8118 [Verbose] > else
00:03:08 #8119 [Verbose] > i <- *i + 1
00:03:08 #8120 [Verbose] > list <- xs
00:03:08 #8121 [Verbose] > loop ()
00:03:08 #8122 [Verbose] > loop ()
00:03:08 #8123 [Verbose] > *result
00:03:08 #8124 [Verbose] >
00:03:08 #8125 [Verbose] > inl index_of__ item =
00:03:08 #8126 [Verbose] > try_index_of__ item >> optionm.value
00:03:08 #8127 [Verbose] >
00:03:08 #8128 [Verbose] > ╭─[ 277.38ms - stdout ]────────────────────────────────────────────────────────╮
00:03:08 #8129 [Verbose] > │ () │
00:03:08 #8130 [Verbose] > │ │
00:03:08 #8131 [Verbose] > │ │
00:03:08 #8132 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:08 #8133 [Verbose] >
00:03:08 #8134 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:08 #8135 [Verbose] > // // test
00:03:08 #8136 [Verbose] >
00:03:08 #8137 [Verbose] > listm.init 10i32 id
00:03:08 #8138 [Verbose] > |> index_of 5i32
00:03:08 #8139 [Verbose] > |> _assert_eq 5i32
00:03:09 #8140 [Verbose] >
00:03:09 #8141 [Verbose] > ╭─[ 270.38ms - stdout ]────────────────────────────────────────────────────────╮
00:03:09 #8142 [Verbose] > │ let rec method0 () : unit = │
00:03:09 #8143 [Verbose] > │ let v0 : string = $"%A{5}" │
00:03:09 #8144 [Verbose] > │ System.Console.WriteLine v0 │
00:03:09 #8145 [Verbose] > │ let v1 : string = $"__expect / actual: %A{5} / expected: %A{5}" │
00:03:09 #8146 [Verbose] > │ () │
00:03:09 #8147 [Verbose] > │ method0() │
00:03:09 #8148 [Verbose] > │ │
00:03:09 #8149 [Verbose] > │ 5 │
00:03:09 #8150 [Verbose] > │ │
00:03:09 #8151 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:09 #8152 [Verbose] >
00:03:09 #8153 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:09 #8154 [Verbose] > // // test
00:03:09 #8155 [Verbose] >
00:03:09 #8156 [Verbose] > listm.init 10i32 id
00:03:09 #8157 [Verbose] > |> try_index_of 10i32
00:03:09 #8158 [Verbose] > |> _assert_eq (None : option i32)
00:03:09 #8159 [Verbose] >
00:03:09 #8160 [Verbose] > ╭─[ 264.97ms - stdout ]────────────────────────────────────────────────────────╮
00:03:09 #8161 [Verbose] > │ type [<Struct>] US0 = │
00:03:09 #8162 [Verbose] > │ | US0_0 │
00:03:09 #8163 [Verbose] > │ | US0_1 of f1_0 : int32 │
00:03:09 #8164 [Verbose] > │ let rec method0 () : unit = │
00:03:09 #8165 [Verbose] > │ let v0 : US0 = US0_0 │
00:03:09 #8166 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:03:09 #8167 [Verbose] > │ System.Console.WriteLine v1 │
00:03:09 #8168 [Verbose] > │ let v5 : US0 = US0_0 │
00:03:09 #8169 [Verbose] > │ let v6 : US0 = US0_0 │
00:03:09 #8170 [Verbose] > │ let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}" │
00:03:09 #8171 [Verbose] > │ () │
00:03:09 #8172 [Verbose] > │ method0() │
00:03:09 #8173 [Verbose] > │ │
00:03:09 #8174 [Verbose] > │ US0_0 │
00:03:09 #8175 [Verbose] > │ │
00:03:09 #8176 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:09 #8177 [Verbose] >
00:03:09 #8178 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:09 #8179 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:09 #8180 [Verbose] > │ ## try_find │
00:03:09 #8181 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:09 #8182 [Verbose] >
00:03:09 #8183 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:09 #8184 [Verbose] > inl try_find fn list =
00:03:09 #8185 [Verbose] > inl rec loop = function
00:03:09 #8186 [Verbose] > | [[]] => None
00:03:09 #8187 [Verbose] > | x :: xs =>
00:03:09 #8188 [Verbose] > if fn x
00:03:09 #8189 [Verbose] > then Some x
00:03:09 #8190 [Verbose] > else loop xs
00:03:09 #8191 [Verbose] > loop list
00:03:09 #8192 [Verbose] >
00:03:09 #8193 [Verbose] > inl try_find_ fn list =
00:03:09 #8194 [Verbose] > let rec loop = function
00:03:09 #8195 [Verbose] > | [[]] => None
00:03:09 #8196 [Verbose] > | x :: xs =>
00:03:09 #8197 [Verbose] > if fn x
00:03:09 #8198 [Verbose] > then Some x
00:03:09 #8199 [Verbose] > else loop xs
00:03:09 #8200 [Verbose] > loop list
00:03:09 #8201 [Verbose] >
00:03:09 #8202 [Verbose] > ╭─[ 309.79ms - stdout ]────────────────────────────────────────────────────────╮
00:03:09 #8203 [Verbose] > │ () │
00:03:09 #8204 [Verbose] > │ │
00:03:09 #8205 [Verbose] > │ │
00:03:09 #8206 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:09 #8207 [Verbose] >
00:03:09 #8208 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:09 #8209 [Verbose] > // // test
00:03:09 #8210 [Verbose] >
00:03:09 #8211 [Verbose] > listm.init 10i32 id
00:03:09 #8212 [Verbose] > |> try_find ((=) 5i32)
00:03:09 #8213 [Verbose] > |> _assert_eq (Some 5i32)
00:03:10 #8214 [Verbose] >
00:03:10 #8215 [Verbose] > ╭─[ 306.01ms - stdout ]────────────────────────────────────────────────────────╮
00:03:10 #8216 [Verbose] > │ type [<Struct>] US0 = │
00:03:10 #8217 [Verbose] > │ | US0_0 │
00:03:10 #8218 [Verbose] > │ | US0_1 of f1_0 : int32 │
00:03:10 #8219 [Verbose] > │ let rec method0 () : unit = │
00:03:10 #8220 [Verbose] > │ let v0 : US0 = US0_1(5) │
00:03:10 #8221 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:03:10 #8222 [Verbose] > │ System.Console.WriteLine v1 │
00:03:10 #8223 [Verbose] > │ let v5 : US0 = US0_1(5) │
00:03:10 #8224 [Verbose] > │ let v6 : US0 = US0_1(5) │
00:03:10 #8225 [Verbose] > │ let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}" │
00:03:10 #8226 [Verbose] > │ () │
00:03:10 #8227 [Verbose] > │ method0() │
00:03:10 #8228 [Verbose] > │ │
00:03:10 #8229 [Verbose] > │ US0_1 5 │
00:03:10 #8230 [Verbose] > │ │
00:03:10 #8231 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:10 #8232 [Verbose] >
00:03:10 #8233 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:10 #8234 [Verbose] > inl find x =
00:03:10 #8235 [Verbose] > try_find x >> optionm.value
00:03:10 #8236 [Verbose] >
00:03:10 #8237 [Verbose] > inl find_ x =
00:03:10 #8238 [Verbose] > try_find_ x >> optionm.value
00:03:10 #8239 [Verbose] >
00:03:10 #8240 [Verbose] > ╭─[ 271.57ms - stdout ]────────────────────────────────────────────────────────╮
00:03:10 #8241 [Verbose] > │ () │
00:03:10 #8242 [Verbose] > │ │
00:03:10 #8243 [Verbose] > │ │
00:03:10 #8244 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:10 #8245 [Verbose] >
00:03:10 #8246 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:10 #8247 [Verbose] > // // test
00:03:10 #8248 [Verbose] >
00:03:10 #8249 [Verbose] > listm.init 10i32 id
00:03:10 #8250 [Verbose] > |> find ((=) 5i32)
00:03:10 #8251 [Verbose] > |> _assert_eq 5i32
00:03:10 #8252 [Verbose] >
00:03:10 #8253 [Verbose] > ╭─[ 234.75ms - stdout ]────────────────────────────────────────────────────────╮
00:03:10 #8254 [Verbose] > │ let rec method0 () : unit = │
00:03:10 #8255 [Verbose] > │ let v0 : string = $"%A{5}" │
00:03:10 #8256 [Verbose] > │ System.Console.WriteLine v0 │
00:03:10 #8257 [Verbose] > │ let v1 : string = $"__expect / actual: %A{5} / expected: %A{5}" │
00:03:10 #8258 [Verbose] > │ () │
00:03:10 #8259 [Verbose] > │ method0() │
00:03:10 #8260 [Verbose] > │ │
00:03:10 #8261 [Verbose] > │ 5 │
00:03:10 #8262 [Verbose] > │ │
00:03:10 #8263 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:10 #8264 [Verbose] >
00:03:10 #8265 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:10 #8266 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:10 #8267 [Verbose] > │ ## choose │
00:03:10 #8268 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:10 #8269 [Verbose] >
00:03:10 #8270 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:10 #8271 [Verbose] > inl choose f l =
00:03:10 #8272 [Verbose] > (l, [[]])
00:03:10 #8273 [Verbose] > ||> listm.foldBack fun x acc =>
00:03:10 #8274 [Verbose] > match f x with
00:03:10 #8275 [Verbose] > | Some y => y :: acc
00:03:10 #8276 [Verbose] > | None => acc
00:03:10 #8277 [Verbose] >
00:03:10 #8278 [Verbose] > ╭─[ 220.48ms - stdout ]────────────────────────────────────────────────────────╮
00:03:10 #8279 [Verbose] > │ () │
00:03:10 #8280 [Verbose] > │ │
00:03:10 #8281 [Verbose] > │ │
00:03:10 #8282 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:10 #8283 [Verbose] >
00:03:10 #8284 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:10 #8285 [Verbose] > // // test
00:03:10 #8286 [Verbose] >
00:03:10 #8287 [Verbose] > listm.init 10i32 id
00:03:10 #8288 [Verbose] > |> choose (fun x => if x % 2 = 0 then Some x else None)
00:03:10 #8289 [Verbose] > |> _assert_eq [[ 0; 2; 4; 6; 8 ]]
00:03:11 #8290 [Verbose] >
00:03:11 #8291 [Verbose] > ╭─[ 302.31ms - stdout ]────────────────────────────────────────────────────────╮
00:03:11 #8292 [Verbose] > │ type UH0 = │
00:03:11 #8293 [Verbose] > │ | UH0_0 of int32 * UH0 │
00:03:11 #8294 [Verbose] > │ | UH0_1 │
00:03:11 #8295 [Verbose] > │ let rec method0 () : unit = │
00:03:11 #8296 [Verbose] > │ let v0 : UH0 = UH0_1 │
00:03:11 #8297 [Verbose] > │ let v1 : UH0 = UH0_0(8, v0) │
00:03:11 #8298 [Verbose] > │ let v2 : UH0 = UH0_0(6, v1) │
00:03:11 #8299 [Verbose] > │ let v3 : UH0 = UH0_0(4, v2) │
00:03:11 #8300 [Verbose] > │ let v4 : UH0 = UH0_0(2, v3) │
00:03:11 #8301 [Verbose] > │ let v5 : UH0 = UH0_0(0, v4) │
00:03:11 #8302 [Verbose] > │ let v6 : string = $"%A{v5}" │
00:03:11 #8303 [Verbose] > │ System.Console.WriteLine v6 │
00:03:11 #8304 [Verbose] > │ let v40 : UH0 = UH0_1 │
00:03:11 #8305 [Verbose] > │ let v41 : UH0 = UH0_0(8, v40) │
00:03:11 #8306 [Verbose] > │ let v42 : UH0 = UH0_0(6, v41) │
00:03:11 #8307 [Verbose] > │ let v43 : UH0 = UH0_0(4, v42) │
00:03:11 #8308 [Verbose] > │ let v44 : UH0 = UH0_0(2, v43) │
00:03:11 #8309 [Verbose] > │ let v45 : UH0 = UH0_0(0, v44) │
00:03:11 #8310 [Verbose] > │ let v46 : UH0 = UH0_1 │
00:03:11 #8311 [Verbose] > │ let v47 : UH0 = UH0_0(8, v46) │
00:03:11 #8312 [Verbose] > │ let v48 : UH0 = UH0_0(6, v47) │
00:03:11 #8313 [Verbose] > │ let v49 : UH0 = UH0_0(4, v48) │
00:03:11 #8314 [Verbose] > │ let v50 : UH0 = UH0_0(2, v49) │
00:03:11 #8315 [Verbose] > │ let v51 : UH0 = UH0_0(0, v50) │
00:03:11 #8316 [Verbose] > │ let v52 : string = $"__expect / actual: %A{v45} / expected: %A{v51}" │
00:03:11 #8317 [Verbose] > │ () │
00:03:11 #8318 [Verbose] > │ method0() │
00:03:11 #8319 [Verbose] > │ │
00:03:11 #8320 [Verbose] > │ UH0_0 (0, UH0_0 (2, UH0_0 (4, UH0_0 (6, UH0_0 (8, UH0_1))))) │
00:03:11 #8321 [Verbose] > │ │
00:03:11 #8322 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:11 #8323 [Verbose] >
00:03:11 #8324 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:11 #8325 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:11 #8326 [Verbose] > │ ## zip_with │
00:03:11 #8327 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:11 #8328 [Verbose] >
00:03:11 #8329 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:11 #8330 [Verbose] > inl zip_with fn xs ys =
00:03:11 #8331 [Verbose] > inl rec loop acc xs ys =
00:03:11 #8332 [Verbose] > match xs, ys with
00:03:11 #8333 [Verbose] > | Cons (x, xs), Cons (y, ys) =>
00:03:11 #8334 [Verbose] > loop (fn x y :: acc) xs ys
00:03:11 #8335 [Verbose] > | _ => listm.rev acc
00:03:11 #8336 [Verbose] > loop [[]] xs ys
00:03:11 #8337 [Verbose] >
00:03:11 #8338 [Verbose] > inl zip_with_ fn xs ys =
00:03:11 #8339 [Verbose] > let rec loop acc xs ys =
00:03:11 #8340 [Verbose] > match xs, ys with
00:03:11 #8341 [Verbose] > | Cons (x, xs), Cons (y, ys) =>
00:03:11 #8342 [Verbose] > loop (fn x y :: acc) xs ys
00:03:11 #8343 [Verbose] > | _ => listm.rev acc
00:03:11 #8344 [Verbose] > loop [[]] xs ys
00:03:11 #8345 [Verbose] >
00:03:11 #8346 [Verbose] > ╭─[ 270.48ms - stdout ]────────────────────────────────────────────────────────╮
00:03:11 #8347 [Verbose] > │ () │
00:03:11 #8348 [Verbose] > │ │
00:03:11 #8349 [Verbose] > │ │
00:03:11 #8350 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:11 #8351 [Verbose] >
00:03:11 #8352 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:11 #8353 [Verbose] > // // test
00:03:11 #8354 [Verbose] >
00:03:11 #8355 [Verbose] > ([[ 1i32; 2; 3 ]], [[ 4; 5; 6 ]])
00:03:11 #8356 [Verbose] > ||> zip_with (+)
00:03:11 #8357 [Verbose] > |> _assert_eq [[ 5; 7; 9 ]]
00:03:11 #8358 [Verbose] >
00:03:11 #8359 [Verbose] > ╭─[ 360.82ms - stdout ]────────────────────────────────────────────────────────╮
00:03:11 #8360 [Verbose] > │ type UH0 = │
00:03:11 #8361 [Verbose] > │ | UH0_0 of int32 * UH0 │
00:03:11 #8362 [Verbose] > │ | UH0_1 │
00:03:11 #8363 [Verbose] > │ let rec method0 () : unit = │
00:03:11 #8364 [Verbose] > │ let v0 : UH0 = UH0_1 │
00:03:11 #8365 [Verbose] > │ let v1 : UH0 = UH0_0(9, v0) │
00:03:11 #8366 [Verbose] > │ let v2 : UH0 = UH0_0(7, v1) │
00:03:11 #8367 [Verbose] > │ let v3 : UH0 = UH0_0(5, v2) │
00:03:11 #8368 [Verbose] > │ let v4 : string = $"%A{v3}" │
00:03:11 #8369 [Verbose] > │ System.Console.WriteLine v4 │
00:03:11 #8370 [Verbose] > │ let v23 : UH0 = UH0_1 │
00:03:11 #8371 [Verbose] > │ let v24 : UH0 = UH0_0(9, v23) │
00:03:11 #8372 [Verbose] > │ let v25 : UH0 = UH0_0(7, v24) │
00:03:11 #8373 [Verbose] > │ let v26 : UH0 = UH0_0(5, v25) │
00:03:11 #8374 [Verbose] > │ let v27 : UH0 = UH0_1 │
00:03:11 #8375 [Verbose] > │ let v28 : UH0 = UH0_0(9, v27) │
00:03:11 #8376 [Verbose] > │ let v29 : UH0 = UH0_0(7, v28) │
00:03:11 #8377 [Verbose] > │ let v30 : UH0 = UH0_0(5, v29) │
00:03:11 #8378 [Verbose] > │ let v31 : string = $"__expect / actual: %A{v26} / expected: %A{v30}" │
00:03:11 #8379 [Verbose] > │ () │
00:03:11 #8380 [Verbose] > │ method0() │
00:03:11 #8381 [Verbose] > │ │
00:03:11 #8382 [Verbose] > │ UH0_0 (5, UH0_0 (7, UH0_0 (9, UH0_1))) │
00:03:11 #8383 [Verbose] > │ │
00:03:11 #8384 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:11 #8385 [Verbose] >
00:03:11 #8386 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:11 #8387 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:11 #8388 [Verbose] > │ ## zip │
00:03:11 #8389 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:11 #8390 [Verbose] >
00:03:11 #8391 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:11 #8392 [Verbose] > inl zip xs ys =
00:03:11 #8393 [Verbose] > zip_with pair xs ys
00:03:11 #8394 [Verbose] >
00:03:11 #8395 [Verbose] > inl zip_ xs ys =
00:03:11 #8396 [Verbose] > zip_with_ pair xs ys
00:03:12 #8397 [Verbose] >
00:03:12 #8398 [Verbose] > ╭─[ 251.89ms - stdout ]────────────────────────────────────────────────────────╮
00:03:12 #8399 [Verbose] > │ () │
00:03:12 #8400 [Verbose] > │ │
00:03:12 #8401 [Verbose] > │ │
00:03:12 #8402 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:12 #8403 [Verbose] >
00:03:12 #8404 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:12 #8405 [Verbose] > // // test
00:03:12 #8406 [Verbose] >
00:03:12 #8407 [Verbose] > ([[ 1i32; 2; 3 ]], [[ 4i32; 5; 6 ]])
00:03:12 #8408 [Verbose] > ||> zip
00:03:12 #8409 [Verbose] > |> _assert_eq [[ 1, 4; 2, 5; 3, 6 ]]
00:03:12 #8410 [Verbose] >
00:03:12 #8411 [Verbose] > ╭─[ 345.14ms - stdout ]────────────────────────────────────────────────────────╮
00:03:12 #8412 [Verbose] > │ type UH0 = │
00:03:12 #8413 [Verbose] > │ | UH0_0 of int32 * int32 * UH0 │
00:03:12 #8414 [Verbose] > │ | UH0_1 │
00:03:12 #8415 [Verbose] > │ let rec method0 () : unit = │
00:03:12 #8416 [Verbose] > │ let v0 : UH0 = UH0_1 │
00:03:12 #8417 [Verbose] > │ let v1 : UH0 = UH0_0(3, 6, v0) │
00:03:12 #8418 [Verbose] > │ let v2 : UH0 = UH0_0(2, 5, v1) │
00:03:12 #8419 [Verbose] > │ let v3 : UH0 = UH0_0(1, 4, v2) │
00:03:12 #8420 [Verbose] > │ let v4 : string = $"%A{v3}" │
00:03:12 #8421 [Verbose] > │ System.Console.WriteLine v4 │
00:03:12 #8422 [Verbose] > │ let v23 : UH0 = UH0_1 │
00:03:12 #8423 [Verbose] > │ let v24 : UH0 = UH0_0(3, 6, v23) │
00:03:12 #8424 [Verbose] > │ let v25 : UH0 = UH0_0(2, 5, v24) │
00:03:12 #8425 [Verbose] > │ let v26 : UH0 = UH0_0(1, 4, v25) │
00:03:12 #8426 [Verbose] > │ let v27 : UH0 = UH0_1 │
00:03:12 #8427 [Verbose] > │ let v28 : UH0 = UH0_0(3, 6, v27) │
00:03:12 #8428 [Verbose] > │ let v29 : UH0 = UH0_0(2, 5, v28) │
00:03:12 #8429 [Verbose] > │ let v30 : UH0 = UH0_0(1, 4, v29) │
00:03:12 #8430 [Verbose] > │ let v31 : string = $"__expect / actual: %A{v26} / expected: %A{v30}" │
00:03:12 #8431 [Verbose] > │ () │
00:03:12 #8432 [Verbose] > │ method0() │
00:03:12 #8433 [Verbose] > │ │
00:03:12 #8434 [Verbose] > │ UH0_0 (1, 4, UH0_0 (2, 5, UH0_0 (3, 6, UH0_1))) │
00:03:12 #8435 [Verbose] > │ │
00:03:12 #8436 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:12 #8437 [Verbose] >
00:03:12 #8438 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:12 #8439 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:12 #8440 [Verbose] > │ ## indexed │
00:03:12 #8441 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:12 #8442 [Verbose] >
00:03:12 #8443 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:12 #8444 [Verbose] > inl indexed list =
00:03:12 #8445 [Verbose] > (([[]], 0), list)
00:03:12 #8446 [Verbose] > ||> listm.fold fun (acc, i) x =>
00:03:12 #8447 [Verbose] > (i, x) :: acc, i + 1
00:03:12 #8448 [Verbose] > |> fst
00:03:12 #8449 [Verbose] > |> listm.rev
00:03:12 #8450 [Verbose] >
00:03:12 #8451 [Verbose] > ╭─[ 247.60ms - stdout ]────────────────────────────────────────────────────────╮
00:03:12 #8452 [Verbose] > │ () │
00:03:12 #8453 [Verbose] > │ │
00:03:12 #8454 [Verbose] > │ │
00:03:12 #8455 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:12 #8456 [Verbose] >
00:03:12 #8457 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:12 #8458 [Verbose] > // // test
00:03:12 #8459 [Verbose] >
00:03:12 #8460 [Verbose] > listm.init 5i32 ((*) 2)
00:03:12 #8461 [Verbose] > |> indexed
00:03:12 #8462 [Verbose] > |> _assert_eq [[ 0i32, 0; 1, 2; 2, 4; 3, 6; 4, 8 ]]
00:03:12 #8463 [Verbose] >
00:03:12 #8464 [Verbose] > ╭─[ 277.05ms - stdout ]────────────────────────────────────────────────────────╮
00:03:12 #8465 [Verbose] > │ type UH0 = │
00:03:12 #8466 [Verbose] > │ | UH0_0 of int32 * int32 * UH0 │
00:03:12 #8467 [Verbose] > │ | UH0_1 │
00:03:12 #8468 [Verbose] > │ let rec method0 () : unit = │
00:03:12 #8469 [Verbose] > │ let v0 : UH0 = UH0_1 │
00:03:12 #8470 [Verbose] > │ let v1 : UH0 = UH0_0(4, 8, v0) │
00:03:12 #8471 [Verbose] > │ let v2 : UH0 = UH0_0(3, 6, v1) │
00:03:12 #8472 [Verbose] > │ let v3 : UH0 = UH0_0(2, 4, v2) │
00:03:12 #8473 [Verbose] > │ let v4 : UH0 = UH0_0(1, 2, v3) │
00:03:12 #8474 [Verbose] > │ let v5 : UH0 = UH0_0(0, 0, v4) │
00:03:12 #8475 [Verbose] > │ let v6 : string = $"%A{v5}" │
00:03:12 #8476 [Verbose] > │ System.Console.WriteLine v6 │
00:03:12 #8477 [Verbose] > │ let v40 : UH0 = UH0_1 │
00:03:12 #8478 [Verbose] > │ let v41 : UH0 = UH0_0(4, 8, v40) │
00:03:12 #8479 [Verbose] > │ let v42 : UH0 = UH0_0(3, 6, v41) │
00:03:12 #8480 [Verbose] > │ let v43 : UH0 = UH0_0(2, 4, v42) │
00:03:12 #8481 [Verbose] > │ let v44 : UH0 = UH0_0(1, 2, v43) │
00:03:12 #8482 [Verbose] > │ let v45 : UH0 = UH0_0(0, 0, v44) │
00:03:12 #8483 [Verbose] > │ let v46 : UH0 = UH0_1 │
00:03:12 #8484 [Verbose] > │ let v47 : UH0 = UH0_0(4, 8, v46) │
00:03:12 #8485 [Verbose] > │ let v48 : UH0 = UH0_0(3, 6, v47) │
00:03:12 #8486 [Verbose] > │ let v49 : UH0 = UH0_0(2, 4, v48) │
00:03:12 #8487 [Verbose] > │ let v50 : UH0 = UH0_0(1, 2, v49) │
00:03:12 #8488 [Verbose] > │ let v51 : UH0 = UH0_0(0, 0, v50) │
00:03:12 #8489 [Verbose] > │ let v52 : string = $"__expect / actual: %A{v45} / expected: %A{v51}" │
00:03:12 #8490 [Verbose] > │ () │
00:03:12 #8491 [Verbose] > │ method0() │
00:03:12 #8492 [Verbose] > │ │
00:03:12 #8493 [Verbose] > │ UH0_0 (0, 0, UH0_0 (1, 2, UH0_0 (2, 4, UH0_0 (3, 6, UH0_0 (4, 8, UH0_1))))) │
00:03:12 #8494 [Verbose] > │ │
00:03:12 #8495 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:12 #8496 [Verbose] >
00:03:12 #8497 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:12 #8498 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:12 #8499 [Verbose] > │ ## group_by │
00:03:12 #8500 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:12 #8501 [Verbose] >
00:03:12 #8502 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:12 #8503 [Verbose] > inl group_by fn list =
00:03:12 #8504 [Verbose] > (list, [[]])
00:03:12 #8505 [Verbose] > ||> listm.foldBack fun x acc =>
00:03:12 #8506 [Verbose] > inl xk = fn x
00:03:12 #8507 [Verbose] > inl found, new_acc =
00:03:12 #8508 [Verbose] > ((false, [[]]), acc)
00:03:12 #8509 [Verbose] > ||> listm.fold fun (found, acc') (k, xs) =>
00:03:12 #8510 [Verbose] > if k = xk
00:03:12 #8511 [Verbose] > then true, (k, x :: xs) :: acc'
00:03:12 #8512 [Verbose] > else found, (k, xs) :: acc'
00:03:12 #8513 [Verbose] > if found
00:03:12 #8514 [Verbose] > then new_acc
00:03:12 #8515 [Verbose] > else (xk, [[ x ]]) :: new_acc
00:03:13 #8516 [Verbose] >
00:03:13 #8517 [Verbose] > ╭─[ 281.11ms - stdout ]────────────────────────────────────────────────────────╮
00:03:13 #8518 [Verbose] > │ () │
00:03:13 #8519 [Verbose] > │ │
00:03:13 #8520 [Verbose] > │ │
00:03:13 #8521 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:13 #8522 [Verbose] >
00:03:13 #8523 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:13 #8524 [Verbose] > // // test
00:03:13 #8525 [Verbose] >
00:03:13 #8526 [Verbose] > listm.init 10i32 id
00:03:13 #8527 [Verbose] > |> group_by (fun x => x % 2 = 0)
00:03:13 #8528 [Verbose] > |> _assert_eq [[ true, [[ 0; 2; 4; 6; 8 ]]; false, [[ 1; 3; 5; 7; 9 ]] ]]
00:03:13 #8529 [Verbose] >
00:03:13 #8530 [Verbose] > ╭─[ 308.00ms - stdout ]────────────────────────────────────────────────────────╮
00:03:13 #8531 [Verbose] > │ type UH0 = │
00:03:13 #8532 [Verbose] > │ | UH0_0 of int32 * UH0 │
00:03:13 #8533 [Verbose] > │ | UH0_1 │
00:03:13 #8534 [Verbose] > │ and UH1 = │
00:03:13 #8535 [Verbose] > │ | UH1_0 of bool * UH0 * UH1 │
00:03:13 #8536 [Verbose] > │ | UH1_1 │
00:03:13 #8537 [Verbose] > │ let rec method0 () : unit = │
00:03:13 #8538 [Verbose] > │ let v0 : UH0 = UH0_1 │
00:03:13 #8539 [Verbose] > │ let v1 : UH0 = UH0_0(8, v0) │
00:03:13 #8540 [Verbose] > │ let v2 : UH0 = UH0_0(6, v1) │
00:03:13 #8541 [Verbose] > │ let v3 : UH0 = UH0_0(4, v2) │
00:03:13 #8542 [Verbose] > │ let v4 : UH0 = UH0_0(2, v3) │
00:03:13 #8543 [Verbose] > │ let v5 : UH0 = UH0_0(0, v4) │
00:03:13 #8544 [Verbose] > │ let v6 : UH0 = UH0_1 │
00:03:13 #8545 [Verbose] > │ let v7 : UH0 = UH0_0(9, v6) │
00:03:13 #8546 [Verbose] > │ let v8 : UH0 = UH0_0(7, v7) │
00:03:13 #8547 [Verbose] > │ let v9 : UH0 = UH0_0(5, v8) │
00:03:13 #8548 [Verbose] > │ let v10 : UH0 = UH0_0(3, v9) │
00:03:13 #8549 [Verbose] > │ let v11 : UH0 = UH0_0(1, v10) │
00:03:13 #8550 [Verbose] > │ let v12 : UH1 = UH1_1 │
00:03:13 #8551 [Verbose] > │ let v13 : UH1 = UH1_0(false, v11, v12) │
00:03:13 #8552 [Verbose] > │ let v14 : UH1 = UH1_0(true, v5, v13) │
00:03:13 #8553 [Verbose] > │ let v15 : string = $"%A{v14}" │
00:03:13 #8554 [Verbose] > │ System.Console.WriteLine v15 │
00:03:13 #8555 [Verbose] > │ let v112 : UH0 = UH0_1 │
00:03:13 #8556 [Verbose] > │ let v113 : UH0 = UH0_0(8, v112) │
00:03:13 #8557 [Verbose] > │ let v114 : UH0 = UH0_0(6, v113) │
00:03:13 #8558 [Verbose] > │ let v115 : UH0 = UH0_0(4, v114) │
00:03:13 #8559 [Verbose] > │ let v116 : UH0 = UH0_0(2, v115) │
00:03:13 #8560 [Verbose] > │ let v117 : UH0 = UH0_0(0, v116) │
00:03:13 #8561 [Verbose] > │ let v118 : UH0 = UH0_1 │
00:03:13 #8562 [Verbose] > │ let v119 : UH0 = UH0_0(9, v118) │
00:03:13 #8563 [Verbose] > │ let v120 : UH0 = UH0_0(7, v119) │
00:03:13 #8564 [Verbose] > │ let v121 : UH0 = UH0_0(5, v120) │
00:03:13 #8565 [Verbose] > │ let v122 : UH0 = UH0_0(3, v121) │
00:03:13 #8566 [Verbose] > │ let v123 : UH0 = UH0_0(1, v122) │
00:03:13 #8567 [Verbose] > │ let v124 : UH1 = UH1_1 │
00:03:13 #8568 [Verbose] > │ let v125 : UH1 = UH1_0(false, v123, v124) │
00:03:13 #8569 [Verbose] > │ let v126 : UH1 = UH1_0(true, v117, v125) │
00:03:13 #8570 [Verbose] > │ let v127 : UH0 = UH0_1 │
00:03:13 #8571 [Verbose] > │ let v128 : UH0 = UH0_0(8, v127) │
00:03:13 #8572 [Verbose] > │ let v129 : UH0 = UH0_0(6, v128) │
00:03:13 #8573 [Verbose] > │ let v130 : UH0 = UH0_0(4, v129) │
00:03:13 #8574 [Verbose] > │ let v131 : UH0 = UH0_0(2, v130) │
00:03:13 #8575 [Verbose] > │ let v132 : UH0 = UH0_0(0, v131) │
00:03:13 #8576 [Verbose] > │ let v133 : UH0 = UH0_1 │
00:03:13 #8577 [Verbose] > │ let v134 : UH0 = UH0_0(9, v133) │
00:03:13 #8578 [Verbose] > │ let v135 : UH0 = UH0_0(7, v134) │
00:03:13 #8579 [Verbose] > │ let v136 : UH0 = UH0_0(5, v135) │
00:03:13 #8580 [Verbose] > │ let v137 : UH0 = UH0_0(3, v136) │
00:03:13 #8581 [Verbose] > │ let v138 : UH0 = UH0_0(1, v137) │
00:03:13 #8582 [Verbose] > │ let v139 : UH1 = UH1_1 │
00:03:13 #8583 [Verbose] > │ let v140 : UH1 = UH1_0(false, v138, v139) │
00:03:13 #8584 [Verbose] > │ let v141 : UH1 = UH1_0(true, v132, v140) │
00:03:13 #8585 [Verbose] > │ let v142 : string = $"__expect / actual: %A{v126} / expected: %A{v141}" │
00:03:13 #8586 [Verbose] > │ () │
00:03:13 #8587 [Verbose] > │ method0() │
00:03:13 #8588 [Verbose] > │ │
00:03:13 #8589 [Verbose] > │ UH1_0 │
00:03:13 #8590 [Verbose] > │ (true, UH0_0 (0, UH0_0 (2, UH0_0 (4, UH0_0 (6, UH0_0 (8, UH0_1))))), │
00:03:13 #8591 [Verbose] > │ UH1_0 │
00:03:13 #8592 [Verbose] > │ (false, UH0_0 (1, UH0_0 (3, UH0_0 (5, UH0_0 (7, UH0_0 (9, UH0_1))))), │
00:03:13 #8593 [Verbose] > │ UH1_1)) │
00:03:13 #8594 [Verbose] > │ │
00:03:13 #8595 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:13 #8596 [Verbose] >
00:03:13 #8597 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:13 #8598 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:13 #8599 [Verbose] > │ ## forall' │
00:03:13 #8600 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:13 #8601 [Verbose] >
00:03:13 #8602 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:13 #8603 [Verbose] > inl forall' fn (head :: tail) =
00:03:13 #8604 [Verbose] > (true, tail)
00:03:13 #8605 [Verbose] > ||> listm.fold fun acc x =>
00:03:13 #8606 [Verbose] > acc && x = head
00:03:13 #8607 [Verbose] >
00:03:13 #8608 [Verbose] > ╭─[ 244.83ms - stdout ]────────────────────────────────────────────────────────╮
00:03:13 #8609 [Verbose] > │ () │
00:03:13 #8610 [Verbose] > │ │
00:03:13 #8611 [Verbose] > │ │
00:03:13 #8612 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:13 #8613 [Verbose] >
00:03:13 #8614 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:13 #8615 [Verbose] > // // test
00:03:13 #8616 [Verbose] >
00:03:13 #8617 [Verbose] > [[ 1i32; 1; 1; 1; 1 ]]
00:03:13 #8618 [Verbose] > |> forall' ((=) 1i32)
00:03:13 #8619 [Verbose] > |> _assert_eq true
00:03:14 #8620 [Verbose] >
00:03:14 #8621 [Verbose] > ╭─[ 309.38ms - stdout ]────────────────────────────────────────────────────────╮
00:03:14 #8622 [Verbose] > │ let rec method0 () : unit = │
00:03:14 #8623 [Verbose] > │ let v0 : string = $"%A{true}" │
00:03:14 #8624 [Verbose] > │ System.Console.WriteLine v0 │
00:03:14 #8625 [Verbose] > │ let v1 : string = $"__expect / actual: %A{true} / expected: %A{true}" │
00:03:14 #8626 [Verbose] > │ () │
00:03:14 #8627 [Verbose] > │ method0() │
00:03:14 #8628 [Verbose] > │ │
00:03:14 #8629 [Verbose] > │ true │
00:03:14 #8630 [Verbose] > │ │
00:03:14 #8631 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:14 #8632 [Verbose] >
00:03:14 #8633 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:14 #8634 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:14 #8635 [Verbose] > │ ## last │
00:03:14 #8636 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:14 #8637 [Verbose] >
00:03:14 #8638 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:14 #8639 [Verbose] > inl last list =
00:03:14 #8640 [Verbose] > list
00:03:14 #8641 [Verbose] > |> listm.rev
00:03:14 #8642 [Verbose] > |> item 0i32
00:03:14 #8643 [Verbose] >
00:03:14 #8644 [Verbose] > ╭─[ 232.10ms - stdout ]────────────────────────────────────────────────────────╮
00:03:14 #8645 [Verbose] > │ () │
00:03:14 #8646 [Verbose] > │ │
00:03:14 #8647 [Verbose] > │ │
00:03:14 #8648 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:14 #8649 [Verbose] >
00:03:14 #8650 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:14 #8651 [Verbose] > // // test
00:03:14 #8652 [Verbose] >
00:03:14 #8653 [Verbose] > listm.init 10i32 id
00:03:14 #8654 [Verbose] > |> last
00:03:14 #8655 [Verbose] > |> _assert_eq 9
00:03:14 #8656 [Verbose] >
00:03:14 #8657 [Verbose] > ╭─[ 245.22ms - stdout ]────────────────────────────────────────────────────────╮
00:03:14 #8658 [Verbose] > │ let rec method0 () : unit = │
00:03:14 #8659 [Verbose] > │ let v0 : string = $"%A{9}" │
00:03:14 #8660 [Verbose] > │ System.Console.WriteLine v0 │
00:03:14 #8661 [Verbose] > │ let v1 : string = $"__expect / actual: %A{9} / expected: %A{9}" │
00:03:14 #8662 [Verbose] > │ () │
00:03:14 #8663 [Verbose] > │ method0() │
00:03:14 #8664 [Verbose] > │ │
00:03:14 #8665 [Verbose] > │ 9 │
00:03:14 #8666 [Verbose] > │ │
00:03:14 #8667 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:14 #8668 [Verbose] >
00:03:14 #8669 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:14 #8670 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:14 #8671 [Verbose] > │ ## try_pick │
00:03:14 #8672 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:14 #8673 [Verbose] >
00:03:14 #8674 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:14 #8675 [Verbose] > inl try_pick fn list =
00:03:14 #8676 [Verbose] > inl rec body fn = function
00:03:14 #8677 [Verbose] > | [[]] => None
00:03:14 #8678 [Verbose] > | x :: xs =>
00:03:14 #8679 [Verbose] > match fn x with
00:03:14 #8680 [Verbose] > | Some y => Some y
00:03:14 #8681 [Verbose] > | None => loop xs
00:03:14 #8682 [Verbose] > and inl loop list =
00:03:14 #8683 [Verbose] > if var_is list |> not
00:03:14 #8684 [Verbose] > then body fn list
00:03:14 #8685 [Verbose] > else
00:03:14 #8686 [Verbose] > inl fn = join fn
00:03:14 #8687 [Verbose] > inl list = dyn list
00:03:14 #8688 [Verbose] > join body fn list
00:03:14 #8689 [Verbose] > loop list
00:03:14 #8690 [Verbose] >
00:03:14 #8691 [Verbose] > ╭─[ 261.20ms - stdout ]────────────────────────────────────────────────────────╮
00:03:14 #8692 [Verbose] > │ () │
00:03:14 #8693 [Verbose] > │ │
00:03:14 #8694 [Verbose] > │ │
00:03:14 #8695 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:14 #8696 [Verbose] >
00:03:14 #8697 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:14 #8698 [Verbose] > // // test
00:03:14 #8699 [Verbose] >
00:03:14 #8700 [Verbose] > listm.init 10i32 id
00:03:14 #8701 [Verbose] > |> try_pick (fun x => if x = 5i32 then Some x else None)
00:03:14 #8702 [Verbose] > |> _assert_eq (Some 5i32)
00:03:15 #8703 [Verbose] >
00:03:15 #8704 [Verbose] > ╭─[ 286.94ms - stdout ]────────────────────────────────────────────────────────╮
00:03:15 #8705 [Verbose] > │ type [<Struct>] US0 = │
00:03:15 #8706 [Verbose] > │ | US0_0 │
00:03:15 #8707 [Verbose] > │ | US0_1 of f1_0 : int32 │
00:03:15 #8708 [Verbose] > │ let rec method0 () : unit = │
00:03:15 #8709 [Verbose] > │ let v0 : US0 = US0_1(5) │
00:03:15 #8710 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:03:15 #8711 [Verbose] > │ System.Console.WriteLine v1 │
00:03:15 #8712 [Verbose] > │ let v5 : US0 = US0_1(5) │
00:03:15 #8713 [Verbose] > │ let v6 : US0 = US0_1(5) │
00:03:15 #8714 [Verbose] > │ let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}" │
00:03:15 #8715 [Verbose] > │ () │
00:03:15 #8716 [Verbose] > │ method0() │
00:03:15 #8717 [Verbose] > │ │
00:03:15 #8718 [Verbose] > │ US0_1 5 │
00:03:15 #8719 [Verbose] > │ │
00:03:15 #8720 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:16 #8721 [Verbose] > [NbConvertApp] Converting notebook listm'.dib.ipynb to html
00:03:16 #8722 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:03:16 #8723 [Verbose] > validate(nb)
00:03:17 #8724 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:03:17 #8725 [Verbose] > return _pygments_highlight(
00:03:17 #8726 [Verbose] > [NbConvertApp] Writing 367719 bytes to listm'.dib.html
00:03:18 #8727 [Debug] executeAsync / exitCode: 0 / output.Length: 63965
00:03:18 #8728 [Debug] main / executeCommand / exitCode: 0
00:03:18 #8729 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 benchmark.dib" -Retries 3"
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:03:20 #8730 [Verbose] >
00:03:20 #8731 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:20 #8732 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:20 #8733 [Verbose] > │ ## benchmark (Polyglot) │
00:03:20 #8734 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:20 #8735 [Verbose] >
00:03:20 #8736 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:20 #8737 [Verbose] > // // test
00:03:20 #8738 [Verbose] >
00:03:20 #8739 [Verbose] > open testing
00:03:24 #8740 [Verbose] >
00:03:24 #8741 [Verbose] > ╭─[ 3.46s - stdout ]───────────────────────────────────────────────────────────╮
00:03:24 #8742 [Verbose] > │ () │
00:03:24 #8743 [Verbose] > │ │
00:03:24 #8744 [Verbose] > │ │
00:03:24 #8745 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:24 #8746 [Verbose] >
00:03:24 #8747 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:24 #8748 [Verbose] > inl (/@) x = listm'.(/@) x
00:03:24 #8749 [Verbose] >
00:03:24 #8750 [Verbose] > ╭─[ 270.25ms - stdout ]────────────────────────────────────────────────────────╮
00:03:24 #8751 [Verbose] > │ () │
00:03:24 #8752 [Verbose] > │ │
00:03:24 #8753 [Verbose] > │ │
00:03:24 #8754 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:24 #8755 [Verbose] >
00:03:24 #8756 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:24 #8757 [Verbose] > inl gc_collect () =
00:03:24 #8758 [Verbose] > run_target function
00:03:24 #8759 [Verbose] > | Fsharp _ => fun () => $"System.GC.Collect ()"
00:03:24 #8760 [Verbose] > | _ => fun () => ()
00:03:24 #8761 [Verbose] >
00:03:24 #8762 [Verbose] > inl printfn x =
00:03:24 #8763 [Verbose] > console.write_line x
00:03:24 #8764 [Verbose] >
00:03:24 #8765 [Verbose] > nominal stopwatch = $"System.Diagnostics.Stopwatch"
00:03:24 #8766 [Verbose] >
00:03:24 #8767 [Verbose] > inl stopwatch () : stopwatch =
00:03:24 #8768 [Verbose] > $"`stopwatch" ()
00:03:24 #8769 [Verbose] >
00:03:24 #8770 [Verbose] > inl stopwatch_elapsed_milliseconds (stopwatch : stopwatch) : i64 =
00:03:24 #8771 [Verbose] > $"!stopwatch.ElapsedMilliseconds"
00:03:24 #8772 [Verbose] >
00:03:24 #8773 [Verbose] > inl stopwatch_start (stopwatch : stopwatch) : () =
00:03:24 #8774 [Verbose] > $"!stopwatch.Start ()"
00:03:24 #8775 [Verbose] >
00:03:24 #8776 [Verbose] > ╭─[ 234.12ms - stdout ]────────────────────────────────────────────────────────╮
00:03:24 #8777 [Verbose] > │ () │
00:03:24 #8778 [Verbose] > │ │
00:03:24 #8779 [Verbose] > │ │
00:03:24 #8780 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:24 #8781 [Verbose] >
00:03:24 #8782 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:24 #8783 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:24 #8784 [Verbose] > │ ## test_case_result │
00:03:24 #8785 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:24 #8786 [Verbose] >
00:03:24 #8787 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:24 #8788 [Verbose] > type test_case_result =
00:03:24 #8789 [Verbose] > {
00:03:24 #8790 [Verbose] > Input : string
00:03:24 #8791 [Verbose] > Expected : string
00:03:24 #8792 [Verbose] > Result : string
00:03:24 #8793 [Verbose] > TimeList : a u64 i64
00:03:24 #8794 [Verbose] > }
00:03:24 #8795 [Verbose] >
00:03:24 #8796 [Verbose] > ╭─[ 247.43ms - stdout ]────────────────────────────────────────────────────────╮
00:03:24 #8797 [Verbose] > │ () │
00:03:24 #8798 [Verbose] > │ │
00:03:24 #8799 [Verbose] > │ │
00:03:24 #8800 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:24 #8801 [Verbose] >
00:03:24 #8802 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:24 #8803 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:24 #8804 [Verbose] > │ ## run │
00:03:24 #8805 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:24 #8806 [Verbose] >
00:03:24 #8807 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:24 #8808 [Verbose] > inl run forall input expected.
00:03:24 #8809 [Verbose] > count
00:03:24 #8810 [Verbose] > (solutions : list (string * (input -> expected)))
00:03:24 #8811 [Verbose] > ((input, expected) : (input * expected))
00:03:24 #8812 [Verbose] > : test_case_result
00:03:24 #8813 [Verbose] > =
00:03:24 #8814 [Verbose] > inl input_str = input |> sm'.format_debug
00:03:24 #8815 [Verbose] >
00:03:24 #8816 [Verbose] > printfn ""
00:03:24 #8817 [Verbose] > printfn ($"$\"Solution: {!input_str} \"" : string)
00:03:24 #8818 [Verbose] >
00:03:24 #8819 [Verbose] > inl performance_invoke (fn : () -> expected) =
00:03:24 #8820 [Verbose] > gc_collect ()
00:03:24 #8821 [Verbose] > inl stopwatch = stopwatch ()
00:03:24 #8822 [Verbose] > stopwatch |> stopwatch_start
00:03:24 #8823 [Verbose] > inl time1 = stopwatch |> stopwatch_elapsed_milliseconds
00:03:24 #8824 [Verbose] > inl result : expected =
00:03:24 #8825 [Verbose] > am'.init_series 0 count 1i32
00:03:24 #8826 [Verbose] > |> am'.parallel_map fun _n => fn ()
00:03:24 #8827 [Verbose] > |> am'.last
00:03:24 #8828 [Verbose] > inl time2 = (stopwatch |> stopwatch_elapsed_milliseconds) - time1
00:03:24 #8829 [Verbose] > result, time2
00:03:24 #8830 [Verbose] >
00:03:24 #8831 [Verbose] > inl results_with_time : a u64 _ =
00:03:24 #8832 [Verbose] > solutions
00:03:24 #8833 [Verbose] > |> listm'.indexed
00:03:24 #8834 [Verbose] > |> listm.toArray
00:03:24 #8835 [Verbose] > |> am.map fun ((i : i32), (test_name, solution)) =>
00:03:24 #8836 [Verbose] > inl result, time = performance_invoke fun () => solution input
00:03:24 #8837 [Verbose] > printfn ($"$\"Test case {!i + 1}. {!test_name}. Time: {!time} \"" :
00:03:24 #8838 [Verbose] > string)
00:03:24 #8839 [Verbose] > result, time
00:03:24 #8840 [Verbose] >
00:03:24 #8841 [Verbose] > match results_with_time |> am.map fst with
00:03:24 #8842 [Verbose] > | array when length array <= 1 => ()
00:03:24 #8843 [Verbose] > | array when array |> am.forall' ((=) (index array 0)) => ()
00:03:24 #8844 [Verbose] > | results => failwith ($"$\"Challenge error: {!results}\"" : string)
00:03:24 #8845 [Verbose] >
00:03:24 #8846 [Verbose] > {
00:03:24 #8847 [Verbose] > Input = input_str
00:03:24 #8848 [Verbose] > Expected = expected |> sm'.format_debug
00:03:24 #8849 [Verbose] > Result = results_with_time |> am.map fst |> fun array => index array 0
00:03:24 #8850 [Verbose] > |> sm'.format_debug
00:03:24 #8851 [Verbose] > TimeList = results_with_time |> am.map snd
00:03:24 #8852 [Verbose] > }
00:03:25 #8853 [Verbose] >
00:03:25 #8854 [Verbose] > ╭─[ 239.53ms - stdout ]────────────────────────────────────────────────────────╮
00:03:25 #8855 [Verbose] > │ () │
00:03:25 #8856 [Verbose] > │ │
00:03:25 #8857 [Verbose] > │ │
00:03:25 #8858 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:25 #8859 [Verbose] >
00:03:25 #8860 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:25 #8861 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:25 #8862 [Verbose] > │ ## run_all │
00:03:25 #8863 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:25 #8864 [Verbose] >
00:03:25 #8865 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:25 #8866 [Verbose] > inl run_all forall input expected.
00:03:25 #8867 [Verbose] > test_name
00:03:25 #8868 [Verbose] > count
00:03:25 #8869 [Verbose] > (solutions : list (string * (input -> expected)))
00:03:25 #8870 [Verbose] > test_cases
00:03:25 #8871 [Verbose] > =
00:03:25 #8872 [Verbose] > printfn ""
00:03:25 #8873 [Verbose] > printfn ""
00:03:25 #8874 [Verbose] > printfn ($"$\"Test: {!test_name}\"" : string)
00:03:25 #8875 [Verbose] > test_cases
00:03:25 #8876 [Verbose] > |> listm.toArray
00:03:25 #8877 [Verbose] > |> am.map (run count solutions)
00:03:25 #8878 [Verbose] >
00:03:25 #8879 [Verbose] > ╭─[ 263.75ms - stdout ]────────────────────────────────────────────────────────╮
00:03:25 #8880 [Verbose] > │ () │
00:03:25 #8881 [Verbose] > │ │
00:03:25 #8882 [Verbose] > │ │
00:03:25 #8883 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:25 #8884 [Verbose] >
00:03:25 #8885 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:25 #8886 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:25 #8887 [Verbose] > │ ## sort_result_list │
00:03:25 #8888 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:25 #8889 [Verbose] >
00:03:25 #8890 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:25 #8891 [Verbose] > inl sort_result_list results =
00:03:25 #8892 [Verbose] > inl table =
00:03:25 #8893 [Verbose] > inl rows =
00:03:25 #8894 [Verbose] > results
00:03:25 #8895 [Verbose] > |> am.map fun (result : test_case_result) =>
00:03:25 #8896 [Verbose] > inl best =
00:03:25 #8897 [Verbose] > result.TimeList
00:03:25 #8898 [Verbose] > |> am'.indexed
00:03:25 #8899 [Verbose] > |> am.map fun (i, time) =>
00:03:25 #8900 [Verbose] > i + 1i64, time
00:03:25 #8901 [Verbose] > |> am'.sort_by snd
00:03:25 #8902 [Verbose] > |> fun array => index array 0i32
00:03:25 #8903 [Verbose] > |> sm'.format_debug
00:03:25 #8904 [Verbose] > inl row =
00:03:25 #8905 [Verbose] > [[
00:03:25 #8906 [Verbose] > result.Input
00:03:25 #8907 [Verbose] > result.Expected
00:03:25 #8908 [Verbose] > result.Result
00:03:25 #8909 [Verbose] > best
00:03:25 #8910 [Verbose] > ]]
00:03:25 #8911 [Verbose] > inl color : option console.console_color =
00:03:25 #8912 [Verbose] > open console
00:03:25 #8913 [Verbose] > match result.Expected = result.Result with
00:03:25 #8914 [Verbose] > | true => Some $"`console_color.DarkGreen"
00:03:25 #8915 [Verbose] > | false => Some $"`console_color.DarkRed"
00:03:25 #8916 [Verbose] > row, color
00:03:25 #8917 [Verbose] >
00:03:25 #8918 [Verbose] > inl header =
00:03:25 #8919 [Verbose] > [[
00:03:25 #8920 [Verbose] > [[
00:03:25 #8921 [Verbose] > "Input"
00:03:25 #8922 [Verbose] > "Expected"
00:03:25 #8923 [Verbose] > "Result"
00:03:25 #8924 [Verbose] > "Best"
00:03:25 #8925 [Verbose] > ]]
00:03:25 #8926 [Verbose] > [[
00:03:25 #8927 [Verbose] > "---"
00:03:25 #8928 [Verbose] > "---"
00:03:25 #8929 [Verbose] > "---"
00:03:25 #8930 [Verbose] > "---"
00:03:25 #8931 [Verbose] > ]]
00:03:25 #8932 [Verbose] > ]]
00:03:25 #8933 [Verbose] > |> listm.map fun row => row, None
00:03:25 #8934 [Verbose] > |> listm.toArray
00:03:25 #8935 [Verbose] > rows |> am.append header
00:03:25 #8936 [Verbose] >
00:03:25 #8937 [Verbose] > inl formattedTable =
00:03:25 #8938 [Verbose] > inl lengthMap : mapm.map i32 i64 =
00:03:25 #8939 [Verbose] > table
00:03:25 #8940 [Verbose] > |> am.map (fst >> listm.toArray)
00:03:25 #8941 [Verbose] > |> am'.transpose
00:03:25 #8942 [Verbose] > |> am.map fun column =>
00:03:25 #8943 [Verbose] > column
00:03:25 #8944 [Verbose] > |> am.map sm.length
00:03:25 #8945 [Verbose] > |> am'.sort_descending
00:03:25 #8946 [Verbose] > |> am'.try_item 0i32
00:03:25 #8947 [Verbose] > |> optionm'.default_value 0i64
00:03:25 #8948 [Verbose] > |> am'.indexed
00:03:25 #8949 [Verbose] > |> fun (x : a i32 _) => x
00:03:25 #8950 [Verbose] > |> mapm.of_array
00:03:25 #8951 [Verbose] > table
00:03:25 #8952 [Verbose] > |> am.map fun (row, color) =>
00:03:25 #8953 [Verbose] > inl newRow =
00:03:25 #8954 [Verbose] > row
00:03:25 #8955 [Verbose] > |> listm'.indexed
00:03:25 #8956 [Verbose] > |> listm.map fun (i, cell) =>
00:03:25 #8957 [Verbose] > cell |> sm'.pad_right (lengthMap |> mapm.item i |> conv)
00:03:25 #8958 [Verbose] > |> listm.toArray
00:03:25 #8959 [Verbose] > newRow, color
00:03:25 #8960 [Verbose] >
00:03:25 #8961 [Verbose] > printfn ""
00:03:25 #8962 [Verbose] > formattedTable
00:03:25 #8963 [Verbose] > |> am.iter fun ((row : a i32 string), color) =>
00:03:25 #8964 [Verbose] > match color with
00:03:25 #8965 [Verbose] > | Some color => color |> console.set_foreground_color
00:03:25 #8966 [Verbose] > | None => console.reset_color ()
00:03:25 #8967 [Verbose] >
00:03:25 #8968 [Verbose] > printfn (row |> sm'.join' "\t| ")
00:03:25 #8969 [Verbose] >
00:03:25 #8970 [Verbose] > console.reset_color ()
00:03:25 #8971 [Verbose] >
00:03:25 #8972 [Verbose] > inl averages : a u64 _ =
00:03:25 #8973 [Verbose] > results
00:03:25 #8974 [Verbose] > |> am.map fun result =>
00:03:25 #8975 [Verbose] > result.TimeList
00:03:25 #8976 [Verbose] > |> am.map ($"float" : i64 -> f64)
00:03:25 #8977 [Verbose] > |> am'.transpose
00:03:25 #8978 [Verbose] > |> am.map am'.average
00:03:25 #8979 [Verbose] > |> am.map ($"int64" : f64 -> i64)
00:03:25 #8980 [Verbose] > |> am'.indexed
00:03:25 #8981 [Verbose] >
00:03:25 #8982 [Verbose] > printfn ""
00:03:25 #8983 [Verbose] > printfn "Average Ranking "
00:03:25 #8984 [Verbose] > averages
00:03:25 #8985 [Verbose] > |> am'.sort_by snd
00:03:25 #8986 [Verbose] > |> am.iter fun ((i : i32), avg) =>
00:03:25 #8987 [Verbose] > printfn ($"$\"Test case %d{!i + 1}. Average Time: %A{!avg} \"" :
00:03:25 #8988 [Verbose] > string)
00:03:25 #8989 [Verbose] >
00:03:25 #8990 [Verbose] > ╭─[ 277.38ms - stdout ]────────────────────────────────────────────────────────╮
00:03:25 #8991 [Verbose] > │ () │
00:03:25 #8992 [Verbose] > │ │
00:03:25 #8993 [Verbose] > │ │
00:03:25 #8994 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:25 #8995 [Verbose] >
00:03:25 #8996 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:25 #8997 [Verbose] > // // test
00:03:25 #8998 [Verbose] >
00:03:25 #8999 [Verbose] > inl is_fast () =
00:03:25 #9000 [Verbose] > false
00:03:25 #9001 [Verbose] >
00:03:25 #9002 [Verbose] > ╭─[ 247.42ms - stdout ]────────────────────────────────────────────────────────╮
00:03:25 #9003 [Verbose] > │ () │
00:03:25 #9004 [Verbose] > │ │
00:03:25 #9005 [Verbose] > │ │
00:03:25 #9006 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:25 #9007 [Verbose] >
00:03:25 #9008 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:25 #9009 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:25 #9010 [Verbose] > │ ## empty2Tests │
00:03:25 #9011 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:25 #9012 [Verbose] >
00:03:25 #9013 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:25 #9014 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:25 #9015 [Verbose] > │ Test: Empty2 │
00:03:25 #9016 [Verbose] > │ │
00:03:25 #9017 [Verbose] > │ Solution: (a, a) │
00:03:25 #9018 [Verbose] > │ Test case 1. A. Time: 59L │
00:03:25 #9019 [Verbose] > │ │
00:03:25 #9020 [Verbose] > │ Solution: (a, a) │
00:03:25 #9021 [Verbose] > │ Test case 1. A. Time: 53L │
00:03:25 #9022 [Verbose] > │ │
00:03:25 #9023 [Verbose] > │ Input | Expected | Result | Best │
00:03:25 #9024 [Verbose] > │ --- | --- | --- | --- │
00:03:25 #9025 [Verbose] > │ (a, a) | a | a | (1, 59) │
00:03:25 #9026 [Verbose] > │ (a, a) | a | a | (1, 53) │
00:03:25 #9027 [Verbose] > │ │
00:03:25 #9028 [Verbose] > │ Averages │
00:03:25 #9029 [Verbose] > │ Test case 1. Average Time: 56L │
00:03:25 #9030 [Verbose] > │ │
00:03:25 #9031 [Verbose] > │ Ranking │
00:03:25 #9032 [Verbose] > │ Test case 1. Average Time: 56L │
00:03:25 #9033 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:25 #9034 [Verbose] >
00:03:25 #9035 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:25 #9036 [Verbose] > // // test
00:03:25 #9037 [Verbose] >
00:03:25 #9038 [Verbose] > inl get_solutions () =
00:03:25 #9039 [Verbose] > [[
00:03:25 #9040 [Verbose] > "A",
00:03:25 #9041 [Verbose] > fun (a, _b) =>
00:03:25 #9042 [Verbose] > a
00:03:25 #9043 [Verbose] >
00:03:25 #9044 [Verbose] > "B",
00:03:25 #9045 [Verbose] > fun (_a, b) =>
00:03:25 #9046 [Verbose] > b
00:03:25 #9047 [Verbose] > ]]
00:03:25 #9048 [Verbose] >
00:03:25 #9049 [Verbose] > inl rec empty_2_tests () =
00:03:25 #9050 [Verbose] > inl test_cases = [[
00:03:25 #9051 [Verbose] > ("a", "a"), "a"
00:03:25 #9052 [Verbose] > ("b", "b"), "b"
00:03:25 #9053 [Verbose] > ]]
00:03:25 #9054 [Verbose] >
00:03:25 #9055 [Verbose] > inl solutions = get_solutions ()
00:03:25 #9056 [Verbose] >
00:03:25 #9057 [Verbose] > // inl is_fast () = true
00:03:25 #9058 [Verbose] >
00:03:25 #9059 [Verbose] > inl count =
00:03:25 #9060 [Verbose] > if is_fast ()
00:03:25 #9061 [Verbose] > then 1000i32
00:03:25 #9062 [Verbose] > else 2000000i32
00:03:25 #9063 [Verbose] >
00:03:25 #9064 [Verbose] > run_all (nameof empty_2_tests) count solutions test_cases
00:03:25 #9065 [Verbose] > |> sort_result_list
00:03:25 #9066 [Verbose] >
00:03:25 #9067 [Verbose] > empty_2_tests ()
00:03:35 #9068 [Verbose] >
00:03:36 #9069 [Verbose] > ╭─[ 10.02s - stdout ]──────────────────────────────────────────────────────────╮
00:03:36 #9070 [Verbose] > │ type UH0 = │
00:03:36 #9071 [Verbose] > │ | UH0_0 of string * string * string * UH0 │
00:03:36 #9072 [Verbose] > │ | UH0_1 │
00:03:36 #9073 [Verbose] > │ and Mut0 = {mutable l0 : uint64} │
00:03:36 #9074 [Verbose] > │ and UH1 = │
00:03:36 #9075 [Verbose] > │ | UH1_0 of int32 * string * (struct (string * string) -> string) * UH1 │
00:03:36 #9076 [Verbose] > │ | UH1_1 │
00:03:36 #9077 [Verbose] > │ and Mut1 = {mutable l0 : int32} │
00:03:36 #9078 [Verbose] > │ and UH2 = │
00:03:36 #9079 [Verbose] > │ | UH2_0 of string * UH2 │
00:03:36 #9080 [Verbose] > │ | UH2_1 │
00:03:36 #9081 [Verbose] > │ and [<Struct>] US0 = │
00:03:36 #9082 [Verbose] > │ | US0_0 │
00:03:36 #9083 [Verbose] > │ | US0_1 of f1_0 : System.ConsoleColor │
00:03:36 #9084 [Verbose] > │ and UH3 = │
00:03:36 #9085 [Verbose] > │ | UH3_0 of int64 * int64 * UH3 │
00:03:36 #9086 [Verbose] > │ | UH3_1 │
00:03:36 #9087 [Verbose] > │ and Mut2 = {mutable l0 : uint64; mutable l1 : UH3; mutable l2 : int64} │
00:03:36 #9088 [Verbose] > │ and UH4 = │
00:03:36 #9089 [Verbose] > │ | UH4_0 of UH2 * US0 * UH4 │
00:03:36 #9090 [Verbose] > │ | UH4_1 │
00:03:36 #9091 [Verbose] > │ and [<Struct>] US1 = │
00:03:36 #9092 [Verbose] > │ | US1_0 │
00:03:36 #9093 [Verbose] > │ | US1_1 of f1_0 : int64 │
00:03:36 #9094 [Verbose] > │ and UH5 = │
00:03:36 #9095 [Verbose] > │ | UH5_0 of int32 * int64 * UH5 │
00:03:36 #9096 [Verbose] > │ | UH5_1 │
00:03:36 #9097 [Verbose] > │ and Mut3 = {mutable l0 : uint64; mutable l1 : UH5; mutable l2 : int32} │
00:03:36 #9098 [Verbose] > │ and UH6 = │
00:03:36 #9099 [Verbose] > │ | UH6_0 of int32 * string * UH6 │
00:03:36 #9100 [Verbose] > │ | UH6_1 │
00:03:36 #9101 [Verbose] > │ let rec method2 (v0 : UH0, v1 : uint64) : uint64 = │
00:03:36 #9102 [Verbose] > │ match v0 with │
00:03:36 #9103 [Verbose] > │ | UH0_0(v2, v3, v4, v5) -> (* Cons *) │
00:03:36 #9104 [Verbose] > │ let v6 : uint64 = v1 + 1UL │
00:03:36 #9105 [Verbose] > │ method2(v5, v6) │
00:03:36 #9106 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:03:36 #9107 [Verbose] > │ v1 │
00:03:36 #9108 [Verbose] > │ and method3 (v0 : (struct (string * string * string) []), v1 : UH0, v2 : │
00:03:36 #9109 [Verbose] > │ uint64) : uint64 = │
00:03:36 #9110 [Verbose] > │ match v1 with │
00:03:36 #9111 [Verbose] > │ | UH0_0(v3, v4, v5, v6) -> (* Cons *) │
00:03:36 #9112 [Verbose] > │ v0.[int v2] <- struct (v3, v4, v5) │
00:03:36 #9113 [Verbose] > │ let v7 : uint64 = v2 + 1UL │
00:03:36 #9114 [Verbose] > │ method3(v0, v6, v7) │
00:03:36 #9115 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:03:36 #9116 [Verbose] > │ v2 │
00:03:36 #9117 [Verbose] > │ and method1 (v0 : UH0) : (struct (string * string * string) []) = │
00:03:36 #9118 [Verbose] > │ let v1 : uint64 = 0UL │
00:03:36 #9119 [Verbose] > │ let v2 : uint64 = method2(v0, v1) │
00:03:36 #9120 [Verbose] > │ let v3 : (struct (string * string * string) []) = │
00:03:36 #9121 [Verbose] > │ Array.zeroCreate<struct (string * string * string)> │
00:03:36 #9122 [Verbose] > │ (System.Convert.ToInt32(v2)) │
00:03:36 #9123 [Verbose] > │ let v4 : uint64 = 0UL │
00:03:36 #9124 [Verbose] > │ let v5 : uint64 = method3(v3, v0, v4) │
00:03:36 #9125 [Verbose] > │ v3 │
00:03:36 #9126 [Verbose] > │ and method4 (v0 : uint64, v1 : Mut0) : bool = │
00:03:36 #9127 [Verbose] > │ let v2 : uint64 = v1.l0 │
00:03:36 #9128 [Verbose] > │ let v3 : bool = v2 < v0 │
00:03:36 #9129 [Verbose] > │ v3 │
00:03:36 #9130 [Verbose] > │ and closure1 () struct (v0 : string, v1 : string) : string = │
00:03:36 #9131 [Verbose] > │ v0 │
00:03:36 #9132 [Verbose] > │ and closure2 () struct (v0 : string, v1 : string) : string = │
00:03:36 #9133 [Verbose] > │ v1 │
00:03:36 #9134 [Verbose] > │ and method6 (v0 : UH1, v1 : uint64) : uint64 = │
00:03:36 #9135 [Verbose] > │ match v0 with │
00:03:36 #9136 [Verbose] > │ | UH1_0(v2, v3, v4, v5) -> (* Cons *) │
00:03:36 #9137 [Verbose] > │ let v6 : uint64 = v1 + 1UL │
00:03:36 #9138 [Verbose] > │ method6(v5, v6) │
00:03:36 #9139 [Verbose] > │ | UH1_1 -> (* Nil *) │
00:03:36 #9140 [Verbose] > │ v1 │
00:03:36 #9141 [Verbose] > │ and method7 (v0 : (struct (int32 * string * (struct (string * string) -> │
00:03:36 #9142 [Verbose] > │ string)) []), v1 : UH1, v2 : uint64) : uint64 = │
00:03:36 #9143 [Verbose] > │ match v1 with │
00:03:36 #9144 [Verbose] > │ | UH1_0(v3, v4, v5, v6) -> (* Cons *) │
00:03:36 #9145 [Verbose] > │ v0.[int v2] <- struct (v3, v4, v5) │
00:03:36 #9146 [Verbose] > │ let v7 : uint64 = v2 + 1UL │
00:03:36 #9147 [Verbose] > │ method7(v0, v6, v7) │
00:03:36 #9148 [Verbose] > │ | UH1_1 -> (* Nil *) │
00:03:36 #9149 [Verbose] > │ v2 │
00:03:36 #9150 [Verbose] > │ and method5 (v0 : UH1) : (struct (int32 * string * (struct (string * string) │
00:03:36 #9151 [Verbose] > │ -> string)) []) = │
00:03:36 #9152 [Verbose] > │ let v1 : uint64 = 0UL │
00:03:36 #9153 [Verbose] > │ let v2 : uint64 = method6(v0, v1) │
00:03:36 #9154 [Verbose] > │ let v3 : (struct (int32 * string * (struct (string * string) -> string)) │
00:03:36 #9155 [Verbose] > │ []) = Array.zeroCreate<struct (int32 * string * (struct (string * string) -> │
00:03:36 #9156 [Verbose] > │ string))> (System.Convert.ToInt32(v2)) │
00:03:36 #9157 [Verbose] > │ let v4 : uint64 = 0UL │
00:03:36 #9158 [Verbose] > │ let v5 : uint64 = method7(v3, v0, v4) │
00:03:36 #9159 [Verbose] > │ v3 │
00:03:36 #9160 [Verbose] > │ and method8 (v0 : Mut1) : bool = │
00:03:36 #9161 [Verbose] > │ let v1 : int32 = v0.l0 │
00:03:36 #9162 [Verbose] > │ let v2 : bool = v1 < 2000001 │
00:03:36 #9163 [Verbose] > │ v2 │
00:03:36 #9164 [Verbose] > │ and closure3 (v0 : string, v1 : string, v2 : (struct (string * string) -> │
00:03:36 #9165 [Verbose] > │ string)) (v3 : int32) : string = │
00:03:36 #9166 [Verbose] > │ v2 struct (v0, v1) │
00:03:36 #9167 [Verbose] > │ and method9 (v0 : string, v1 : (string []), v2 : uint64) : bool = │
00:03:36 #9168 [Verbose] > │ let v3 : uint64 = System.Convert.ToUInt64 v1.Length │
00:03:36 #9169 [Verbose] > │ let v4 : bool = v2 < v3 │
00:03:36 #9170 [Verbose] > │ if v4 then │
00:03:36 #9171 [Verbose] > │ let v5 : string = v1.[int v2] │
00:03:36 #9172 [Verbose] > │ let v6 : bool = v0 = v5 │
00:03:36 #9173 [Verbose] > │ if v6 then │
00:03:36 #9174 [Verbose] > │ let v7 : uint64 = v2 + 1UL │
00:03:36 #9175 [Verbose] > │ method9(v0, v1, v7) │
00:03:36 #9176 [Verbose] > │ else │
00:03:36 #9177 [Verbose] > │ false │
00:03:36 #9178 [Verbose] > │ else │
00:03:36 #9179 [Verbose] > │ true │
00:03:36 #9180 [Verbose] > │ and method10 (v0 : uint64, v1 : Mut2) : bool = │
00:03:36 #9181 [Verbose] > │ let v2 : uint64 = v1.l0 │
00:03:36 #9182 [Verbose] > │ let v3 : bool = v2 < v0 │
00:03:36 #9183 [Verbose] > │ v3 │
00:03:36 #9184 [Verbose] > │ and method11 (v0 : UH3, v1 : UH3) : UH3 = │
00:03:36 #9185 [Verbose] > │ match v0 with │
00:03:36 #9186 [Verbose] > │ | UH3_0(v2, v3, v4) -> (* Cons *) │
00:03:36 #9187 [Verbose] > │ let v5 : UH3 = UH3_0(v2, v3, v1) │
00:03:36 #9188 [Verbose] > │ method11(v4, v5) │
00:03:36 #9189 [Verbose] > │ | UH3_1 -> (* Nil *) │
00:03:36 #9190 [Verbose] > │ v1 │
00:03:36 #9191 [Verbose] > │ and method13 (v0 : UH3, v1 : int32) : int32 = │
00:03:36 #9192 [Verbose] > │ match v0 with │
00:03:36 #9193 [Verbose] > │ | UH3_0(v2, v3, v4) -> (* Cons *) │
00:03:36 #9194 [Verbose] > │ let v5 : int32 = v1 + 1 │
00:03:36 #9195 [Verbose] > │ method13(v4, v5) │
00:03:36 #9196 [Verbose] > │ | UH3_1 -> (* Nil *) │
00:03:36 #9197 [Verbose] > │ v1 │
00:03:36 #9198 [Verbose] > │ and method14 (v0 : (struct (int64 * int64) []), v1 : UH3, v2 : int32) : │
00:03:36 #9199 [Verbose] > │ int32 = │
00:03:36 #9200 [Verbose] > │ match v1 with │
00:03:36 #9201 [Verbose] > │ | UH3_0(v3, v4, v5) -> (* Cons *) │
00:03:36 #9202 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:03:36 #9203 [Verbose] > │ let v6 : int32 = v2 + 1 │
00:03:36 #9204 [Verbose] > │ method14(v0, v5, v6) │
00:03:36 #9205 [Verbose] > │ | UH3_1 -> (* Nil *) │
00:03:36 #9206 [Verbose] > │ v2 │
00:03:36 #9207 [Verbose] > │ and method12 (v0 : UH3) : (struct (int64 * int64) []) = │
00:03:36 #9208 [Verbose] > │ let v1 : int32 = 0 │
00:03:36 #9209 [Verbose] > │ let v2 : int32 = method13(v0, v1) │
00:03:36 #9210 [Verbose] > │ let v3 : (struct (int64 * int64) []) = Array.zeroCreate<struct (int64 * │
00:03:36 #9211 [Verbose] > │ int64)> (v2) │
00:03:36 #9212 [Verbose] > │ let v4 : int32 = 0 │
00:03:36 #9213 [Verbose] > │ let v5 : int32 = method14(v3, v0, v4) │
00:03:36 #9214 [Verbose] > │ v3 │
00:03:36 #9215 [Verbose] > │ and method15 (v0 : int32, v1 : Mut1) : bool = │
00:03:36 #9216 [Verbose] > │ let v2 : int32 = v1.l0 │
00:03:36 #9217 [Verbose] > │ let v3 : bool = v2 < v0 │
00:03:36 #9218 [Verbose] > │ v3 │
00:03:36 #9219 [Verbose] > │ and closure4 () struct (v0 : int64, v1 : int64) : int64 = │
00:03:36 #9220 [Verbose] > │ v1 │
00:03:36 #9221 [Verbose] > │ and method17 (v0 : UH4, v1 : uint64) : uint64 = │
00:03:36 #9222 [Verbose] > │ match v0 with │
00:03:36 #9223 [Verbose] > │ | UH4_0(v2, v3, v4) -> (* Cons *) │
00:03:36 #9224 [Verbose] > │ let v5 : uint64 = v1 + 1UL │
00:03:36 #9225 [Verbose] > │ method17(v4, v5) │
00:03:36 #9226 [Verbose] > │ | UH4_1 -> (* Nil *) │
00:03:36 #9227 [Verbose] > │ v1 │
00:03:36 #9228 [Verbose] > │ and method18 (v0 : (struct (UH2 * US0) []), v1 : UH4, v2 : uint64) : uint64 │
00:03:36 #9229 [Verbose] > │ = │
00:03:36 #9230 [Verbose] > │ match v1 with │
00:03:36 #9231 [Verbose] > │ | UH4_0(v3, v4, v5) -> (* Cons *) │
00:03:36 #9232 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:03:36 #9233 [Verbose] > │ let v6 : uint64 = v2 + 1UL │
00:03:36 #9234 [Verbose] > │ method18(v0, v5, v6) │
00:03:36 #9235 [Verbose] > │ | UH4_1 -> (* Nil *) │
00:03:36 #9236 [Verbose] > │ v2 │
00:03:36 #9237 [Verbose] > │ and method16 (v0 : UH4) : (struct (UH2 * US0) []) = │
00:03:36 #9238 [Verbose] > │ let v1 : uint64 = 0UL │
00:03:36 #9239 [Verbose] > │ let v2 : uint64 = method17(v0, v1) │
00:03:36 #9240 [Verbose] > │ let v3 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * US0)> │
00:03:36 #9241 [Verbose] > │ (System.Convert.ToInt32(v2)) │
00:03:36 #9242 [Verbose] > │ let v4 : uint64 = 0UL │
00:03:36 #9243 [Verbose] > │ let v5 : uint64 = method18(v3, v0, v4) │
00:03:36 #9244 [Verbose] > │ v3 │
00:03:36 #9245 [Verbose] > │ and method20 (v0 : UH2, v1 : uint64) : uint64 = │
00:03:36 #9246 [Verbose] > │ match v0 with │
00:03:36 #9247 [Verbose] > │ | UH2_0(v2, v3) -> (* Cons *) │
00:03:36 #9248 [Verbose] > │ let v4 : uint64 = v1 + 1UL │
00:03:36 #9249 [Verbose] > │ method20(v3, v4) │
00:03:36 #9250 [Verbose] > │ | UH2_1 -> (* Nil *) │
00:03:36 #9251 [Verbose] > │ v1 │
00:03:36 #9252 [Verbose] > │ and method21 (v0 : (string []), v1 : UH2, v2 : uint64) : uint64 = │
00:03:36 #9253 [Verbose] > │ match v1 with │
00:03:36 #9254 [Verbose] > │ | UH2_0(v3, v4) -> (* Cons *) │
00:03:36 #9255 [Verbose] > │ v0.[int v2] <- v3 │
00:03:36 #9256 [Verbose] > │ let v5 : uint64 = v2 + 1UL │
00:03:36 #9257 [Verbose] > │ method21(v0, v4, v5) │
00:03:36 #9258 [Verbose] > │ | UH2_1 -> (* Nil *) │
00:03:36 #9259 [Verbose] > │ v2 │
00:03:36 #9260 [Verbose] > │ and method19 (v0 : UH2) : (string []) = │
00:03:36 #9261 [Verbose] > │ let v1 : uint64 = 0UL │
00:03:36 #9262 [Verbose] > │ let v2 : uint64 = method20(v0, v1) │
00:03:36 #9263 [Verbose] > │ let v3 : (string []) = Array.zeroCreate<string> │
00:03:36 #9264 [Verbose] > │ (System.Convert.ToInt32(v2)) │
00:03:36 #9265 [Verbose] > │ let v4 : uint64 = 0UL │
00:03:36 #9266 [Verbose] > │ let v5 : uint64 = method21(v3, v0, v4) │
00:03:36 #9267 [Verbose] > │ v3 │
00:03:36 #9268 [Verbose] > │ and closure5 () (v0 : int64) : US1 = │
00:03:36 #9269 [Verbose] > │ US1_1(v0) │
00:03:36 #9270 [Verbose] > │ and method22 (v0 : uint64, v1 : Mut3) : bool = │
00:03:36 #9271 [Verbose] > │ let v2 : uint64 = v1.l0 │
00:03:36 #9272 [Verbose] > │ let v3 : bool = v2 < v0 │
00:03:36 #9273 [Verbose] > │ v3 │
00:03:36 #9274 [Verbose] > │ and method23 (v0 : UH5, v1 : UH5) : UH5 = │
00:03:36 #9275 [Verbose] > │ match v0 with │
00:03:36 #9276 [Verbose] > │ | UH5_0(v2, v3, v4) -> (* Cons *) │
00:03:36 #9277 [Verbose] > │ let v5 : UH5 = UH5_0(v2, v3, v1) │
00:03:36 #9278 [Verbose] > │ method23(v4, v5) │
00:03:36 #9279 [Verbose] > │ | UH5_1 -> (* Nil *) │
00:03:36 #9280 [Verbose] > │ v1 │
00:03:36 #9281 [Verbose] > │ and method25 (v0 : UH5, v1 : int32) : int32 = │
00:03:36 #9282 [Verbose] > │ match v0 with │
00:03:36 #9283 [Verbose] > │ | UH5_0(v2, v3, v4) -> (* Cons *) │
00:03:36 #9284 [Verbose] > │ let v5 : int32 = v1 + 1 │
00:03:36 #9285 [Verbose] > │ method25(v4, v5) │
00:03:36 #9286 [Verbose] > │ | UH5_1 -> (* Nil *) │
00:03:36 #9287 [Verbose] > │ v1 │
00:03:36 #9288 [Verbose] > │ and method26 (v0 : (struct (int32 * int64) []), v1 : UH5, v2 : int32) : │
00:03:36 #9289 [Verbose] > │ int32 = │
00:03:36 #9290 [Verbose] > │ match v1 with │
00:03:36 #9291 [Verbose] > │ | UH5_0(v3, v4, v5) -> (* Cons *) │
00:03:36 #9292 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:03:36 #9293 [Verbose] > │ let v6 : int32 = v2 + 1 │
00:03:36 #9294 [Verbose] > │ method26(v0, v5, v6) │
00:03:36 #9295 [Verbose] > │ | UH5_1 -> (* Nil *) │
00:03:36 #9296 [Verbose] > │ v2 │
00:03:36 #9297 [Verbose] > │ and method24 (v0 : UH5) : (struct (int32 * int64) []) = │
00:03:36 #9298 [Verbose] > │ let v1 : int32 = 0 │
00:03:36 #9299 [Verbose] > │ let v2 : int32 = method25(v0, v1) │
00:03:36 #9300 [Verbose] > │ let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 * │
00:03:36 #9301 [Verbose] > │ int64)> (v2) │
00:03:36 #9302 [Verbose] > │ let v4 : int32 = 0 │
00:03:36 #9303 [Verbose] > │ let v5 : int32 = method26(v3, v0, v4) │
00:03:36 #9304 [Verbose] > │ v3 │
00:03:36 #9305 [Verbose] > │ and method27 (v0 : UH2, v1 : UH6, v2 : int32) : struct (UH6 * int32) = │
00:03:36 #9306 [Verbose] > │ match v0 with │
00:03:36 #9307 [Verbose] > │ | UH2_0(v3, v4) -> (* Cons *) │
00:03:36 #9308 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:03:36 #9309 [Verbose] > │ let v6 : UH6 = UH6_0(v2, v3, v1) │
00:03:36 #9310 [Verbose] > │ method27(v4, v6, v5) │
00:03:36 #9311 [Verbose] > │ | UH2_1 -> (* Nil *) │
00:03:36 #9312 [Verbose] > │ struct (v1, v2) │
00:03:36 #9313 [Verbose] > │ and method28 (v0 : UH6, v1 : UH6) : UH6 = │
00:03:36 #9314 [Verbose] > │ match v0 with │
00:03:36 #9315 [Verbose] > │ | UH6_0(v2, v3, v4) -> (* Cons *) │
00:03:36 #9316 [Verbose] > │ let v5 : UH6 = UH6_0(v2, v3, v1) │
00:03:36 #9317 [Verbose] > │ method28(v4, v5) │
00:03:36 #9318 [Verbose] > │ | UH6_1 -> (* Nil *) │
00:03:36 #9319 [Verbose] > │ v1 │
00:03:36 #9320 [Verbose] > │ and method29 (v0 : Map<int32, int64>, v1 : UH6, v2 : UH2) : UH2 = │
00:03:36 #9321 [Verbose] > │ match v1 with │
00:03:36 #9322 [Verbose] > │ | UH6_0(v3, v4, v5) -> (* Cons *) │
00:03:36 #9323 [Verbose] > │ let v6 : UH2 = method29(v0, v5, v2) │
00:03:36 #9324 [Verbose] > │ let v7 : int64 = v0.[v3] │
00:03:36 #9325 [Verbose] > │ let v8 : int32 = int32 v7 │
00:03:36 #9326 [Verbose] > │ let v9 : string = v4.PadRight v8 │
00:03:36 #9327 [Verbose] > │ UH2_0(v9, v6) │
00:03:36 #9328 [Verbose] > │ | UH6_1 -> (* Nil *) │
00:03:36 #9329 [Verbose] > │ v2 │
00:03:36 #9330 [Verbose] > │ and method31 (v0 : UH2, v1 : int32) : int32 = │
00:03:36 #9331 [Verbose] > │ match v0 with │
00:03:36 #9332 [Verbose] > │ | UH2_0(v2, v3) -> (* Cons *) │
00:03:36 #9333 [Verbose] > │ let v4 : int32 = v1 + 1 │
00:03:36 #9334 [Verbose] > │ method31(v3, v4) │
00:03:36 #9335 [Verbose] > │ | UH2_1 -> (* Nil *) │
00:03:36 #9336 [Verbose] > │ v1 │
00:03:36 #9337 [Verbose] > │ and method32 (v0 : (string []), v1 : UH2, v2 : int32) : int32 = │
00:03:36 #9338 [Verbose] > │ match v1 with │
00:03:36 #9339 [Verbose] > │ | UH2_0(v3, v4) -> (* Cons *) │
00:03:36 #9340 [Verbose] > │ v0.[int v2] <- v3 │
00:03:36 #9341 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:03:36 #9342 [Verbose] > │ method32(v0, v4, v5) │
00:03:36 #9343 [Verbose] > │ | UH2_1 -> (* Nil *) │
00:03:36 #9344 [Verbose] > │ v2 │
00:03:36 #9345 [Verbose] > │ and method30 (v0 : UH2) : (string []) = │
00:03:36 #9346 [Verbose] > │ let v1 : int32 = 0 │
00:03:36 #9347 [Verbose] > │ let v2 : int32 = method31(v0, v1) │
00:03:36 #9348 [Verbose] > │ let v3 : (string []) = Array.zeroCreate<string> (v2) │
00:03:36 #9349 [Verbose] > │ let v4 : int32 = 0 │
00:03:36 #9350 [Verbose] > │ let v5 : int32 = method32(v3, v0, v4) │
00:03:36 #9351 [Verbose] > │ v3 │
00:03:36 #9352 [Verbose] > │ and method34 (v0 : UH5, v1 : uint64) : uint64 = │
00:03:36 #9353 [Verbose] > │ match v0 with │
00:03:36 #9354 [Verbose] > │ | UH5_0(v2, v3, v4) -> (* Cons *) │
00:03:36 #9355 [Verbose] > │ let v5 : uint64 = v1 + 1UL │
00:03:36 #9356 [Verbose] > │ method34(v4, v5) │
00:03:36 #9357 [Verbose] > │ | UH5_1 -> (* Nil *) │
00:03:36 #9358 [Verbose] > │ v1 │
00:03:36 #9359 [Verbose] > │ and method35 (v0 : (struct (int32 * int64) []), v1 : UH5, v2 : uint64) : │
00:03:36 #9360 [Verbose] > │ uint64 = │
00:03:36 #9361 [Verbose] > │ match v1 with │
00:03:36 #9362 [Verbose] > │ | UH5_0(v3, v4, v5) -> (* Cons *) │
00:03:36 #9363 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:03:36 #9364 [Verbose] > │ let v6 : uint64 = v2 + 1UL │
00:03:36 #9365 [Verbose] > │ method35(v0, v5, v6) │
00:03:36 #9366 [Verbose] > │ | UH5_1 -> (* Nil *) │
00:03:36 #9367 [Verbose] > │ v2 │
00:03:36 #9368 [Verbose] > │ and method33 (v0 : UH5) : (struct (int32 * int64) []) = │
00:03:36 #9369 [Verbose] > │ let v1 : uint64 = 0UL │
00:03:36 #9370 [Verbose] > │ let v2 : uint64 = method34(v0, v1) │
00:03:36 #9371 [Verbose] > │ let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 * │
00:03:36 #9372 [Verbose] > │ int64)> (System.Convert.ToInt32(v2)) │
00:03:36 #9373 [Verbose] > │ let v4 : uint64 = 0UL │
00:03:36 #9374 [Verbose] > │ let v5 : uint64 = method35(v3, v0, v4) │
00:03:36 #9375 [Verbose] > │ v3 │
00:03:36 #9376 [Verbose] > │ and closure6 () struct (v0 : int32, v1 : int64) : int64 = │
00:03:36 #9377 [Verbose] > │ v1 │
00:03:36 #9378 [Verbose] > │ and closure0 () () : unit = │
00:03:36 #9379 [Verbose] > │ let v0 : (unit -> unit) = closure0() │
00:03:36 #9380 [Verbose] > │ let v1 : string = nameof v0 │
00:03:36 #9381 [Verbose] > │ let v2 : string = "" │
00:03:36 #9382 [Verbose] > │ System.Console.WriteLine v2 │
00:03:36 #9383 [Verbose] > │ System.Console.WriteLine v2 │
00:03:36 #9384 [Verbose] > │ let v3 : string = $"Test: {v1}" │
00:03:36 #9385 [Verbose] > │ System.Console.WriteLine v3 │
00:03:36 #9386 [Verbose] > │ let v4 : string = "a" │
00:03:36 #9387 [Verbose] > │ let v5 : string = "b" │
00:03:36 #9388 [Verbose] > │ let v6 : UH0 = UH0_1 │
00:03:36 #9389 [Verbose] > │ let v7 : UH0 = UH0_0(v5, v5, v5, v6) │
00:03:36 #9390 [Verbose] > │ let v8 : UH0 = UH0_0(v4, v4, v4, v7) │
00:03:36 #9391 [Verbose] > │ let v9 : (struct (string * string * string) []) = method1(v8) │
00:03:36 #9392 [Verbose] > │ let v10 : uint64 = System.Convert.ToUInt64 v9.Length │
00:03:36 #9393 [Verbose] > │ let v11 : (struct (string * string * string * (int64 [])) []) = │
00:03:36 #9394 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))> │
00:03:36 #9395 [Verbose] > │ (System.Convert.ToInt32(v10)) │
00:03:36 #9396 [Verbose] > │ let v12 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #9397 [Verbose] > │ while method4(v10, v12) do │
00:03:36 #9398 [Verbose] > │ let v14 : uint64 = v12.l0 │
00:03:36 #9399 [Verbose] > │ let struct (v15 : string, v16 : string, v17 : string) = v9.[int v14] │
00:03:36 #9400 [Verbose] > │ let v18 : string = $"%A{struct (v15, v16)}" │
00:03:36 #9401 [Verbose] > │ System.Console.WriteLine v2 │
00:03:36 #9402 [Verbose] > │ let v19 : string = $"Solution: {v18} " │
00:03:36 #9403 [Verbose] > │ System.Console.WriteLine v19 │
00:03:36 #9404 [Verbose] > │ let v20 : int32 = 0 │
00:03:36 #9405 [Verbose] > │ let v21 : string = "A" │
00:03:36 #9406 [Verbose] > │ let v22 : (struct (string * string) -> string) = closure1() │
00:03:36 #9407 [Verbose] > │ let v23 : int32 = 1 │
00:03:36 #9408 [Verbose] > │ let v24 : string = "B" │
00:03:36 #9409 [Verbose] > │ let v25 : (struct (string * string) -> string) = closure2() │
00:03:36 #9410 [Verbose] > │ let v26 : UH1 = UH1_1 │
00:03:36 #9411 [Verbose] > │ let v27 : UH1 = UH1_0(v23, v24, v25, v26) │
00:03:36 #9412 [Verbose] > │ let v28 : UH1 = UH1_0(v20, v21, v22, v27) │
00:03:36 #9413 [Verbose] > │ let v29 : (struct (int32 * string * (struct (string * string) -> │
00:03:36 #9414 [Verbose] > │ string)) []) = method5(v28) │
00:03:36 #9415 [Verbose] > │ let v30 : uint64 = System.Convert.ToUInt64 v29.Length │
00:03:36 #9416 [Verbose] > │ let v31 : (struct (string * int64) []) = Array.zeroCreate<struct │
00:03:36 #9417 [Verbose] > │ (string * int64)> (System.Convert.ToInt32(v30)) │
00:03:36 #9418 [Verbose] > │ let v32 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #9419 [Verbose] > │ while method4(v30, v32) do │
00:03:36 #9420 [Verbose] > │ let v34 : uint64 = v32.l0 │
00:03:36 #9421 [Verbose] > │ let struct (v35 : int32, v36 : string, v37 : (struct (string * │
00:03:36 #9422 [Verbose] > │ string) -> string)) = v29.[int v34] │
00:03:36 #9423 [Verbose] > │ let mutable result = None │
00:03:36 #9424 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:03:36 #9425 [Verbose] > │ () │
00:03:36 #9426 [Verbose] > │ #endif │
00:03:36 #9427 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:03:36 #9428 [Verbose] > │ () │
00:03:36 #9429 [Verbose] > │ #endif │
00:03:36 #9430 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:36 #9431 [Verbose] > │ System.GC.Collect () │
00:03:36 #9432 [Verbose] > │ () │
00:03:36 #9433 [Verbose] > │ #endif │
00:03:36 #9434 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:36 #9435 [Verbose] > │ System.GC.Collect () │
00:03:36 #9436 [Verbose] > │ () │
00:03:36 #9437 [Verbose] > │ #endif │
00:03:36 #9438 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:03:36 #9439 [Verbose] > │ System.GC.Collect () │
00:03:36 #9440 [Verbose] > │ () │
00:03:36 #9441 [Verbose] > │ #endif │
00:03:36 #9442 [Verbose] > │ |> fun x -> result <- Some x │
00:03:36 #9443 [Verbose] > │ result |> Option.get │
00:03:36 #9444 [Verbose] > │ let v38 : (unit -> System.Diagnostics.Stopwatch) = │
00:03:36 #9445 [Verbose] > │ System.Diagnostics.Stopwatch │
00:03:36 #9446 [Verbose] > │ let v39 : System.Diagnostics.Stopwatch = v38 () │
00:03:36 #9447 [Verbose] > │ v39.Start () │
00:03:36 #9448 [Verbose] > │ let v40 : int64 = v39.ElapsedMilliseconds │
00:03:36 #9449 [Verbose] > │ let v41 : (int32 []) = Array.zeroCreate<int32> (2000001) │
00:03:36 #9450 [Verbose] > │ let v42 : Mut1 = {l0 = 0} : Mut1 │
00:03:36 #9451 [Verbose] > │ while method8(v42) do │
00:03:36 #9452 [Verbose] > │ let v44 : int32 = v42.l0 │
00:03:36 #9453 [Verbose] > │ v41.[int v44] <- v44 │
00:03:36 #9454 [Verbose] > │ let v45 : int32 = v44 + 1 │
00:03:36 #9455 [Verbose] > │ v42.l0 <- v45 │
00:03:36 #9456 [Verbose] > │ () │
00:03:36 #9457 [Verbose] > │ let v46 : (int32 -> string) = closure3(v15, v16, v37) │
00:03:36 #9458 [Verbose] > │ let v47 : (string []) = v41 |> Array.Parallel.map v46 │
00:03:36 #9459 [Verbose] > │ let v48 : int32 = v47.Length │
00:03:36 #9460 [Verbose] > │ let v49 : int32 = v48 - 1 │
00:03:36 #9461 [Verbose] > │ let v50 : string = v47.[int v49] │
00:03:36 #9462 [Verbose] > │ let v51 : int64 = v39.ElapsedMilliseconds │
00:03:36 #9463 [Verbose] > │ let v52 : int64 = v51 - v40 │
00:03:36 #9464 [Verbose] > │ let v53 : string = $"Test case {v35 + 1}. {v36}. Time: {v52} " │
00:03:36 #9465 [Verbose] > │ System.Console.WriteLine v53 │
00:03:36 #9466 [Verbose] > │ v31.[int v34] <- struct (v50, v52) │
00:03:36 #9467 [Verbose] > │ let v54 : uint64 = v34 + 1UL │
00:03:36 #9468 [Verbose] > │ v32.l0 <- v54 │
00:03:36 #9469 [Verbose] > │ () │
00:03:36 #9470 [Verbose] > │ let v55 : uint64 = System.Convert.ToUInt64 v31.Length │
00:03:36 #9471 [Verbose] > │ let v56 : (string []) = Array.zeroCreate<string> │
00:03:36 #9472 [Verbose] > │ (System.Convert.ToInt32(v55)) │
00:03:36 #9473 [Verbose] > │ let v57 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #9474 [Verbose] > │ while method4(v55, v57) do │
00:03:36 #9475 [Verbose] > │ let v59 : uint64 = v57.l0 │
00:03:36 #9476 [Verbose] > │ let struct (v60 : string, v61 : int64) = v31.[int v59] │
00:03:36 #9477 [Verbose] > │ v56.[int v59] <- v60 │
00:03:36 #9478 [Verbose] > │ let v62 : uint64 = v59 + 1UL │
00:03:36 #9479 [Verbose] > │ v57.l0 <- v62 │
00:03:36 #9480 [Verbose] > │ () │
00:03:36 #9481 [Verbose] > │ let v63 : uint64 = System.Convert.ToUInt64 v56.Length │
00:03:36 #9482 [Verbose] > │ let v64 : bool = v63 <= 1UL │
00:03:36 #9483 [Verbose] > │ if v64 then │
00:03:36 #9484 [Verbose] > │ () │
00:03:36 #9485 [Verbose] > │ else │
00:03:36 #9486 [Verbose] > │ let v65 : string = v56.[int 0UL] │
00:03:36 #9487 [Verbose] > │ let v66 : uint64 = 0UL │
00:03:36 #9488 [Verbose] > │ let v67 : bool = method9(v65, v56, v66) │
00:03:36 #9489 [Verbose] > │ if v67 then │
00:03:36 #9490 [Verbose] > │ () │
00:03:36 #9491 [Verbose] > │ else │
00:03:36 #9492 [Verbose] > │ let v68 : string = $"Challenge error: {v56}" │
00:03:36 #9493 [Verbose] > │ failwith<unit> v68 │
00:03:36 #9494 [Verbose] > │ let v69 : string = $"%A{v17}" │
00:03:36 #9495 [Verbose] > │ let v70 : (string []) = Array.zeroCreate<string> │
00:03:36 #9496 [Verbose] > │ (System.Convert.ToInt32(v55)) │
00:03:36 #9497 [Verbose] > │ let v71 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #9498 [Verbose] > │ while method4(v55, v71) do │
00:03:36 #9499 [Verbose] > │ let v73 : uint64 = v71.l0 │
00:03:36 #9500 [Verbose] > │ let struct (v74 : string, v75 : int64) = v31.[int v73] │
00:03:36 #9501 [Verbose] > │ v70.[int v73] <- v74 │
00:03:36 #9502 [Verbose] > │ let v76 : uint64 = v73 + 1UL │
00:03:36 #9503 [Verbose] > │ v71.l0 <- v76 │
00:03:36 #9504 [Verbose] > │ () │
00:03:36 #9505 [Verbose] > │ let v77 : string = v70.[int 0UL] │
00:03:36 #9506 [Verbose] > │ let v78 : string = $"%A{v77}" │
00:03:36 #9507 [Verbose] > │ let v79 : (int64 []) = Array.zeroCreate<int64> │
00:03:36 #9508 [Verbose] > │ (System.Convert.ToInt32(v55)) │
00:03:36 #9509 [Verbose] > │ let v80 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #9510 [Verbose] > │ while method4(v55, v80) do │
00:03:36 #9511 [Verbose] > │ let v82 : uint64 = v80.l0 │
00:03:36 #9512 [Verbose] > │ let struct (v83 : string, v84 : int64) = v31.[int v82] │
00:03:36 #9513 [Verbose] > │ v79.[int v82] <- v84 │
00:03:36 #9514 [Verbose] > │ let v85 : uint64 = v82 + 1UL │
00:03:36 #9515 [Verbose] > │ v80.l0 <- v85 │
00:03:36 #9516 [Verbose] > │ () │
00:03:36 #9517 [Verbose] > │ v11.[int v14] <- struct (v69, v18, v78, v79) │
00:03:36 #9518 [Verbose] > │ let v86 : uint64 = v14 + 1UL │
00:03:36 #9519 [Verbose] > │ v12.l0 <- v86 │
00:03:36 #9520 [Verbose] > │ () │
00:03:36 #9521 [Verbose] > │ let v87 : uint64 = System.Convert.ToUInt64 v11.Length │
00:03:36 #9522 [Verbose] > │ let v88 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * US0)> │
00:03:36 #9523 [Verbose] > │ (System.Convert.ToInt32(v87)) │
00:03:36 #9524 [Verbose] > │ let v89 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #9525 [Verbose] > │ while method4(v87, v89) do │
00:03:36 #9526 [Verbose] > │ let v91 : uint64 = v89.l0 │
00:03:36 #9527 [Verbose] > │ let struct (v92 : string, v93 : string, v94 : string, v95 : (int64 [ │
00:03:36 #9528 [Verbose] > │ ])) = v11.[int v91] │
00:03:36 #9529 [Verbose] > │ let v96 : uint64 = System.Convert.ToUInt64 v95.Length │
00:03:36 #9530 [Verbose] > │ let v97 : UH3 = UH3_1 │
00:03:36 #9531 [Verbose] > │ let v98 : Mut2 = {l0 = 0UL; l1 = v97; l2 = 0L} : Mut2 │
00:03:36 #9532 [Verbose] > │ while method10(v96, v98) do │
00:03:36 #9533 [Verbose] > │ let v100 : uint64 = v98.l0 │
00:03:36 #9534 [Verbose] > │ let struct (v101 : UH3, v102 : int64) = v98.l1, v98.l2 │
00:03:36 #9535 [Verbose] > │ let v103 : int64 = v95.[int v100] │
00:03:36 #9536 [Verbose] > │ let v104 : int64 = v102 + 1L │
00:03:36 #9537 [Verbose] > │ let v105 : uint64 = v100 + 1UL │
00:03:36 #9538 [Verbose] > │ let v106 : UH3 = UH3_0(v102, v103, v101) │
00:03:36 #9539 [Verbose] > │ v98.l0 <- v105 │
00:03:36 #9540 [Verbose] > │ v98.l1 <- v106 │
00:03:36 #9541 [Verbose] > │ v98.l2 <- v104 │
00:03:36 #9542 [Verbose] > │ () │
00:03:36 #9543 [Verbose] > │ let struct (v107 : UH3, v108 : int64) = v98.l1, v98.l2 │
00:03:36 #9544 [Verbose] > │ let v109 : UH3 = UH3_1 │
00:03:36 #9545 [Verbose] > │ let v110 : UH3 = method11(v107, v109) │
00:03:36 #9546 [Verbose] > │ let v111 : (struct (int64 * int64) []) = method12(v110) │
00:03:36 #9547 [Verbose] > │ let v112 : int32 = v111.Length │
00:03:36 #9548 [Verbose] > │ let v113 : (struct (int64 * int64) []) = Array.zeroCreate<struct │
00:03:36 #9549 [Verbose] > │ (int64 * int64)> (v112) │
00:03:36 #9550 [Verbose] > │ let v114 : Mut1 = {l0 = 0} : Mut1 │
00:03:36 #9551 [Verbose] > │ while method15(v112, v114) do │
00:03:36 #9552 [Verbose] > │ let v116 : int32 = v114.l0 │
00:03:36 #9553 [Verbose] > │ let struct (v117 : int64, v118 : int64) = v111.[int v116] │
00:03:36 #9554 [Verbose] > │ let v119 : int64 = v117 + 1L │
00:03:36 #9555 [Verbose] > │ v113.[int v116] <- struct (v119, v118) │
00:03:36 #9556 [Verbose] > │ let v120 : int32 = v116 + 1 │
00:03:36 #9557 [Verbose] > │ v114.l0 <- v120 │
00:03:36 #9558 [Verbose] > │ () │
00:03:36 #9559 [Verbose] > │ let v121 : (struct (int64 * int64) -> int64) = closure4() │
00:03:36 #9560 [Verbose] > │ let v122 : (struct (int64 * int64) []) = v113 |> Array.sortBy v121 │
00:03:36 #9561 [Verbose] > │ let struct (v123 : int64, v124 : int64) = v122.[int 0] │
00:03:36 #9562 [Verbose] > │ let v125 : string = $"%A{struct (v123, v124)}" │
00:03:36 #9563 [Verbose] > │ let v126 : bool = v92 = v94 │
00:03:36 #9564 [Verbose] > │ let v131 : US0 = │
00:03:36 #9565 [Verbose] > │ if v126 then │
00:03:36 #9566 [Verbose] > │ let v127 : System.ConsoleColor = │
00:03:36 #9567 [Verbose] > │ System.ConsoleColor.DarkGreen │
00:03:36 #9568 [Verbose] > │ US0_1(v127) │
00:03:36 #9569 [Verbose] > │ else │
00:03:36 #9570 [Verbose] > │ let v129 : System.ConsoleColor = System.ConsoleColor.DarkRed │
00:03:36 #9571 [Verbose] > │ US0_1(v129) │
00:03:36 #9572 [Verbose] > │ let v132 : UH2 = UH2_1 │
00:03:36 #9573 [Verbose] > │ let v133 : UH2 = UH2_0(v125, v132) │
00:03:36 #9574 [Verbose] > │ let v134 : UH2 = UH2_0(v94, v133) │
00:03:36 #9575 [Verbose] > │ let v135 : UH2 = UH2_0(v92, v134) │
00:03:36 #9576 [Verbose] > │ let v136 : UH2 = UH2_0(v93, v135) │
00:03:36 #9577 [Verbose] > │ v88.[int v91] <- struct (v136, v131) │
00:03:36 #9578 [Verbose] > │ let v137 : uint64 = v91 + 1UL │
00:03:36 #9579 [Verbose] > │ v89.l0 <- v137 │
00:03:36 #9580 [Verbose] > │ () │
00:03:36 #9581 [Verbose] > │ let v138 : string = "Input" │
00:03:36 #9582 [Verbose] > │ let v139 : string = "Expected" │
00:03:36 #9583 [Verbose] > │ let v140 : string = "Result" │
00:03:36 #9584 [Verbose] > │ let v141 : string = "Best" │
00:03:36 #9585 [Verbose] > │ let v142 : UH2 = UH2_1 │
00:03:36 #9586 [Verbose] > │ let v143 : UH2 = UH2_0(v141, v142) │
00:03:36 #9587 [Verbose] > │ let v144 : UH2 = UH2_0(v140, v143) │
00:03:36 #9588 [Verbose] > │ let v145 : UH2 = UH2_0(v139, v144) │
00:03:36 #9589 [Verbose] > │ let v146 : UH2 = UH2_0(v138, v145) │
00:03:36 #9590 [Verbose] > │ let v147 : US0 = US0_0 │
00:03:36 #9591 [Verbose] > │ let v148 : string = "---" │
00:03:36 #9592 [Verbose] > │ let v149 : UH2 = UH2_1 │
00:03:36 #9593 [Verbose] > │ let v150 : UH2 = UH2_0(v148, v149) │
00:03:36 #9594 [Verbose] > │ let v151 : UH2 = UH2_0(v148, v150) │
00:03:36 #9595 [Verbose] > │ let v152 : UH2 = UH2_0(v148, v151) │
00:03:36 #9596 [Verbose] > │ let v153 : UH2 = UH2_0(v148, v152) │
00:03:36 #9597 [Verbose] > │ let v154 : US0 = US0_0 │
00:03:36 #9598 [Verbose] > │ let v155 : UH4 = UH4_1 │
00:03:36 #9599 [Verbose] > │ let v156 : UH4 = UH4_0(v153, v154, v155) │
00:03:36 #9600 [Verbose] > │ let v157 : UH4 = UH4_0(v146, v147, v156) │
00:03:36 #9601 [Verbose] > │ let v158 : (struct (UH2 * US0) []) = method16(v157) │
00:03:36 #9602 [Verbose] > │ let v159 : uint64 = System.Convert.ToUInt64 v158.Length │
00:03:36 #9603 [Verbose] > │ let v160 : uint64 = System.Convert.ToUInt64 v88.Length │
00:03:36 #9604 [Verbose] > │ let v161 : uint64 = v159 + v160 │
00:03:36 #9605 [Verbose] > │ let v162 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * │
00:03:36 #9606 [Verbose] > │ US0)> (System.Convert.ToInt32(v161)) │
00:03:36 #9607 [Verbose] > │ let v163 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #9608 [Verbose] > │ while method4(v161, v163) do │
00:03:36 #9609 [Verbose] > │ let v165 : uint64 = v163.l0 │
00:03:36 #9610 [Verbose] > │ let v166 : bool = v165 < v159 │
00:03:36 #9611 [Verbose] > │ let struct (v172 : UH2, v173 : US0) = │
00:03:36 #9612 [Verbose] > │ if v166 then │
00:03:36 #9613 [Verbose] > │ let struct (v167 : UH2, v168 : US0) = v158.[int v165] │
00:03:36 #9614 [Verbose] > │ struct (v167, v168) │
00:03:36 #9615 [Verbose] > │ else │
00:03:36 #9616 [Verbose] > │ let v169 : uint64 = v165 - v159 │
00:03:36 #9617 [Verbose] > │ let struct (v170 : UH2, v171 : US0) = v88.[int v169] │
00:03:36 #9618 [Verbose] > │ struct (v170, v171) │
00:03:36 #9619 [Verbose] > │ v162.[int v165] <- struct (v172, v173) │
00:03:36 #9620 [Verbose] > │ let v174 : uint64 = v165 + 1UL │
00:03:36 #9621 [Verbose] > │ v163.l0 <- v174 │
00:03:36 #9622 [Verbose] > │ () │
00:03:36 #9623 [Verbose] > │ let v175 : uint64 = System.Convert.ToUInt64 v162.Length │
00:03:36 #9624 [Verbose] > │ let v176 : ((string []) []) = Array.zeroCreate<(string [])> │
00:03:36 #9625 [Verbose] > │ (System.Convert.ToInt32(v175)) │
00:03:36 #9626 [Verbose] > │ let v177 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #9627 [Verbose] > │ while method4(v175, v177) do │
00:03:36 #9628 [Verbose] > │ let v179 : uint64 = v177.l0 │
00:03:36 #9629 [Verbose] > │ let struct (v180 : UH2, v181 : US0) = v162.[int v179] │
00:03:36 #9630 [Verbose] > │ let v182 : (string []) = method19(v180) │
00:03:36 #9631 [Verbose] > │ v176.[int v179] <- v182 │
00:03:36 #9632 [Verbose] > │ let v183 : uint64 = v179 + 1UL │
00:03:36 #9633 [Verbose] > │ v177.l0 <- v183 │
00:03:36 #9634 [Verbose] > │ () │
00:03:36 #9635 [Verbose] > │ let v184 : ((string []) []) = v176 |> Array.transpose │
00:03:36 #9636 [Verbose] > │ let v185 : uint64 = System.Convert.ToUInt64 v184.Length │
00:03:36 #9637 [Verbose] > │ let v186 : (int64 []) = Array.zeroCreate<int64> │
00:03:36 #9638 [Verbose] > │ (System.Convert.ToInt32(v185)) │
00:03:36 #9639 [Verbose] > │ let v187 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #9640 [Verbose] > │ while method4(v185, v187) do │
00:03:36 #9641 [Verbose] > │ let v189 : uint64 = v187.l0 │
00:03:36 #9642 [Verbose] > │ let v190 : (string []) = v184.[int v189] │
00:03:36 #9643 [Verbose] > │ let v191 : uint64 = System.Convert.ToUInt64 v190.Length │
00:03:36 #9644 [Verbose] > │ let v192 : (int64 []) = Array.zeroCreate<int64> │
00:03:36 #9645 [Verbose] > │ (System.Convert.ToInt32(v191)) │
00:03:36 #9646 [Verbose] > │ let v193 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #9647 [Verbose] > │ while method4(v191, v193) do │
00:03:36 #9648 [Verbose] > │ let v195 : uint64 = v193.l0 │
00:03:36 #9649 [Verbose] > │ let v196 : string = v190.[int v195] │
00:03:36 #9650 [Verbose] > │ let v197 : int64 = System.Convert.ToInt64 v196.Length │
00:03:36 #9651 [Verbose] > │ v192.[int v195] <- v197 │
00:03:36 #9652 [Verbose] > │ let v198 : uint64 = v195 + 1UL │
00:03:36 #9653 [Verbose] > │ v193.l0 <- v198 │
00:03:36 #9654 [Verbose] > │ () │
00:03:36 #9655 [Verbose] > │ let v199 : (int64 []) = v192 |> Array.sortDescending │
00:03:36 #9656 [Verbose] > │ let v200 : int64 option = v199 |> Array.tryItem 0 │
00:03:36 #9657 [Verbose] > │ let v201 : (int64 -> US1) = closure5() │
00:03:36 #9658 [Verbose] > │ let v202 : US1 = US1_0 │
00:03:36 #9659 [Verbose] > │ let v203 : US1 = v200 |> Option.map v201 |> Option.defaultValue v202 │
00:03:36 #9660 [Verbose] > │ let v206 : int64 = │
00:03:36 #9661 [Verbose] > │ match v203 with │
00:03:36 #9662 [Verbose] > │ | US1_0 -> (* None *) │
00:03:36 #9663 [Verbose] > │ 0L │
00:03:36 #9664 [Verbose] > │ | US1_1(v204) -> (* Some *) │
00:03:36 #9665 [Verbose] > │ v204 │
00:03:36 #9666 [Verbose] > │ v186.[int v189] <- v206 │
00:03:36 #9667 [Verbose] > │ let v207 : uint64 = v189 + 1UL │
00:03:36 #9668 [Verbose] > │ v187.l0 <- v207 │
00:03:36 #9669 [Verbose] > │ () │
00:03:36 #9670 [Verbose] > │ let v208 : uint64 = System.Convert.ToUInt64 v186.Length │
00:03:36 #9671 [Verbose] > │ let v209 : UH5 = UH5_1 │
00:03:36 #9672 [Verbose] > │ let v210 : Mut3 = {l0 = 0UL; l1 = v209; l2 = 0} : Mut3 │
00:03:36 #9673 [Verbose] > │ while method22(v208, v210) do │
00:03:36 #9674 [Verbose] > │ let v212 : uint64 = v210.l0 │
00:03:36 #9675 [Verbose] > │ let struct (v213 : UH5, v214 : int32) = v210.l1, v210.l2 │
00:03:36 #9676 [Verbose] > │ let v215 : int64 = v186.[int v212] │
00:03:36 #9677 [Verbose] > │ let v216 : int32 = v214 + 1 │
00:03:36 #9678 [Verbose] > │ let v217 : uint64 = v212 + 1UL │
00:03:36 #9679 [Verbose] > │ let v218 : UH5 = UH5_0(v214, v215, v213) │
00:03:36 #9680 [Verbose] > │ v210.l0 <- v217 │
00:03:36 #9681 [Verbose] > │ v210.l1 <- v218 │
00:03:36 #9682 [Verbose] > │ v210.l2 <- v216 │
00:03:36 #9683 [Verbose] > │ () │
00:03:36 #9684 [Verbose] > │ let struct (v219 : UH5, v220 : int32) = v210.l1, v210.l2 │
00:03:36 #9685 [Verbose] > │ let v221 : UH5 = UH5_1 │
00:03:36 #9686 [Verbose] > │ let v222 : UH5 = method23(v219, v221) │
00:03:36 #9687 [Verbose] > │ let v223 : (struct (int32 * int64) []) = method24(v222) │
00:03:36 #9688 [Verbose] > │ let v224 : Map<int32, int64> = v223 |> Array.map (fun (struct (a, b)) -> │
00:03:36 #9689 [Verbose] > │ a, b) |> Map.ofArray │
00:03:36 #9690 [Verbose] > │ let v225 : (struct ((string []) * US0) []) = Array.zeroCreate<struct │
00:03:36 #9691 [Verbose] > │ ((string []) * US0)> (System.Convert.ToInt32(v175)) │
00:03:36 #9692 [Verbose] > │ let v226 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #9693 [Verbose] > │ while method4(v175, v226) do │
00:03:36 #9694 [Verbose] > │ let v228 : uint64 = v226.l0 │
00:03:36 #9695 [Verbose] > │ let struct (v229 : UH2, v230 : US0) = v162.[int v228] │
00:03:36 #9696 [Verbose] > │ let v231 : UH6 = UH6_1 │
00:03:36 #9697 [Verbose] > │ let v232 : int32 = 0 │
00:03:36 #9698 [Verbose] > │ let struct (v233 : UH6, v234 : int32) = method27(v229, v231, v232) │
00:03:36 #9699 [Verbose] > │ let v235 : UH6 = UH6_1 │
00:03:36 #9700 [Verbose] > │ let v236 : UH6 = method28(v233, v235) │
00:03:36 #9701 [Verbose] > │ let v237 : UH2 = UH2_1 │
00:03:36 #9702 [Verbose] > │ let v238 : UH2 = method29(v224, v236, v237) │
00:03:36 #9703 [Verbose] > │ let v239 : (string []) = method30(v238) │
00:03:36 #9704 [Verbose] > │ v225.[int v228] <- struct (v239, v230) │
00:03:36 #9705 [Verbose] > │ let v240 : uint64 = v228 + 1UL │
00:03:36 #9706 [Verbose] > │ v226.l0 <- v240 │
00:03:36 #9707 [Verbose] > │ () │
00:03:36 #9708 [Verbose] > │ System.Console.WriteLine v2 │
00:03:36 #9709 [Verbose] > │ let v241 : uint64 = System.Convert.ToUInt64 v225.Length │
00:03:36 #9710 [Verbose] > │ let v242 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #9711 [Verbose] > │ while method4(v241, v242) do │
00:03:36 #9712 [Verbose] > │ let v244 : uint64 = v242.l0 │
00:03:36 #9713 [Verbose] > │ let struct (v245 : (string []), v246 : US0) = v225.[int v244] │
00:03:36 #9714 [Verbose] > │ match v246 with │
00:03:36 #9715 [Verbose] > │ | US0_0 -> (* None *) │
00:03:36 #9716 [Verbose] > │ let mutable result = None │
00:03:36 #9717 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:03:36 #9718 [Verbose] > │ () │
00:03:36 #9719 [Verbose] > │ #endif │
00:03:36 #9720 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:03:36 #9721 [Verbose] > │ () │
00:03:36 #9722 [Verbose] > │ #endif │
00:03:36 #9723 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:36 #9724 [Verbose] > │ System.Console.ResetColor () │
00:03:36 #9725 [Verbose] > │ () │
00:03:36 #9726 [Verbose] > │ #endif │
00:03:36 #9727 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:36 #9728 [Verbose] > │ System.Console.ResetColor () │
00:03:36 #9729 [Verbose] > │ () │
00:03:36 #9730 [Verbose] > │ #endif │
00:03:36 #9731 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:03:36 #9732 [Verbose] > │ System.Console.ResetColor () │
00:03:36 #9733 [Verbose] > │ () │
00:03:36 #9734 [Verbose] > │ #endif │
00:03:36 #9735 [Verbose] > │ |> fun x -> result <- Some x │
00:03:36 #9736 [Verbose] > │ result |> Option.get │
00:03:36 #9737 [Verbose] > │ () │
00:03:36 #9738 [Verbose] > │ | US0_1(v247) -> (* Some *) │
00:03:36 #9739 [Verbose] > │ let mutable result = None │
00:03:36 #9740 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:03:36 #9741 [Verbose] > │ () │
00:03:36 #9742 [Verbose] > │ #endif │
00:03:36 #9743 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:03:36 #9744 [Verbose] > │ () │
00:03:36 #9745 [Verbose] > │ #endif │
00:03:36 #9746 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:36 #9747 [Verbose] > │ System.Console.ForegroundColor <- v247 │
00:03:36 #9748 [Verbose] > │ () │
00:03:36 #9749 [Verbose] > │ #endif │
00:03:36 #9750 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:36 #9751 [Verbose] > │ System.Console.ForegroundColor <- v247 │
00:03:36 #9752 [Verbose] > │ () │
00:03:36 #9753 [Verbose] > │ #endif │
00:03:36 #9754 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:03:36 #9755 [Verbose] > │ System.Console.ForegroundColor <- v247 │
00:03:36 #9756 [Verbose] > │ () │
00:03:36 #9757 [Verbose] > │ #endif │
00:03:36 #9758 [Verbose] > │ |> fun x -> result <- Some x │
00:03:36 #9759 [Verbose] > │ result |> Option.get │
00:03:36 #9760 [Verbose] > │ () │
00:03:36 #9761 [Verbose] > │ let v248 : string = "\t| " │
00:03:36 #9762 [Verbose] > │ let v249 : string = System.String.Join (v248, v245) │
00:03:36 #9763 [Verbose] > │ System.Console.WriteLine v249 │
00:03:36 #9764 [Verbose] > │ let mutable result = None │
00:03:36 #9765 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:03:36 #9766 [Verbose] > │ () │
00:03:36 #9767 [Verbose] > │ #endif │
00:03:36 #9768 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:03:36 #9769 [Verbose] > │ () │
00:03:36 #9770 [Verbose] > │ #endif │
00:03:36 #9771 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:36 #9772 [Verbose] > │ System.Console.ResetColor () │
00:03:36 #9773 [Verbose] > │ () │
00:03:36 #9774 [Verbose] > │ #endif │
00:03:36 #9775 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:36 #9776 [Verbose] > │ System.Console.ResetColor () │
00:03:36 #9777 [Verbose] > │ () │
00:03:36 #9778 [Verbose] > │ #endif │
00:03:36 #9779 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:03:36 #9780 [Verbose] > │ System.Console.ResetColor () │
00:03:36 #9781 [Verbose] > │ () │
00:03:36 #9782 [Verbose] > │ #endif │
00:03:36 #9783 [Verbose] > │ |> fun x -> result <- Some x │
00:03:36 #9784 [Verbose] > │ result |> Option.get │
00:03:36 #9785 [Verbose] > │ let v250 : uint64 = v244 + 1UL │
00:03:36 #9786 [Verbose] > │ v242.l0 <- v250 │
00:03:36 #9787 [Verbose] > │ () │
00:03:36 #9788 [Verbose] > │ let v251 : ((float []) []) = Array.zeroCreate<(float [])> │
00:03:36 #9789 [Verbose] > │ (System.Convert.ToInt32(v87)) │
00:03:36 #9790 [Verbose] > │ let v252 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #9791 [Verbose] > │ while method4(v87, v252) do │
00:03:36 #9792 [Verbose] > │ let v254 : uint64 = v252.l0 │
00:03:36 #9793 [Verbose] > │ let struct (v255 : string, v256 : string, v257 : string, v258 : │
00:03:36 #9794 [Verbose] > │ (int64 [])) = v11.[int v254] │
00:03:36 #9795 [Verbose] > │ let v259 : (int64 -> float) = float │
00:03:36 #9796 [Verbose] > │ let v260 : uint64 = System.Convert.ToUInt64 v258.Length │
00:03:36 #9797 [Verbose] > │ let v261 : (float []) = Array.zeroCreate<float> │
00:03:36 #9798 [Verbose] > │ (System.Convert.ToInt32(v260)) │
00:03:36 #9799 [Verbose] > │ let v262 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #9800 [Verbose] > │ while method4(v260, v262) do │
00:03:36 #9801 [Verbose] > │ let v264 : uint64 = v262.l0 │
00:03:36 #9802 [Verbose] > │ let v265 : int64 = v258.[int v264] │
00:03:36 #9803 [Verbose] > │ let v266 : float = v259 v265 │
00:03:36 #9804 [Verbose] > │ v261.[int v264] <- v266 │
00:03:36 #9805 [Verbose] > │ let v267 : uint64 = v264 + 1UL │
00:03:36 #9806 [Verbose] > │ v262.l0 <- v267 │
00:03:36 #9807 [Verbose] > │ () │
00:03:36 #9808 [Verbose] > │ v251.[int v254] <- v261 │
00:03:36 #9809 [Verbose] > │ let v268 : uint64 = v254 + 1UL │
00:03:36 #9810 [Verbose] > │ v252.l0 <- v268 │
00:03:36 #9811 [Verbose] > │ () │
00:03:36 #9812 [Verbose] > │ let v269 : ((float []) []) = v251 |> Array.transpose │
00:03:36 #9813 [Verbose] > │ let v270 : uint64 = System.Convert.ToUInt64 v269.Length │
00:03:36 #9814 [Verbose] > │ let v271 : (float []) = Array.zeroCreate<float> │
00:03:36 #9815 [Verbose] > │ (System.Convert.ToInt32(v270)) │
00:03:36 #9816 [Verbose] > │ let v272 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #9817 [Verbose] > │ while method4(v270, v272) do │
00:03:36 #9818 [Verbose] > │ let v274 : uint64 = v272.l0 │
00:03:36 #9819 [Verbose] > │ let v275 : (float []) = v269.[int v274] │
00:03:36 #9820 [Verbose] > │ let v276 : float = v275 |> Array.average │
00:03:36 #9821 [Verbose] > │ v271.[int v274] <- v276 │
00:03:36 #9822 [Verbose] > │ let v277 : uint64 = v274 + 1UL │
00:03:36 #9823 [Verbose] > │ v272.l0 <- v277 │
00:03:36 #9824 [Verbose] > │ () │
00:03:36 #9825 [Verbose] > │ let v278 : (float -> int64) = int64 │
00:03:36 #9826 [Verbose] > │ let v279 : uint64 = System.Convert.ToUInt64 v271.Length │
00:03:36 #9827 [Verbose] > │ let v280 : (int64 []) = Array.zeroCreate<int64> │
00:03:36 #9828 [Verbose] > │ (System.Convert.ToInt32(v279)) │
00:03:36 #9829 [Verbose] > │ let v281 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #9830 [Verbose] > │ while method4(v279, v281) do │
00:03:36 #9831 [Verbose] > │ let v283 : uint64 = v281.l0 │
00:03:36 #9832 [Verbose] > │ let v284 : float = v271.[int v283] │
00:03:36 #9833 [Verbose] > │ let v285 : int64 = v278 v284 │
00:03:36 #9834 [Verbose] > │ v280.[int v283] <- v285 │
00:03:36 #9835 [Verbose] > │ let v286 : uint64 = v283 + 1UL │
00:03:36 #9836 [Verbose] > │ v281.l0 <- v286 │
00:03:36 #9837 [Verbose] > │ () │
00:03:36 #9838 [Verbose] > │ let v287 : uint64 = System.Convert.ToUInt64 v280.Length │
00:03:36 #9839 [Verbose] > │ let v288 : UH5 = UH5_1 │
00:03:36 #9840 [Verbose] > │ let v289 : Mut3 = {l0 = 0UL; l1 = v288; l2 = 0} : Mut3 │
00:03:36 #9841 [Verbose] > │ while method22(v287, v289) do │
00:03:36 #9842 [Verbose] > │ let v291 : uint64 = v289.l0 │
00:03:36 #9843 [Verbose] > │ let struct (v292 : UH5, v293 : int32) = v289.l1, v289.l2 │
00:03:36 #9844 [Verbose] > │ let v294 : int64 = v280.[int v291] │
00:03:36 #9845 [Verbose] > │ let v295 : int32 = v293 + 1 │
00:03:36 #9846 [Verbose] > │ let v296 : uint64 = v291 + 1UL │
00:03:36 #9847 [Verbose] > │ let v297 : UH5 = UH5_0(v293, v294, v292) │
00:03:36 #9848 [Verbose] > │ v289.l0 <- v296 │
00:03:36 #9849 [Verbose] > │ v289.l1 <- v297 │
00:03:36 #9850 [Verbose] > │ v289.l2 <- v295 │
00:03:36 #9851 [Verbose] > │ () │
00:03:36 #9852 [Verbose] > │ let struct (v298 : UH5, v299 : int32) = v289.l1, v289.l2 │
00:03:36 #9853 [Verbose] > │ let v300 : UH5 = UH5_1 │
00:03:36 #9854 [Verbose] > │ let v301 : UH5 = method23(v298, v300) │
00:03:36 #9855 [Verbose] > │ let v302 : (struct (int32 * int64) []) = method33(v301) │
00:03:36 #9856 [Verbose] > │ System.Console.WriteLine v2 │
00:03:36 #9857 [Verbose] > │ let v303 : string = "Average Ranking " │
00:03:36 #9858 [Verbose] > │ System.Console.WriteLine v303 │
00:03:36 #9859 [Verbose] > │ let v304 : (struct (int32 * int64) -> int64) = closure6() │
00:03:36 #9860 [Verbose] > │ let v305 : (struct (int32 * int64) []) = v302 |> Array.sortBy v304 │
00:03:36 #9861 [Verbose] > │ let v306 : uint64 = System.Convert.ToUInt64 v305.Length │
00:03:36 #9862 [Verbose] > │ let v307 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #9863 [Verbose] > │ while method4(v306, v307) do │
00:03:36 #9864 [Verbose] > │ let v309 : uint64 = v307.l0 │
00:03:36 #9865 [Verbose] > │ let struct (v310 : int32, v311 : int64) = v305.[int v309] │
00:03:36 #9866 [Verbose] > │ let v312 : string = $"Test case %d{v310 + 1}. Average Time: %A{v311} │
00:03:36 #9867 [Verbose] > │ " │
00:03:36 #9868 [Verbose] > │ System.Console.WriteLine v312 │
00:03:36 #9869 [Verbose] > │ let v313 : uint64 = v309 + 1UL │
00:03:36 #9870 [Verbose] > │ v307.l0 <- v313 │
00:03:36 #9871 [Verbose] > │ () │
00:03:36 #9872 [Verbose] > │ () │
00:03:36 #9873 [Verbose] > │ and method0 () : unit = │
00:03:36 #9874 [Verbose] > │ let v0 : (unit -> unit) = closure0() │
00:03:36 #9875 [Verbose] > │ let v1 : string = nameof v0 │
00:03:36 #9876 [Verbose] > │ let v2 : string = "" │
00:03:36 #9877 [Verbose] > │ System.Console.WriteLine v2 │
00:03:36 #9878 [Verbose] > │ System.Console.WriteLine v2 │
00:03:36 #9879 [Verbose] > │ let v3 : string = $"Test: {v1}" │
00:03:36 #9880 [Verbose] > │ System.Console.WriteLine v3 │
00:03:36 #9881 [Verbose] > │ let v4 : string = "a" │
00:03:36 #9882 [Verbose] > │ let v5 : string = "b" │
00:03:36 #9883 [Verbose] > │ let v6 : UH0 = UH0_1 │
00:03:36 #9884 [Verbose] > │ let v7 : UH0 = UH0_0(v5, v5, v5, v6) │
00:03:36 #9885 [Verbose] > │ let v8 : UH0 = UH0_0(v4, v4, v4, v7) │
00:03:36 #9886 [Verbose] > │ let v9 : (struct (string * string * string) []) = method1(v8) │
00:03:36 #9887 [Verbose] > │ let v10 : uint64 = System.Convert.ToUInt64 v9.Length │
00:03:36 #9888 [Verbose] > │ let v11 : (struct (string * string * string * (int64 [])) []) = │
00:03:36 #9889 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))> │
00:03:36 #9890 [Verbose] > │ (System.Convert.ToInt32(v10)) │
00:03:36 #9891 [Verbose] > │ let v12 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #9892 [Verbose] > │ while method4(v10, v12) do │
00:03:36 #9893 [Verbose] > │ let v14 : uint64 = v12.l0 │
00:03:36 #9894 [Verbose] > │ let struct (v15 : string, v16 : string, v17 : string) = v9.[int v14] │
00:03:36 #9895 [Verbose] > │ let v18 : string = $"%A{struct (v15, v16)}" │
00:03:36 #9896 [Verbose] > │ System.Console.WriteLine v2 │
00:03:36 #9897 [Verbose] > │ let v19 : string = $"Solution: {v18} " │
00:03:36 #9898 [Verbose] > │ System.Console.WriteLine v19 │
00:03:36 #9899 [Verbose] > │ let v20 : int32 = 0 │
00:03:36 #9900 [Verbose] > │ let v21 : string = "A" │
00:03:36 #9901 [Verbose] > │ let v22 : (struct (string * string) -> string) = closure1() │
00:03:36 #9902 [Verbose] > │ let v23 : int32 = 1 │
00:03:36 #9903 [Verbose] > │ let v24 : string = "B" │
00:03:36 #9904 [Verbose] > │ let v25 : (struct (string * string) -> string) = closure2() │
00:03:36 #9905 [Verbose] > │ let v26 : UH1 = UH1_1 │
00:03:36 #9906 [Verbose] > │ let v27 : UH1 = UH1_0(v23, v24, v25, v26) │
00:03:36 #9907 [Verbose] > │ let v28 : UH1 = UH1_0(v20, v21, v22, v27) │
00:03:36 #9908 [Verbose] > │ let v29 : (struct (int32 * string * (struct (string * string) -> │
00:03:36 #9909 [Verbose] > │ string)) []) = method5(v28) │
00:03:36 #9910 [Verbose] > │ let v30 : uint64 = System.Convert.ToUInt64 v29.Length │
00:03:36 #9911 [Verbose] > │ let v31 : (struct (string * int64) []) = Array.zeroCreate<struct │
00:03:36 #9912 [Verbose] > │ (string * int64)> (System.Convert.ToInt32(v30)) │
00:03:36 #9913 [Verbose] > │ let v32 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #9914 [Verbose] > │ while method4(v30, v32) do │
00:03:36 #9915 [Verbose] > │ let v34 : uint64 = v32.l0 │
00:03:36 #9916 [Verbose] > │ let struct (v35 : int32, v36 : string, v37 : (struct (string * │
00:03:36 #9917 [Verbose] > │ string) -> string)) = v29.[int v34] │
00:03:36 #9918 [Verbose] > │ let mutable result = None │
00:03:36 #9919 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:03:36 #9920 [Verbose] > │ () │
00:03:36 #9921 [Verbose] > │ #endif │
00:03:36 #9922 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:03:36 #9923 [Verbose] > │ () │
00:03:36 #9924 [Verbose] > │ #endif │
00:03:36 #9925 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:36 #9926 [Verbose] > │ System.GC.Collect () │
00:03:36 #9927 [Verbose] > │ () │
00:03:36 #9928 [Verbose] > │ #endif │
00:03:36 #9929 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:36 #9930 [Verbose] > │ System.GC.Collect () │
00:03:36 #9931 [Verbose] > │ () │
00:03:36 #9932 [Verbose] > │ #endif │
00:03:36 #9933 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:03:36 #9934 [Verbose] > │ System.GC.Collect () │
00:03:36 #9935 [Verbose] > │ () │
00:03:36 #9936 [Verbose] > │ #endif │
00:03:36 #9937 [Verbose] > │ |> fun x -> result <- Some x │
00:03:36 #9938 [Verbose] > │ result |> Option.get │
00:03:36 #9939 [Verbose] > │ let v38 : (unit -> System.Diagnostics.Stopwatch) = │
00:03:36 #9940 [Verbose] > │ System.Diagnostics.Stopwatch │
00:03:36 #9941 [Verbose] > │ let v39 : System.Diagnostics.Stopwatch = v38 () │
00:03:36 #9942 [Verbose] > │ v39.Start () │
00:03:36 #9943 [Verbose] > │ let v40 : int64 = v39.ElapsedMilliseconds │
00:03:36 #9944 [Verbose] > │ let v41 : (int32 []) = Array.zeroCreate<int32> (2000001) │
00:03:36 #9945 [Verbose] > │ let v42 : Mut1 = {l0 = 0} : Mut1 │
00:03:36 #9946 [Verbose] > │ while method8(v42) do │
00:03:36 #9947 [Verbose] > │ let v44 : int32 = v42.l0 │
00:03:36 #9948 [Verbose] > │ v41.[int v44] <- v44 │
00:03:36 #9949 [Verbose] > │ let v45 : int32 = v44 + 1 │
00:03:36 #9950 [Verbose] > │ v42.l0 <- v45 │
00:03:36 #9951 [Verbose] > │ () │
00:03:36 #9952 [Verbose] > │ let v46 : (int32 -> string) = closure3(v15, v16, v37) │
00:03:36 #9953 [Verbose] > │ let v47 : (string []) = v41 |> Array.Parallel.map v46 │
00:03:36 #9954 [Verbose] > │ let v48 : int32 = v47.Length │
00:03:36 #9955 [Verbose] > │ let v49 : int32 = v48 - 1 │
00:03:36 #9956 [Verbose] > │ let v50 : string = v47.[int v49] │
00:03:36 #9957 [Verbose] > │ let v51 : int64 = v39.ElapsedMilliseconds │
00:03:36 #9958 [Verbose] > │ let v52 : int64 = v51 - v40 │
00:03:36 #9959 [Verbose] > │ let v53 : string = $"Test case {v35 + 1}. {v36}. Time: {v52} " │
00:03:36 #9960 [Verbose] > │ System.Console.WriteLine v53 │
00:03:36 #9961 [Verbose] > │ v31.[int v34] <- struct (v50, v52) │
00:03:36 #9962 [Verbose] > │ let v54 : uint64 = v34 + 1UL │
00:03:36 #9963 [Verbose] > │ v32.l0 <- v54 │
00:03:36 #9964 [Verbose] > │ () │
00:03:36 #9965 [Verbose] > │ let v55 : uint64 = System.Convert.ToUInt64 v31.Length │
00:03:36 #9966 [Verbose] > │ let v56 : (string []) = Array.zeroCreate<string> │
00:03:36 #9967 [Verbose] > │ (System.Convert.ToInt32(v55)) │
00:03:36 #9968 [Verbose] > │ let v57 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #9969 [Verbose] > │ while method4(v55, v57) do │
00:03:36 #9970 [Verbose] > │ let v59 : uint64 = v57.l0 │
00:03:36 #9971 [Verbose] > │ let struct (v60 : string, v61 : int64) = v31.[int v59] │
00:03:36 #9972 [Verbose] > │ v56.[int v59] <- v60 │
00:03:36 #9973 [Verbose] > │ let v62 : uint64 = v59 + 1UL │
00:03:36 #9974 [Verbose] > │ v57.l0 <- v62 │
00:03:36 #9975 [Verbose] > │ () │
00:03:36 #9976 [Verbose] > │ let v63 : uint64 = System.Convert.ToUInt64 v56.Length │
00:03:36 #9977 [Verbose] > │ let v64 : bool = v63 <= 1UL │
00:03:36 #9978 [Verbose] > │ if v64 then │
00:03:36 #9979 [Verbose] > │ () │
00:03:36 #9980 [Verbose] > │ else │
00:03:36 #9981 [Verbose] > │ let v65 : string = v56.[int 0UL] │
00:03:36 #9982 [Verbose] > │ let v66 : uint64 = 0UL │
00:03:36 #9983 [Verbose] > │ let v67 : bool = method9(v65, v56, v66) │
00:03:36 #9984 [Verbose] > │ if v67 then │
00:03:36 #9985 [Verbose] > │ () │
00:03:36 #9986 [Verbose] > │ else │
00:03:36 #9987 [Verbose] > │ let v68 : string = $"Challenge error: {v56}" │
00:03:36 #9988 [Verbose] > │ failwith<unit> v68 │
00:03:36 #9989 [Verbose] > │ let v69 : string = $"%A{v17}" │
00:03:36 #9990 [Verbose] > │ let v70 : (string []) = Array.zeroCreate<string> │
00:03:36 #9991 [Verbose] > │ (System.Convert.ToInt32(v55)) │
00:03:36 #9992 [Verbose] > │ let v71 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #9993 [Verbose] > │ while method4(v55, v71) do │
00:03:36 #9994 [Verbose] > │ let v73 : uint64 = v71.l0 │
00:03:36 #9995 [Verbose] > │ let struct (v74 : string, v75 : int64) = v31.[int v73] │
00:03:36 #9996 [Verbose] > │ v70.[int v73] <- v74 │
00:03:36 #9997 [Verbose] > │ let v76 : uint64 = v73 + 1UL │
00:03:36 #9998 [Verbose] > │ v71.l0 <- v76 │
00:03:36 #9999 [Verbose] > │ () │
00:03:36 #10000 [Verbose] > │ let v77 : string = v70.[int 0UL] │
00:03:36 #10001 [Verbose] > │ let v78 : string = $"%A{v77}" │
00:03:36 #10002 [Verbose] > │ let v79 : (int64 []) = Array.zeroCreate<int64> │
00:03:36 #10003 [Verbose] > │ (System.Convert.ToInt32(v55)) │
00:03:36 #10004 [Verbose] > │ let v80 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #10005 [Verbose] > │ while method4(v55, v80) do │
00:03:36 #10006 [Verbose] > │ let v82 : uint64 = v80.l0 │
00:03:36 #10007 [Verbose] > │ let struct (v83 : string, v84 : int64) = v31.[int v82] │
00:03:36 #10008 [Verbose] > │ v79.[int v82] <- v84 │
00:03:36 #10009 [Verbose] > │ let v85 : uint64 = v82 + 1UL │
00:03:36 #10010 [Verbose] > │ v80.l0 <- v85 │
00:03:36 #10011 [Verbose] > │ () │
00:03:36 #10012 [Verbose] > │ v11.[int v14] <- struct (v69, v18, v78, v79) │
00:03:36 #10013 [Verbose] > │ let v86 : uint64 = v14 + 1UL │
00:03:36 #10014 [Verbose] > │ v12.l0 <- v86 │
00:03:36 #10015 [Verbose] > │ () │
00:03:36 #10016 [Verbose] > │ let v87 : uint64 = System.Convert.ToUInt64 v11.Length │
00:03:36 #10017 [Verbose] > │ let v88 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * US0)> │
00:03:36 #10018 [Verbose] > │ (System.Convert.ToInt32(v87)) │
00:03:36 #10019 [Verbose] > │ let v89 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #10020 [Verbose] > │ while method4(v87, v89) do │
00:03:36 #10021 [Verbose] > │ let v91 : uint64 = v89.l0 │
00:03:36 #10022 [Verbose] > │ let struct (v92 : string, v93 : string, v94 : string, v95 : (int64 [ │
00:03:36 #10023 [Verbose] > │ ])) = v11.[int v91] │
00:03:36 #10024 [Verbose] > │ let v96 : uint64 = System.Convert.ToUInt64 v95.Length │
00:03:36 #10025 [Verbose] > │ let v97 : UH3 = UH3_1 │
00:03:36 #10026 [Verbose] > │ let v98 : Mut2 = {l0 = 0UL; l1 = v97; l2 = 0L} : Mut2 │
00:03:36 #10027 [Verbose] > │ while method10(v96, v98) do │
00:03:36 #10028 [Verbose] > │ let v100 : uint64 = v98.l0 │
00:03:36 #10029 [Verbose] > │ let struct (v101 : UH3, v102 : int64) = v98.l1, v98.l2 │
00:03:36 #10030 [Verbose] > │ let v103 : int64 = v95.[int v100] │
00:03:36 #10031 [Verbose] > │ let v104 : int64 = v102 + 1L │
00:03:36 #10032 [Verbose] > │ let v105 : uint64 = v100 + 1UL │
00:03:36 #10033 [Verbose] > │ let v106 : UH3 = UH3_0(v102, v103, v101) │
00:03:36 #10034 [Verbose] > │ v98.l0 <- v105 │
00:03:36 #10035 [Verbose] > │ v98.l1 <- v106 │
00:03:36 #10036 [Verbose] > │ v98.l2 <- v104 │
00:03:36 #10037 [Verbose] > │ () │
00:03:36 #10038 [Verbose] > │ let struct (v107 : UH3, v108 : int64) = v98.l1, v98.l2 │
00:03:36 #10039 [Verbose] > │ let v109 : UH3 = UH3_1 │
00:03:36 #10040 [Verbose] > │ let v110 : UH3 = method11(v107, v109) │
00:03:36 #10041 [Verbose] > │ let v111 : (struct (int64 * int64) []) = method12(v110) │
00:03:36 #10042 [Verbose] > │ let v112 : int32 = v111.Length │
00:03:36 #10043 [Verbose] > │ let v113 : (struct (int64 * int64) []) = Array.zeroCreate<struct │
00:03:36 #10044 [Verbose] > │ (int64 * int64)> (v112) │
00:03:36 #10045 [Verbose] > │ let v114 : Mut1 = {l0 = 0} : Mut1 │
00:03:36 #10046 [Verbose] > │ while method15(v112, v114) do │
00:03:36 #10047 [Verbose] > │ let v116 : int32 = v114.l0 │
00:03:36 #10048 [Verbose] > │ let struct (v117 : int64, v118 : int64) = v111.[int v116] │
00:03:36 #10049 [Verbose] > │ let v119 : int64 = v117 + 1L │
00:03:36 #10050 [Verbose] > │ v113.[int v116] <- struct (v119, v118) │
00:03:36 #10051 [Verbose] > │ let v120 : int32 = v116 + 1 │
00:03:36 #10052 [Verbose] > │ v114.l0 <- v120 │
00:03:36 #10053 [Verbose] > │ () │
00:03:36 #10054 [Verbose] > │ let v121 : (struct (int64 * int64) -> int64) = closure4() │
00:03:36 #10055 [Verbose] > │ let v122 : (struct (int64 * int64) []) = v113 |> Array.sortBy v121 │
00:03:36 #10056 [Verbose] > │ let struct (v123 : int64, v124 : int64) = v122.[int 0] │
00:03:36 #10057 [Verbose] > │ let v125 : string = $"%A{struct (v123, v124)}" │
00:03:36 #10058 [Verbose] > │ let v126 : bool = v92 = v94 │
00:03:36 #10059 [Verbose] > │ let v131 : US0 = │
00:03:36 #10060 [Verbose] > │ if v126 then │
00:03:36 #10061 [Verbose] > │ let v127 : System.ConsoleColor = │
00:03:36 #10062 [Verbose] > │ System.ConsoleColor.DarkGreen │
00:03:36 #10063 [Verbose] > │ US0_1(v127) │
00:03:36 #10064 [Verbose] > │ else │
00:03:36 #10065 [Verbose] > │ let v129 : System.ConsoleColor = System.ConsoleColor.DarkRed │
00:03:36 #10066 [Verbose] > │ US0_1(v129) │
00:03:36 #10067 [Verbose] > │ let v132 : UH2 = UH2_1 │
00:03:36 #10068 [Verbose] > │ let v133 : UH2 = UH2_0(v125, v132) │
00:03:36 #10069 [Verbose] > │ let v134 : UH2 = UH2_0(v94, v133) │
00:03:36 #10070 [Verbose] > │ let v135 : UH2 = UH2_0(v92, v134) │
00:03:36 #10071 [Verbose] > │ let v136 : UH2 = UH2_0(v93, v135) │
00:03:36 #10072 [Verbose] > │ v88.[int v91] <- struct (v136, v131) │
00:03:36 #10073 [Verbose] > │ let v137 : uint64 = v91 + 1UL │
00:03:36 #10074 [Verbose] > │ v89.l0 <- v137 │
00:03:36 #10075 [Verbose] > │ () │
00:03:36 #10076 [Verbose] > │ let v138 : string = "Input" │
00:03:36 #10077 [Verbose] > │ let v139 : string = "Expected" │
00:03:36 #10078 [Verbose] > │ let v140 : string = "Result" │
00:03:36 #10079 [Verbose] > │ let v141 : string = "Best" │
00:03:36 #10080 [Verbose] > │ let v142 : UH2 = UH2_1 │
00:03:36 #10081 [Verbose] > │ let v143 : UH2 = UH2_0(v141, v142) │
00:03:36 #10082 [Verbose] > │ let v144 : UH2 = UH2_0(v140, v143) │
00:03:36 #10083 [Verbose] > │ let v145 : UH2 = UH2_0(v139, v144) │
00:03:36 #10084 [Verbose] > │ let v146 : UH2 = UH2_0(v138, v145) │
00:03:36 #10085 [Verbose] > │ let v147 : US0 = US0_0 │
00:03:36 #10086 [Verbose] > │ let v148 : string = "---" │
00:03:36 #10087 [Verbose] > │ let v149 : UH2 = UH2_1 │
00:03:36 #10088 [Verbose] > │ let v150 : UH2 = UH2_0(v148, v149) │
00:03:36 #10089 [Verbose] > │ let v151 : UH2 = UH2_0(v148, v150) │
00:03:36 #10090 [Verbose] > │ let v152 : UH2 = UH2_0(v148, v151) │
00:03:36 #10091 [Verbose] > │ let v153 : UH2 = UH2_0(v148, v152) │
00:03:36 #10092 [Verbose] > │ let v154 : US0 = US0_0 │
00:03:36 #10093 [Verbose] > │ let v155 : UH4 = UH4_1 │
00:03:36 #10094 [Verbose] > │ let v156 : UH4 = UH4_0(v153, v154, v155) │
00:03:36 #10095 [Verbose] > │ let v157 : UH4 = UH4_0(v146, v147, v156) │
00:03:36 #10096 [Verbose] > │ let v158 : (struct (UH2 * US0) []) = method16(v157) │
00:03:36 #10097 [Verbose] > │ let v159 : uint64 = System.Convert.ToUInt64 v158.Length │
00:03:36 #10098 [Verbose] > │ let v160 : uint64 = System.Convert.ToUInt64 v88.Length │
00:03:36 #10099 [Verbose] > │ let v161 : uint64 = v159 + v160 │
00:03:36 #10100 [Verbose] > │ let v162 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * │
00:03:36 #10101 [Verbose] > │ US0)> (System.Convert.ToInt32(v161)) │
00:03:36 #10102 [Verbose] > │ let v163 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #10103 [Verbose] > │ while method4(v161, v163) do │
00:03:36 #10104 [Verbose] > │ let v165 : uint64 = v163.l0 │
00:03:36 #10105 [Verbose] > │ let v166 : bool = v165 < v159 │
00:03:36 #10106 [Verbose] > │ let struct (v172 : UH2, v173 : US0) = │
00:03:36 #10107 [Verbose] > │ if v166 then │
00:03:36 #10108 [Verbose] > │ let struct (v167 : UH2, v168 : US0) = v158.[int v165] │
00:03:36 #10109 [Verbose] > │ struct (v167, v168) │
00:03:36 #10110 [Verbose] > │ else │
00:03:36 #10111 [Verbose] > │ let v169 : uint64 = v165 - v159 │
00:03:36 #10112 [Verbose] > │ let struct (v170 : UH2, v171 : US0) = v88.[int v169] │
00:03:36 #10113 [Verbose] > │ struct (v170, v171) │
00:03:36 #10114 [Verbose] > │ v162.[int v165] <- struct (v172, v173) │
00:03:36 #10115 [Verbose] > │ let v174 : uint64 = v165 + 1UL │
00:03:36 #10116 [Verbose] > │ v163.l0 <- v174 │
00:03:36 #10117 [Verbose] > │ () │
00:03:36 #10118 [Verbose] > │ let v175 : uint64 = System.Convert.ToUInt64 v162.Length │
00:03:36 #10119 [Verbose] > │ let v176 : ((string []) []) = Array.zeroCreate<(string [])> │
00:03:36 #10120 [Verbose] > │ (System.Convert.ToInt32(v175)) │
00:03:36 #10121 [Verbose] > │ let v177 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #10122 [Verbose] > │ while method4(v175, v177) do │
00:03:36 #10123 [Verbose] > │ let v179 : uint64 = v177.l0 │
00:03:36 #10124 [Verbose] > │ let struct (v180 : UH2, v181 : US0) = v162.[int v179] │
00:03:36 #10125 [Verbose] > │ let v182 : (string []) = method19(v180) │
00:03:36 #10126 [Verbose] > │ v176.[int v179] <- v182 │
00:03:36 #10127 [Verbose] > │ let v183 : uint64 = v179 + 1UL │
00:03:36 #10128 [Verbose] > │ v177.l0 <- v183 │
00:03:36 #10129 [Verbose] > │ () │
00:03:36 #10130 [Verbose] > │ let v184 : ((string []) []) = v176 |> Array.transpose │
00:03:36 #10131 [Verbose] > │ let v185 : uint64 = System.Convert.ToUInt64 v184.Length │
00:03:36 #10132 [Verbose] > │ let v186 : (int64 []) = Array.zeroCreate<int64> │
00:03:36 #10133 [Verbose] > │ (System.Convert.ToInt32(v185)) │
00:03:36 #10134 [Verbose] > │ let v187 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #10135 [Verbose] > │ while method4(v185, v187) do │
00:03:36 #10136 [Verbose] > │ let v189 : uint64 = v187.l0 │
00:03:36 #10137 [Verbose] > │ let v190 : (string []) = v184.[int v189] │
00:03:36 #10138 [Verbose] > │ let v191 : uint64 = System.Convert.ToUInt64 v190.Length │
00:03:36 #10139 [Verbose] > │ let v192 : (int64 []) = Array.zeroCreate<int64> │
00:03:36 #10140 [Verbose] > │ (System.Convert.ToInt32(v191)) │
00:03:36 #10141 [Verbose] > │ let v193 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #10142 [Verbose] > │ while method4(v191, v193) do │
00:03:36 #10143 [Verbose] > │ let v195 : uint64 = v193.l0 │
00:03:36 #10144 [Verbose] > │ let v196 : string = v190.[int v195] │
00:03:36 #10145 [Verbose] > │ let v197 : int64 = System.Convert.ToInt64 v196.Length │
00:03:36 #10146 [Verbose] > │ v192.[int v195] <- v197 │
00:03:36 #10147 [Verbose] > │ let v198 : uint64 = v195 + 1UL │
00:03:36 #10148 [Verbose] > │ v193.l0 <- v198 │
00:03:36 #10149 [Verbose] > │ () │
00:03:36 #10150 [Verbose] > │ let v199 : (int64 []) = v192 |> Array.sortDescending │
00:03:36 #10151 [Verbose] > │ let v200 : int64 option = v199 |> Array.tryItem 0 │
00:03:36 #10152 [Verbose] > │ let v201 : (int64 -> US1) = closure5() │
00:03:36 #10153 [Verbose] > │ let v202 : US1 = US1_0 │
00:03:36 #10154 [Verbose] > │ let v203 : US1 = v200 |> Option.map v201 |> Option.defaultValue v202 │
00:03:36 #10155 [Verbose] > │ let v206 : int64 = │
00:03:36 #10156 [Verbose] > │ match v203 with │
00:03:36 #10157 [Verbose] > │ | US1_0 -> (* None *) │
00:03:36 #10158 [Verbose] > │ 0L │
00:03:36 #10159 [Verbose] > │ | US1_1(v204) -> (* Some *) │
00:03:36 #10160 [Verbose] > │ v204 │
00:03:36 #10161 [Verbose] > │ v186.[int v189] <- v206 │
00:03:36 #10162 [Verbose] > │ let v207 : uint64 = v189 + 1UL │
00:03:36 #10163 [Verbose] > │ v187.l0 <- v207 │
00:03:36 #10164 [Verbose] > │ () │
00:03:36 #10165 [Verbose] > │ let v208 : uint64 = System.Convert.ToUInt64 v186.Length │
00:03:36 #10166 [Verbose] > │ let v209 : UH5 = UH5_1 │
00:03:36 #10167 [Verbose] > │ let v210 : Mut3 = {l0 = 0UL; l1 = v209; l2 = 0} : Mut3 │
00:03:36 #10168 [Verbose] > │ while method22(v208, v210) do │
00:03:36 #10169 [Verbose] > │ let v212 : uint64 = v210.l0 │
00:03:36 #10170 [Verbose] > │ let struct (v213 : UH5, v214 : int32) = v210.l1, v210.l2 │
00:03:36 #10171 [Verbose] > │ let v215 : int64 = v186.[int v212] │
00:03:36 #10172 [Verbose] > │ let v216 : int32 = v214 + 1 │
00:03:36 #10173 [Verbose] > │ let v217 : uint64 = v212 + 1UL │
00:03:36 #10174 [Verbose] > │ let v218 : UH5 = UH5_0(v214, v215, v213) │
00:03:36 #10175 [Verbose] > │ v210.l0 <- v217 │
00:03:36 #10176 [Verbose] > │ v210.l1 <- v218 │
00:03:36 #10177 [Verbose] > │ v210.l2 <- v216 │
00:03:36 #10178 [Verbose] > │ () │
00:03:36 #10179 [Verbose] > │ let struct (v219 : UH5, v220 : int32) = v210.l1, v210.l2 │
00:03:36 #10180 [Verbose] > │ let v221 : UH5 = UH5_1 │
00:03:36 #10181 [Verbose] > │ let v222 : UH5 = method23(v219, v221) │
00:03:36 #10182 [Verbose] > │ let v223 : (struct (int32 * int64) []) = method24(v222) │
00:03:36 #10183 [Verbose] > │ let v224 : Map<int32, int64> = v223 |> Array.map (fun (struct (a, b)) -> │
00:03:36 #10184 [Verbose] > │ a, b) |> Map.ofArray │
00:03:36 #10185 [Verbose] > │ let v225 : (struct ((string []) * US0) []) = Array.zeroCreate<struct │
00:03:36 #10186 [Verbose] > │ ((string []) * US0)> (System.Convert.ToInt32(v175)) │
00:03:36 #10187 [Verbose] > │ let v226 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #10188 [Verbose] > │ while method4(v175, v226) do │
00:03:36 #10189 [Verbose] > │ let v228 : uint64 = v226.l0 │
00:03:36 #10190 [Verbose] > │ let struct (v229 : UH2, v230 : US0) = v162.[int v228] │
00:03:36 #10191 [Verbose] > │ let v231 : UH6 = UH6_1 │
00:03:36 #10192 [Verbose] > │ let v232 : int32 = 0 │
00:03:36 #10193 [Verbose] > │ let struct (v233 : UH6, v234 : int32) = method27(v229, v231, v232) │
00:03:36 #10194 [Verbose] > │ let v235 : UH6 = UH6_1 │
00:03:36 #10195 [Verbose] > │ let v236 : UH6 = method28(v233, v235) │
00:03:36 #10196 [Verbose] > │ let v237 : UH2 = UH2_1 │
00:03:36 #10197 [Verbose] > │ let v238 : UH2 = method29(v224, v236, v237) │
00:03:36 #10198 [Verbose] > │ let v239 : (string []) = method30(v238) │
00:03:36 #10199 [Verbose] > │ v225.[int v228] <- struct (v239, v230) │
00:03:36 #10200 [Verbose] > │ let v240 : uint64 = v228 + 1UL │
00:03:36 #10201 [Verbose] > │ v226.l0 <- v240 │
00:03:36 #10202 [Verbose] > │ () │
00:03:36 #10203 [Verbose] > │ System.Console.WriteLine v2 │
00:03:36 #10204 [Verbose] > │ let v241 : uint64 = System.Convert.ToUInt64 v225.Length │
00:03:36 #10205 [Verbose] > │ let v242 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #10206 [Verbose] > │ while method4(v241, v242) do │
00:03:36 #10207 [Verbose] > │ let v244 : uint64 = v242.l0 │
00:03:36 #10208 [Verbose] > │ let struct (v245 : (string []), v246 : US0) = v225.[int v244] │
00:03:36 #10209 [Verbose] > │ match v246 with │
00:03:36 #10210 [Verbose] > │ | US0_0 -> (* None *) │
00:03:36 #10211 [Verbose] > │ let mutable result = None │
00:03:36 #10212 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:03:36 #10213 [Verbose] > │ () │
00:03:36 #10214 [Verbose] > │ #endif │
00:03:36 #10215 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:03:36 #10216 [Verbose] > │ () │
00:03:36 #10217 [Verbose] > │ #endif │
00:03:36 #10218 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:36 #10219 [Verbose] > │ System.Console.ResetColor () │
00:03:36 #10220 [Verbose] > │ () │
00:03:36 #10221 [Verbose] > │ #endif │
00:03:36 #10222 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:36 #10223 [Verbose] > │ System.Console.ResetColor () │
00:03:36 #10224 [Verbose] > │ () │
00:03:36 #10225 [Verbose] > │ #endif │
00:03:36 #10226 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:03:36 #10227 [Verbose] > │ System.Console.ResetColor () │
00:03:36 #10228 [Verbose] > │ () │
00:03:36 #10229 [Verbose] > │ #endif │
00:03:36 #10230 [Verbose] > │ |> fun x -> result <- Some x │
00:03:36 #10231 [Verbose] > │ result |> Option.get │
00:03:36 #10232 [Verbose] > │ () │
00:03:36 #10233 [Verbose] > │ | US0_1(v247) -> (* Some *) │
00:03:36 #10234 [Verbose] > │ let mutable result = None │
00:03:36 #10235 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:03:36 #10236 [Verbose] > │ () │
00:03:36 #10237 [Verbose] > │ #endif │
00:03:36 #10238 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:03:36 #10239 [Verbose] > │ () │
00:03:36 #10240 [Verbose] > │ #endif │
00:03:36 #10241 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:36 #10242 [Verbose] > │ System.Console.ForegroundColor <- v247 │
00:03:36 #10243 [Verbose] > │ () │
00:03:36 #10244 [Verbose] > │ #endif │
00:03:36 #10245 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:36 #10246 [Verbose] > │ System.Console.ForegroundColor <- v247 │
00:03:36 #10247 [Verbose] > │ () │
00:03:36 #10248 [Verbose] > │ #endif │
00:03:36 #10249 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:03:36 #10250 [Verbose] > │ System.Console.ForegroundColor <- v247 │
00:03:36 #10251 [Verbose] > │ () │
00:03:36 #10252 [Verbose] > │ #endif │
00:03:36 #10253 [Verbose] > │ |> fun x -> result <- Some x │
00:03:36 #10254 [Verbose] > │ result |> Option.get │
00:03:36 #10255 [Verbose] > │ () │
00:03:36 #10256 [Verbose] > │ let v248 : string = "\t| " │
00:03:36 #10257 [Verbose] > │ let v249 : string = System.String.Join (v248, v245) │
00:03:36 #10258 [Verbose] > │ System.Console.WriteLine v249 │
00:03:36 #10259 [Verbose] > │ let mutable result = None │
00:03:36 #10260 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:03:36 #10261 [Verbose] > │ () │
00:03:36 #10262 [Verbose] > │ #endif │
00:03:36 #10263 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:03:36 #10264 [Verbose] > │ () │
00:03:36 #10265 [Verbose] > │ #endif │
00:03:36 #10266 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:36 #10267 [Verbose] > │ System.Console.ResetColor () │
00:03:36 #10268 [Verbose] > │ () │
00:03:36 #10269 [Verbose] > │ #endif │
00:03:36 #10270 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:36 #10271 [Verbose] > │ System.Console.ResetColor () │
00:03:36 #10272 [Verbose] > │ () │
00:03:36 #10273 [Verbose] > │ #endif │
00:03:36 #10274 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:03:36 #10275 [Verbose] > │ System.Console.ResetColor () │
00:03:36 #10276 [Verbose] > │ () │
00:03:36 #10277 [Verbose] > │ #endif │
00:03:36 #10278 [Verbose] > │ |> fun x -> result <- Some x │
00:03:36 #10279 [Verbose] > │ result |> Option.get │
00:03:36 #10280 [Verbose] > │ let v250 : uint64 = v244 + 1UL │
00:03:36 #10281 [Verbose] > │ v242.l0 <- v250 │
00:03:36 #10282 [Verbose] > │ () │
00:03:36 #10283 [Verbose] > │ let v251 : ((float []) []) = Array.zeroCreate<(float [])> │
00:03:36 #10284 [Verbose] > │ (System.Convert.ToInt32(v87)) │
00:03:36 #10285 [Verbose] > │ let v252 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #10286 [Verbose] > │ while method4(v87, v252) do │
00:03:36 #10287 [Verbose] > │ let v254 : uint64 = v252.l0 │
00:03:36 #10288 [Verbose] > │ let struct (v255 : string, v256 : string, v257 : string, v258 : │
00:03:36 #10289 [Verbose] > │ (int64 [])) = v11.[int v254] │
00:03:36 #10290 [Verbose] > │ let v259 : (int64 -> float) = float │
00:03:36 #10291 [Verbose] > │ let v260 : uint64 = System.Convert.ToUInt64 v258.Length │
00:03:36 #10292 [Verbose] > │ let v261 : (float []) = Array.zeroCreate<float> │
00:03:36 #10293 [Verbose] > │ (System.Convert.ToInt32(v260)) │
00:03:36 #10294 [Verbose] > │ let v262 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #10295 [Verbose] > │ while method4(v260, v262) do │
00:03:36 #10296 [Verbose] > │ let v264 : uint64 = v262.l0 │
00:03:36 #10297 [Verbose] > │ let v265 : int64 = v258.[int v264] │
00:03:36 #10298 [Verbose] > │ let v266 : float = v259 v265 │
00:03:36 #10299 [Verbose] > │ v261.[int v264] <- v266 │
00:03:36 #10300 [Verbose] > │ let v267 : uint64 = v264 + 1UL │
00:03:36 #10301 [Verbose] > │ v262.l0 <- v267 │
00:03:36 #10302 [Verbose] > │ () │
00:03:36 #10303 [Verbose] > │ v251.[int v254] <- v261 │
00:03:36 #10304 [Verbose] > │ let v268 : uint64 = v254 + 1UL │
00:03:36 #10305 [Verbose] > │ v252.l0 <- v268 │
00:03:36 #10306 [Verbose] > │ () │
00:03:36 #10307 [Verbose] > │ let v269 : ((float []) []) = v251 |> Array.transpose │
00:03:36 #10308 [Verbose] > │ let v270 : uint64 = System.Convert.ToUInt64 v269.Length │
00:03:36 #10309 [Verbose] > │ let v271 : (float []) = Array.zeroCreate<float> │
00:03:36 #10310 [Verbose] > │ (System.Convert.ToInt32(v270)) │
00:03:36 #10311 [Verbose] > │ let v272 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #10312 [Verbose] > │ while method4(v270, v272) do │
00:03:36 #10313 [Verbose] > │ let v274 : uint64 = v272.l0 │
00:03:36 #10314 [Verbose] > │ let v275 : (float []) = v269.[int v274] │
00:03:36 #10315 [Verbose] > │ let v276 : float = v275 |> Array.average │
00:03:36 #10316 [Verbose] > │ v271.[int v274] <- v276 │
00:03:36 #10317 [Verbose] > │ let v277 : uint64 = v274 + 1UL │
00:03:36 #10318 [Verbose] > │ v272.l0 <- v277 │
00:03:36 #10319 [Verbose] > │ () │
00:03:36 #10320 [Verbose] > │ let v278 : (float -> int64) = int64 │
00:03:36 #10321 [Verbose] > │ let v279 : uint64 = System.Convert.ToUInt64 v271.Length │
00:03:36 #10322 [Verbose] > │ let v280 : (int64 []) = Array.zeroCreate<int64> │
00:03:36 #10323 [Verbose] > │ (System.Convert.ToInt32(v279)) │
00:03:36 #10324 [Verbose] > │ let v281 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #10325 [Verbose] > │ while method4(v279, v281) do │
00:03:36 #10326 [Verbose] > │ let v283 : uint64 = v281.l0 │
00:03:36 #10327 [Verbose] > │ let v284 : float = v271.[int v283] │
00:03:36 #10328 [Verbose] > │ let v285 : int64 = v278 v284 │
00:03:36 #10329 [Verbose] > │ v280.[int v283] <- v285 │
00:03:36 #10330 [Verbose] > │ let v286 : uint64 = v283 + 1UL │
00:03:36 #10331 [Verbose] > │ v281.l0 <- v286 │
00:03:36 #10332 [Verbose] > │ () │
00:03:36 #10333 [Verbose] > │ let v287 : uint64 = System.Convert.ToUInt64 v280.Length │
00:03:36 #10334 [Verbose] > │ let v288 : UH5 = UH5_1 │
00:03:36 #10335 [Verbose] > │ let v289 : Mut3 = {l0 = 0UL; l1 = v288; l2 = 0} : Mut3 │
00:03:36 #10336 [Verbose] > │ while method22(v287, v289) do │
00:03:36 #10337 [Verbose] > │ let v291 : uint64 = v289.l0 │
00:03:36 #10338 [Verbose] > │ let struct (v292 : UH5, v293 : int32) = v289.l1, v289.l2 │
00:03:36 #10339 [Verbose] > │ let v294 : int64 = v280.[int v291] │
00:03:36 #10340 [Verbose] > │ let v295 : int32 = v293 + 1 │
00:03:36 #10341 [Verbose] > │ let v296 : uint64 = v291 + 1UL │
00:03:36 #10342 [Verbose] > │ let v297 : UH5 = UH5_0(v293, v294, v292) │
00:03:36 #10343 [Verbose] > │ v289.l0 <- v296 │
00:03:36 #10344 [Verbose] > │ v289.l1 <- v297 │
00:03:36 #10345 [Verbose] > │ v289.l2 <- v295 │
00:03:36 #10346 [Verbose] > │ () │
00:03:36 #10347 [Verbose] > │ let struct (v298 : UH5, v299 : int32) = v289.l1, v289.l2 │
00:03:36 #10348 [Verbose] > │ let v300 : UH5 = UH5_1 │
00:03:36 #10349 [Verbose] > │ let v301 : UH5 = method23(v298, v300) │
00:03:36 #10350 [Verbose] > │ let v302 : (struct (int32 * int64) []) = method33(v301) │
00:03:36 #10351 [Verbose] > │ System.Console.WriteLine v2 │
00:03:36 #10352 [Verbose] > │ let v303 : string = "Average Ranking " │
00:03:36 #10353 [Verbose] > │ System.Console.WriteLine v303 │
00:03:36 #10354 [Verbose] > │ let v304 : (struct (int32 * int64) -> int64) = closure6() │
00:03:36 #10355 [Verbose] > │ let v305 : (struct (int32 * int64) []) = v302 |> Array.sortBy v304 │
00:03:36 #10356 [Verbose] > │ let v306 : uint64 = System.Convert.ToUInt64 v305.Length │
00:03:36 #10357 [Verbose] > │ let v307 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:36 #10358 [Verbose] > │ while method4(v306, v307) do │
00:03:36 #10359 [Verbose] > │ let v309 : uint64 = v307.l0 │
00:03:36 #10360 [Verbose] > │ let struct (v310 : int32, v311 : int64) = v305.[int v309] │
00:03:36 #10361 [Verbose] > │ let v312 : string = $"Test case %d{v310 + 1}. Average Time: %A{v311} │
00:03:36 #10362 [Verbose] > │ " │
00:03:36 #10363 [Verbose] > │ System.Console.WriteLine v312 │
00:03:36 #10364 [Verbose] > │ let v313 : uint64 = v309 + 1UL │
00:03:36 #10365 [Verbose] > │ v307.l0 <- v313 │
00:03:36 #10366 [Verbose] > │ () │
00:03:36 #10367 [Verbose] > │ () │
00:03:36 #10368 [Verbose] > │ method0() │
00:03:36 #10369 [Verbose] > │ │
00:03:36 #10370 [Verbose] > │ │
00:03:36 #10371 [Verbose] > │ │
00:03:36 #10372 [Verbose] > │ Test: v0 │
00:03:36 #10373 [Verbose] > │ │
00:03:36 #10374 [Verbose] > │ Solution: struct ("a", "a") │
00:03:36 #10375 [Verbose] > │ Test case 1. A. Time: 94 │
00:03:36 #10376 [Verbose] > │ Test case 2. B. Time: 78 │
00:03:36 #10377 [Verbose] > │ │
00:03:36 #10378 [Verbose] > │ Solution: struct ("b", "b") │
00:03:36 #10379 [Verbose] > │ Test case 1. A. Time: 84 │
00:03:36 #10380 [Verbose] > │ Test case 2. B. Time: 96 │
00:03:36 #10381 [Verbose] > │ │
00:03:36 #10382 [Verbose] > │ Input | Expected | Result | Best │
00:03:36 #10383 [Verbose] > │ --- | --- | --- | --- │
00:03:36 #10384 [Verbose] > │ struct ("a", "a") | "a" | "a" | struct (2L, 78L) │
00:03:36 #10385 [Verbose] > │ struct ("b", "b") | "b" | "b" | struct (1L, 84L) │
00:03:36 #10386 [Verbose] > │ │
00:03:36 #10387 [Verbose] > │ Average Ranking │
00:03:36 #10388 [Verbose] > │ Test case 2. Average Time: 87L │
00:03:36 #10389 [Verbose] > │ Test case 1. Average Time: 89L │
00:03:36 #10390 [Verbose] > │ │
00:03:36 #10391 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:36 #10392 [Verbose] >
00:03:36 #10393 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:36 #10394 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:36 #10395 [Verbose] > │ ## emptyTests │
00:03:36 #10396 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:36 #10397 [Verbose] >
00:03:36 #10398 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:36 #10399 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:36 #10400 [Verbose] > │ Test: Empty │
00:03:36 #10401 [Verbose] > │ │
00:03:36 #10402 [Verbose] > │ Solution: 0 │
00:03:36 #10403 [Verbose] > │ Test case 1. A. Time: 61L │
00:03:36 #10404 [Verbose] > │ │
00:03:36 #10405 [Verbose] > │ Solution: 2 │
00:03:36 #10406 [Verbose] > │ Test case 1. A. Time: 62L │
00:03:36 #10407 [Verbose] > │ │
00:03:36 #10408 [Verbose] > │ Solution: 5 │
00:03:36 #10409 [Verbose] > │ Test case 1. A. Time: 70L │
00:03:36 #10410 [Verbose] > │ │
00:03:36 #10411 [Verbose] > │ Input | Expected | Result | Best │
00:03:36 #10412 [Verbose] > │ --- | --- | --- | --- │
00:03:36 #10413 [Verbose] > │ 0 | 0 | 0 | (1, 61) │
00:03:36 #10414 [Verbose] > │ 2 | 2 | 2 | (1, 62) │
00:03:36 #10415 [Verbose] > │ 5 | 5 | 5 | (1, 70) │
00:03:36 #10416 [Verbose] > │ │
00:03:36 #10417 [Verbose] > │ Averages │
00:03:36 #10418 [Verbose] > │ Test case 1. Average Time: 64L │
00:03:36 #10419 [Verbose] > │ │
00:03:36 #10420 [Verbose] > │ Ranking │
00:03:36 #10421 [Verbose] > │ Test case 1. Average Time: 64L │
00:03:36 #10422 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:36 #10423 [Verbose] >
00:03:36 #10424 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:36 #10425 [Verbose] > // // test
00:03:36 #10426 [Verbose] >
00:03:36 #10427 [Verbose] > inl get_solutions () =
00:03:36 #10428 [Verbose] > [[
00:03:36 #10429 [Verbose] > "A",
00:03:36 #10430 [Verbose] > fun n =>
00:03:36 #10431 [Verbose] > n + 1f64
00:03:36 #10432 [Verbose] > ]]
00:03:36 #10433 [Verbose] >
00:03:36 #10434 [Verbose] > inl rec empty_1_tests () =
00:03:36 #10435 [Verbose] > inl test_cases = [[
00:03:36 #10436 [Verbose] > 0, 1
00:03:36 #10437 [Verbose] > 2, 3
00:03:36 #10438 [Verbose] > 5, 6
00:03:36 #10439 [Verbose] > ]]
00:03:36 #10440 [Verbose] >
00:03:36 #10441 [Verbose] > inl solutions = get_solutions ()
00:03:36 #10442 [Verbose] >
00:03:36 #10443 [Verbose] > // inl is_fast () = true
00:03:36 #10444 [Verbose] >
00:03:36 #10445 [Verbose] > inl count =
00:03:36 #10446 [Verbose] > if is_fast ()
00:03:36 #10447 [Verbose] > then 1000i32
00:03:36 #10448 [Verbose] > else 2000000i32
00:03:36 #10449 [Verbose] >
00:03:36 #10450 [Verbose] > run_all (nameof empty_1_tests) count solutions test_cases
00:03:36 #10451 [Verbose] > |> sort_result_list
00:03:36 #10452 [Verbose] >
00:03:36 #10453 [Verbose] > empty_1_tests ()
00:03:41 #10454 [Verbose] >
00:03:41 #10455 [Verbose] > ╭─[ 4.88s - stdout ]───────────────────────────────────────────────────────────╮
00:03:41 #10456 [Verbose] > │ type UH0 = │
00:03:41 #10457 [Verbose] > │ | UH0_0 of float * float * UH0 │
00:03:41 #10458 [Verbose] > │ | UH0_1 │
00:03:41 #10459 [Verbose] > │ and Mut0 = {mutable l0 : uint64} │
00:03:41 #10460 [Verbose] > │ and UH1 = │
00:03:41 #10461 [Verbose] > │ | UH1_0 of int32 * string * (float -> float) * UH1 │
00:03:41 #10462 [Verbose] > │ | UH1_1 │
00:03:41 #10463 [Verbose] > │ and Mut1 = {mutable l0 : int32} │
00:03:41 #10464 [Verbose] > │ and UH2 = │
00:03:41 #10465 [Verbose] > │ | UH2_0 of string * UH2 │
00:03:41 #10466 [Verbose] > │ | UH2_1 │
00:03:41 #10467 [Verbose] > │ and [<Struct>] US0 = │
00:03:41 #10468 [Verbose] > │ | US0_0 │
00:03:41 #10469 [Verbose] > │ | US0_1 of f1_0 : System.ConsoleColor │
00:03:41 #10470 [Verbose] > │ and UH3 = │
00:03:41 #10471 [Verbose] > │ | UH3_0 of int64 * int64 * UH3 │
00:03:41 #10472 [Verbose] > │ | UH3_1 │
00:03:41 #10473 [Verbose] > │ and Mut2 = {mutable l0 : uint64; mutable l1 : UH3; mutable l2 : int64} │
00:03:41 #10474 [Verbose] > │ and UH4 = │
00:03:41 #10475 [Verbose] > │ | UH4_0 of UH2 * US0 * UH4 │
00:03:41 #10476 [Verbose] > │ | UH4_1 │
00:03:41 #10477 [Verbose] > │ and [<Struct>] US1 = │
00:03:41 #10478 [Verbose] > │ | US1_0 │
00:03:41 #10479 [Verbose] > │ | US1_1 of f1_0 : int64 │
00:03:41 #10480 [Verbose] > │ and UH5 = │
00:03:41 #10481 [Verbose] > │ | UH5_0 of int32 * int64 * UH5 │
00:03:41 #10482 [Verbose] > │ | UH5_1 │
00:03:41 #10483 [Verbose] > │ and Mut3 = {mutable l0 : uint64; mutable l1 : UH5; mutable l2 : int32} │
00:03:41 #10484 [Verbose] > │ and UH6 = │
00:03:41 #10485 [Verbose] > │ | UH6_0 of int32 * string * UH6 │
00:03:41 #10486 [Verbose] > │ | UH6_1 │
00:03:41 #10487 [Verbose] > │ let rec method2 (v0 : UH0, v1 : uint64) : uint64 = │
00:03:41 #10488 [Verbose] > │ match v0 with │
00:03:41 #10489 [Verbose] > │ | UH0_0(v2, v3, v4) -> (* Cons *) │
00:03:41 #10490 [Verbose] > │ let v5 : uint64 = v1 + 1UL │
00:03:41 #10491 [Verbose] > │ method2(v4, v5) │
00:03:41 #10492 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:03:41 #10493 [Verbose] > │ v1 │
00:03:41 #10494 [Verbose] > │ and method3 (v0 : (struct (float * float) []), v1 : UH0, v2 : uint64) : │
00:03:41 #10495 [Verbose] > │ uint64 = │
00:03:41 #10496 [Verbose] > │ match v1 with │
00:03:41 #10497 [Verbose] > │ | UH0_0(v3, v4, v5) -> (* Cons *) │
00:03:41 #10498 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:03:41 #10499 [Verbose] > │ let v6 : uint64 = v2 + 1UL │
00:03:41 #10500 [Verbose] > │ method3(v0, v5, v6) │
00:03:41 #10501 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:03:41 #10502 [Verbose] > │ v2 │
00:03:41 #10503 [Verbose] > │ and method1 (v0 : UH0) : (struct (float * float) []) = │
00:03:41 #10504 [Verbose] > │ let v1 : uint64 = 0UL │
00:03:41 #10505 [Verbose] > │ let v2 : uint64 = method2(v0, v1) │
00:03:41 #10506 [Verbose] > │ let v3 : (struct (float * float) []) = Array.zeroCreate<struct (float * │
00:03:41 #10507 [Verbose] > │ float)> (System.Convert.ToInt32(v2)) │
00:03:41 #10508 [Verbose] > │ let v4 : uint64 = 0UL │
00:03:41 #10509 [Verbose] > │ let v5 : uint64 = method3(v3, v0, v4) │
00:03:41 #10510 [Verbose] > │ v3 │
00:03:41 #10511 [Verbose] > │ and method4 (v0 : uint64, v1 : Mut0) : bool = │
00:03:41 #10512 [Verbose] > │ let v2 : uint64 = v1.l0 │
00:03:41 #10513 [Verbose] > │ let v3 : bool = v2 < v0 │
00:03:41 #10514 [Verbose] > │ v3 │
00:03:41 #10515 [Verbose] > │ and closure1 () (v0 : float) : float = │
00:03:41 #10516 [Verbose] > │ let v1 : float = v0 + 1.0 │
00:03:41 #10517 [Verbose] > │ v1 │
00:03:41 #10518 [Verbose] > │ and method6 (v0 : UH1, v1 : uint64) : uint64 = │
00:03:41 #10519 [Verbose] > │ match v0 with │
00:03:41 #10520 [Verbose] > │ | UH1_0(v2, v3, v4, v5) -> (* Cons *) │
00:03:41 #10521 [Verbose] > │ let v6 : uint64 = v1 + 1UL │
00:03:41 #10522 [Verbose] > │ method6(v5, v6) │
00:03:41 #10523 [Verbose] > │ | UH1_1 -> (* Nil *) │
00:03:41 #10524 [Verbose] > │ v1 │
00:03:41 #10525 [Verbose] > │ and method7 (v0 : (struct (int32 * string * (float -> float)) []), v1 : UH1, │
00:03:41 #10526 [Verbose] > │ v2 : uint64) : uint64 = │
00:03:41 #10527 [Verbose] > │ match v1 with │
00:03:41 #10528 [Verbose] > │ | UH1_0(v3, v4, v5, v6) -> (* Cons *) │
00:03:41 #10529 [Verbose] > │ v0.[int v2] <- struct (v3, v4, v5) │
00:03:41 #10530 [Verbose] > │ let v7 : uint64 = v2 + 1UL │
00:03:41 #10531 [Verbose] > │ method7(v0, v6, v7) │
00:03:41 #10532 [Verbose] > │ | UH1_1 -> (* Nil *) │
00:03:41 #10533 [Verbose] > │ v2 │
00:03:41 #10534 [Verbose] > │ and method5 (v0 : UH1) : (struct (int32 * string * (float -> float)) []) = │
00:03:41 #10535 [Verbose] > │ let v1 : uint64 = 0UL │
00:03:41 #10536 [Verbose] > │ let v2 : uint64 = method6(v0, v1) │
00:03:41 #10537 [Verbose] > │ let v3 : (struct (int32 * string * (float -> float)) []) = │
00:03:41 #10538 [Verbose] > │ Array.zeroCreate<struct (int32 * string * (float -> float))> │
00:03:41 #10539 [Verbose] > │ (System.Convert.ToInt32(v2)) │
00:03:41 #10540 [Verbose] > │ let v4 : uint64 = 0UL │
00:03:41 #10541 [Verbose] > │ let v5 : uint64 = method7(v3, v0, v4) │
00:03:41 #10542 [Verbose] > │ v3 │
00:03:41 #10543 [Verbose] > │ and method8 (v0 : Mut1) : bool = │
00:03:41 #10544 [Verbose] > │ let v1 : int32 = v0.l0 │
00:03:41 #10545 [Verbose] > │ let v2 : bool = v1 < 2000001 │
00:03:41 #10546 [Verbose] > │ v2 │
00:03:41 #10547 [Verbose] > │ and closure2 (v0 : float, v1 : (float -> float)) (v2 : int32) : float = │
00:03:41 #10548 [Verbose] > │ v1 v0 │
00:03:41 #10549 [Verbose] > │ and method9 (v0 : float, v1 : (float []), v2 : uint64) : bool = │
00:03:41 #10550 [Verbose] > │ let v3 : uint64 = System.Convert.ToUInt64 v1.Length │
00:03:41 #10551 [Verbose] > │ let v4 : bool = v2 < v3 │
00:03:41 #10552 [Verbose] > │ if v4 then │
00:03:41 #10553 [Verbose] > │ let v5 : float = v1.[int v2] │
00:03:41 #10554 [Verbose] > │ let v6 : bool = v0 = v5 │
00:03:41 #10555 [Verbose] > │ if v6 then │
00:03:41 #10556 [Verbose] > │ let v7 : uint64 = v2 + 1UL │
00:03:41 #10557 [Verbose] > │ method9(v0, v1, v7) │
00:03:41 #10558 [Verbose] > │ else │
00:03:41 #10559 [Verbose] > │ false │
00:03:41 #10560 [Verbose] > │ else │
00:03:41 #10561 [Verbose] > │ true │
00:03:41 #10562 [Verbose] > │ and method10 (v0 : uint64, v1 : Mut2) : bool = │
00:03:41 #10563 [Verbose] > │ let v2 : uint64 = v1.l0 │
00:03:41 #10564 [Verbose] > │ let v3 : bool = v2 < v0 │
00:03:41 #10565 [Verbose] > │ v3 │
00:03:41 #10566 [Verbose] > │ and method11 (v0 : UH3, v1 : UH3) : UH3 = │
00:03:41 #10567 [Verbose] > │ match v0 with │
00:03:41 #10568 [Verbose] > │ | UH3_0(v2, v3, v4) -> (* Cons *) │
00:03:41 #10569 [Verbose] > │ let v5 : UH3 = UH3_0(v2, v3, v1) │
00:03:41 #10570 [Verbose] > │ method11(v4, v5) │
00:03:41 #10571 [Verbose] > │ | UH3_1 -> (* Nil *) │
00:03:41 #10572 [Verbose] > │ v1 │
00:03:41 #10573 [Verbose] > │ and method13 (v0 : UH3, v1 : int32) : int32 = │
00:03:41 #10574 [Verbose] > │ match v0 with │
00:03:41 #10575 [Verbose] > │ | UH3_0(v2, v3, v4) -> (* Cons *) │
00:03:41 #10576 [Verbose] > │ let v5 : int32 = v1 + 1 │
00:03:41 #10577 [Verbose] > │ method13(v4, v5) │
00:03:41 #10578 [Verbose] > │ | UH3_1 -> (* Nil *) │
00:03:41 #10579 [Verbose] > │ v1 │
00:03:41 #10580 [Verbose] > │ and method14 (v0 : (struct (int64 * int64) []), v1 : UH3, v2 : int32) : │
00:03:41 #10581 [Verbose] > │ int32 = │
00:03:41 #10582 [Verbose] > │ match v1 with │
00:03:41 #10583 [Verbose] > │ | UH3_0(v3, v4, v5) -> (* Cons *) │
00:03:41 #10584 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:03:41 #10585 [Verbose] > │ let v6 : int32 = v2 + 1 │
00:03:41 #10586 [Verbose] > │ method14(v0, v5, v6) │
00:03:41 #10587 [Verbose] > │ | UH3_1 -> (* Nil *) │
00:03:41 #10588 [Verbose] > │ v2 │
00:03:41 #10589 [Verbose] > │ and method12 (v0 : UH3) : (struct (int64 * int64) []) = │
00:03:41 #10590 [Verbose] > │ let v1 : int32 = 0 │
00:03:41 #10591 [Verbose] > │ let v2 : int32 = method13(v0, v1) │
00:03:41 #10592 [Verbose] > │ let v3 : (struct (int64 * int64) []) = Array.zeroCreate<struct (int64 * │
00:03:41 #10593 [Verbose] > │ int64)> (v2) │
00:03:41 #10594 [Verbose] > │ let v4 : int32 = 0 │
00:03:41 #10595 [Verbose] > │ let v5 : int32 = method14(v3, v0, v4) │
00:03:41 #10596 [Verbose] > │ v3 │
00:03:41 #10597 [Verbose] > │ and method15 (v0 : int32, v1 : Mut1) : bool = │
00:03:41 #10598 [Verbose] > │ let v2 : int32 = v1.l0 │
00:03:41 #10599 [Verbose] > │ let v3 : bool = v2 < v0 │
00:03:41 #10600 [Verbose] > │ v3 │
00:03:41 #10601 [Verbose] > │ and closure3 () struct (v0 : int64, v1 : int64) : int64 = │
00:03:41 #10602 [Verbose] > │ v1 │
00:03:41 #10603 [Verbose] > │ and method17 (v0 : UH4, v1 : uint64) : uint64 = │
00:03:41 #10604 [Verbose] > │ match v0 with │
00:03:41 #10605 [Verbose] > │ | UH4_0(v2, v3, v4) -> (* Cons *) │
00:03:41 #10606 [Verbose] > │ let v5 : uint64 = v1 + 1UL │
00:03:41 #10607 [Verbose] > │ method17(v4, v5) │
00:03:41 #10608 [Verbose] > │ | UH4_1 -> (* Nil *) │
00:03:41 #10609 [Verbose] > │ v1 │
00:03:41 #10610 [Verbose] > │ and method18 (v0 : (struct (UH2 * US0) []), v1 : UH4, v2 : uint64) : uint64 │
00:03:41 #10611 [Verbose] > │ = │
00:03:41 #10612 [Verbose] > │ match v1 with │
00:03:41 #10613 [Verbose] > │ | UH4_0(v3, v4, v5) -> (* Cons *) │
00:03:41 #10614 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:03:41 #10615 [Verbose] > │ let v6 : uint64 = v2 + 1UL │
00:03:41 #10616 [Verbose] > │ method18(v0, v5, v6) │
00:03:41 #10617 [Verbose] > │ | UH4_1 -> (* Nil *) │
00:03:41 #10618 [Verbose] > │ v2 │
00:03:41 #10619 [Verbose] > │ and method16 (v0 : UH4) : (struct (UH2 * US0) []) = │
00:03:41 #10620 [Verbose] > │ let v1 : uint64 = 0UL │
00:03:41 #10621 [Verbose] > │ let v2 : uint64 = method17(v0, v1) │
00:03:41 #10622 [Verbose] > │ let v3 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * US0)> │
00:03:41 #10623 [Verbose] > │ (System.Convert.ToInt32(v2)) │
00:03:41 #10624 [Verbose] > │ let v4 : uint64 = 0UL │
00:03:41 #10625 [Verbose] > │ let v5 : uint64 = method18(v3, v0, v4) │
00:03:41 #10626 [Verbose] > │ v3 │
00:03:41 #10627 [Verbose] > │ and method20 (v0 : UH2, v1 : uint64) : uint64 = │
00:03:41 #10628 [Verbose] > │ match v0 with │
00:03:41 #10629 [Verbose] > │ | UH2_0(v2, v3) -> (* Cons *) │
00:03:41 #10630 [Verbose] > │ let v4 : uint64 = v1 + 1UL │
00:03:41 #10631 [Verbose] > │ method20(v3, v4) │
00:03:41 #10632 [Verbose] > │ | UH2_1 -> (* Nil *) │
00:03:41 #10633 [Verbose] > │ v1 │
00:03:41 #10634 [Verbose] > │ and method21 (v0 : (string []), v1 : UH2, v2 : uint64) : uint64 = │
00:03:41 #10635 [Verbose] > │ match v1 with │
00:03:41 #10636 [Verbose] > │ | UH2_0(v3, v4) -> (* Cons *) │
00:03:41 #10637 [Verbose] > │ v0.[int v2] <- v3 │
00:03:41 #10638 [Verbose] > │ let v5 : uint64 = v2 + 1UL │
00:03:41 #10639 [Verbose] > │ method21(v0, v4, v5) │
00:03:41 #10640 [Verbose] > │ | UH2_1 -> (* Nil *) │
00:03:41 #10641 [Verbose] > │ v2 │
00:03:41 #10642 [Verbose] > │ and method19 (v0 : UH2) : (string []) = │
00:03:41 #10643 [Verbose] > │ let v1 : uint64 = 0UL │
00:03:41 #10644 [Verbose] > │ let v2 : uint64 = method20(v0, v1) │
00:03:41 #10645 [Verbose] > │ let v3 : (string []) = Array.zeroCreate<string> │
00:03:41 #10646 [Verbose] > │ (System.Convert.ToInt32(v2)) │
00:03:41 #10647 [Verbose] > │ let v4 : uint64 = 0UL │
00:03:41 #10648 [Verbose] > │ let v5 : uint64 = method21(v3, v0, v4) │
00:03:41 #10649 [Verbose] > │ v3 │
00:03:41 #10650 [Verbose] > │ and closure4 () (v0 : int64) : US1 = │
00:03:41 #10651 [Verbose] > │ US1_1(v0) │
00:03:41 #10652 [Verbose] > │ and method22 (v0 : uint64, v1 : Mut3) : bool = │
00:03:41 #10653 [Verbose] > │ let v2 : uint64 = v1.l0 │
00:03:41 #10654 [Verbose] > │ let v3 : bool = v2 < v0 │
00:03:41 #10655 [Verbose] > │ v3 │
00:03:41 #10656 [Verbose] > │ and method23 (v0 : UH5, v1 : UH5) : UH5 = │
00:03:41 #10657 [Verbose] > │ match v0 with │
00:03:41 #10658 [Verbose] > │ | UH5_0(v2, v3, v4) -> (* Cons *) │
00:03:41 #10659 [Verbose] > │ let v5 : UH5 = UH5_0(v2, v3, v1) │
00:03:41 #10660 [Verbose] > │ method23(v4, v5) │
00:03:41 #10661 [Verbose] > │ | UH5_1 -> (* Nil *) │
00:03:41 #10662 [Verbose] > │ v1 │
00:03:41 #10663 [Verbose] > │ and method25 (v0 : UH5, v1 : int32) : int32 = │
00:03:41 #10664 [Verbose] > │ match v0 with │
00:03:41 #10665 [Verbose] > │ | UH5_0(v2, v3, v4) -> (* Cons *) │
00:03:41 #10666 [Verbose] > │ let v5 : int32 = v1 + 1 │
00:03:41 #10667 [Verbose] > │ method25(v4, v5) │
00:03:41 #10668 [Verbose] > │ | UH5_1 -> (* Nil *) │
00:03:41 #10669 [Verbose] > │ v1 │
00:03:41 #10670 [Verbose] > │ and method26 (v0 : (struct (int32 * int64) []), v1 : UH5, v2 : int32) : │
00:03:41 #10671 [Verbose] > │ int32 = │
00:03:41 #10672 [Verbose] > │ match v1 with │
00:03:41 #10673 [Verbose] > │ | UH5_0(v3, v4, v5) -> (* Cons *) │
00:03:41 #10674 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:03:41 #10675 [Verbose] > │ let v6 : int32 = v2 + 1 │
00:03:41 #10676 [Verbose] > │ method26(v0, v5, v6) │
00:03:41 #10677 [Verbose] > │ | UH5_1 -> (* Nil *) │
00:03:41 #10678 [Verbose] > │ v2 │
00:03:41 #10679 [Verbose] > │ and method24 (v0 : UH5) : (struct (int32 * int64) []) = │
00:03:41 #10680 [Verbose] > │ let v1 : int32 = 0 │
00:03:41 #10681 [Verbose] > │ let v2 : int32 = method25(v0, v1) │
00:03:41 #10682 [Verbose] > │ let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 * │
00:03:41 #10683 [Verbose] > │ int64)> (v2) │
00:03:41 #10684 [Verbose] > │ let v4 : int32 = 0 │
00:03:41 #10685 [Verbose] > │ let v5 : int32 = method26(v3, v0, v4) │
00:03:41 #10686 [Verbose] > │ v3 │
00:03:41 #10687 [Verbose] > │ and method27 (v0 : UH2, v1 : UH6, v2 : int32) : struct (UH6 * int32) = │
00:03:41 #10688 [Verbose] > │ match v0 with │
00:03:41 #10689 [Verbose] > │ | UH2_0(v3, v4) -> (* Cons *) │
00:03:41 #10690 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:03:41 #10691 [Verbose] > │ let v6 : UH6 = UH6_0(v2, v3, v1) │
00:03:41 #10692 [Verbose] > │ method27(v4, v6, v5) │
00:03:41 #10693 [Verbose] > │ | UH2_1 -> (* Nil *) │
00:03:41 #10694 [Verbose] > │ struct (v1, v2) │
00:03:41 #10695 [Verbose] > │ and method28 (v0 : UH6, v1 : UH6) : UH6 = │
00:03:41 #10696 [Verbose] > │ match v0 with │
00:03:41 #10697 [Verbose] > │ | UH6_0(v2, v3, v4) -> (* Cons *) │
00:03:41 #10698 [Verbose] > │ let v5 : UH6 = UH6_0(v2, v3, v1) │
00:03:41 #10699 [Verbose] > │ method28(v4, v5) │
00:03:41 #10700 [Verbose] > │ | UH6_1 -> (* Nil *) │
00:03:41 #10701 [Verbose] > │ v1 │
00:03:41 #10702 [Verbose] > │ and method29 (v0 : Map<int32, int64>, v1 : UH6, v2 : UH2) : UH2 = │
00:03:41 #10703 [Verbose] > │ match v1 with │
00:03:41 #10704 [Verbose] > │ | UH6_0(v3, v4, v5) -> (* Cons *) │
00:03:41 #10705 [Verbose] > │ let v6 : UH2 = method29(v0, v5, v2) │
00:03:41 #10706 [Verbose] > │ let v7 : int64 = v0.[v3] │
00:03:41 #10707 [Verbose] > │ let v8 : int32 = int32 v7 │
00:03:41 #10708 [Verbose] > │ let v9 : string = v4.PadRight v8 │
00:03:41 #10709 [Verbose] > │ UH2_0(v9, v6) │
00:03:41 #10710 [Verbose] > │ | UH6_1 -> (* Nil *) │
00:03:41 #10711 [Verbose] > │ v2 │
00:03:41 #10712 [Verbose] > │ and method31 (v0 : UH2, v1 : int32) : int32 = │
00:03:41 #10713 [Verbose] > │ match v0 with │
00:03:41 #10714 [Verbose] > │ | UH2_0(v2, v3) -> (* Cons *) │
00:03:41 #10715 [Verbose] > │ let v4 : int32 = v1 + 1 │
00:03:41 #10716 [Verbose] > │ method31(v3, v4) │
00:03:41 #10717 [Verbose] > │ | UH2_1 -> (* Nil *) │
00:03:41 #10718 [Verbose] > │ v1 │
00:03:41 #10719 [Verbose] > │ and method32 (v0 : (string []), v1 : UH2, v2 : int32) : int32 = │
00:03:41 #10720 [Verbose] > │ match v1 with │
00:03:41 #10721 [Verbose] > │ | UH2_0(v3, v4) -> (* Cons *) │
00:03:41 #10722 [Verbose] > │ v0.[int v2] <- v3 │
00:03:41 #10723 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:03:41 #10724 [Verbose] > │ method32(v0, v4, v5) │
00:03:41 #10725 [Verbose] > │ | UH2_1 -> (* Nil *) │
00:03:41 #10726 [Verbose] > │ v2 │
00:03:41 #10727 [Verbose] > │ and method30 (v0 : UH2) : (string []) = │
00:03:41 #10728 [Verbose] > │ let v1 : int32 = 0 │
00:03:41 #10729 [Verbose] > │ let v2 : int32 = method31(v0, v1) │
00:03:41 #10730 [Verbose] > │ let v3 : (string []) = Array.zeroCreate<string> (v2) │
00:03:41 #10731 [Verbose] > │ let v4 : int32 = 0 │
00:03:41 #10732 [Verbose] > │ let v5 : int32 = method32(v3, v0, v4) │
00:03:41 #10733 [Verbose] > │ v3 │
00:03:41 #10734 [Verbose] > │ and method34 (v0 : UH5, v1 : uint64) : uint64 = │
00:03:41 #10735 [Verbose] > │ match v0 with │
00:03:41 #10736 [Verbose] > │ | UH5_0(v2, v3, v4) -> (* Cons *) │
00:03:41 #10737 [Verbose] > │ let v5 : uint64 = v1 + 1UL │
00:03:41 #10738 [Verbose] > │ method34(v4, v5) │
00:03:41 #10739 [Verbose] > │ | UH5_1 -> (* Nil *) │
00:03:41 #10740 [Verbose] > │ v1 │
00:03:41 #10741 [Verbose] > │ and method35 (v0 : (struct (int32 * int64) []), v1 : UH5, v2 : uint64) : │
00:03:41 #10742 [Verbose] > │ uint64 = │
00:03:41 #10743 [Verbose] > │ match v1 with │
00:03:41 #10744 [Verbose] > │ | UH5_0(v3, v4, v5) -> (* Cons *) │
00:03:41 #10745 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:03:41 #10746 [Verbose] > │ let v6 : uint64 = v2 + 1UL │
00:03:41 #10747 [Verbose] > │ method35(v0, v5, v6) │
00:03:41 #10748 [Verbose] > │ | UH5_1 -> (* Nil *) │
00:03:41 #10749 [Verbose] > │ v2 │
00:03:41 #10750 [Verbose] > │ and method33 (v0 : UH5) : (struct (int32 * int64) []) = │
00:03:41 #10751 [Verbose] > │ let v1 : uint64 = 0UL │
00:03:41 #10752 [Verbose] > │ let v2 : uint64 = method34(v0, v1) │
00:03:41 #10753 [Verbose] > │ let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 * │
00:03:41 #10754 [Verbose] > │ int64)> (System.Convert.ToInt32(v2)) │
00:03:41 #10755 [Verbose] > │ let v4 : uint64 = 0UL │
00:03:41 #10756 [Verbose] > │ let v5 : uint64 = method35(v3, v0, v4) │
00:03:41 #10757 [Verbose] > │ v3 │
00:03:41 #10758 [Verbose] > │ and closure5 () struct (v0 : int32, v1 : int64) : int64 = │
00:03:41 #10759 [Verbose] > │ v1 │
00:03:41 #10760 [Verbose] > │ and closure0 () () : unit = │
00:03:41 #10761 [Verbose] > │ let v0 : (unit -> unit) = closure0() │
00:03:41 #10762 [Verbose] > │ let v1 : string = nameof v0 │
00:03:41 #10763 [Verbose] > │ let v2 : string = "" │
00:03:41 #10764 [Verbose] > │ System.Console.WriteLine v2 │
00:03:41 #10765 [Verbose] > │ System.Console.WriteLine v2 │
00:03:41 #10766 [Verbose] > │ let v3 : string = $"Test: {v1}" │
00:03:41 #10767 [Verbose] > │ System.Console.WriteLine v3 │
00:03:41 #10768 [Verbose] > │ let v4 : float = 0.0 │
00:03:41 #10769 [Verbose] > │ let v5 : float = 1.0 │
00:03:41 #10770 [Verbose] > │ let v6 : float = 2.0 │
00:03:41 #10771 [Verbose] > │ let v7 : float = 3.0 │
00:03:41 #10772 [Verbose] > │ let v8 : float = 5.0 │
00:03:41 #10773 [Verbose] > │ let v9 : float = 6.0 │
00:03:41 #10774 [Verbose] > │ let v10 : UH0 = UH0_1 │
00:03:41 #10775 [Verbose] > │ let v11 : UH0 = UH0_0(v8, v9, v10) │
00:03:41 #10776 [Verbose] > │ let v12 : UH0 = UH0_0(v6, v7, v11) │
00:03:41 #10777 [Verbose] > │ let v13 : UH0 = UH0_0(v4, v5, v12) │
00:03:41 #10778 [Verbose] > │ let v14 : (struct (float * float) []) = method1(v13) │
00:03:41 #10779 [Verbose] > │ let v15 : uint64 = System.Convert.ToUInt64 v14.Length │
00:03:41 #10780 [Verbose] > │ let v16 : (struct (string * string * string * (int64 [])) []) = │
00:03:41 #10781 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))> │
00:03:41 #10782 [Verbose] > │ (System.Convert.ToInt32(v15)) │
00:03:41 #10783 [Verbose] > │ let v17 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #10784 [Verbose] > │ while method4(v15, v17) do │
00:03:41 #10785 [Verbose] > │ let v19 : uint64 = v17.l0 │
00:03:41 #10786 [Verbose] > │ let struct (v20 : float, v21 : float) = v14.[int v19] │
00:03:41 #10787 [Verbose] > │ let v22 : string = $"%A{v20}" │
00:03:41 #10788 [Verbose] > │ System.Console.WriteLine v2 │
00:03:41 #10789 [Verbose] > │ let v23 : string = $"Solution: {v22} " │
00:03:41 #10790 [Verbose] > │ System.Console.WriteLine v23 │
00:03:41 #10791 [Verbose] > │ let v24 : int32 = 0 │
00:03:41 #10792 [Verbose] > │ let v25 : string = "A" │
00:03:41 #10793 [Verbose] > │ let v26 : (float -> float) = closure1() │
00:03:41 #10794 [Verbose] > │ let v27 : UH1 = UH1_1 │
00:03:41 #10795 [Verbose] > │ let v28 : UH1 = UH1_0(v24, v25, v26, v27) │
00:03:41 #10796 [Verbose] > │ let v29 : (struct (int32 * string * (float -> float)) []) = │
00:03:41 #10797 [Verbose] > │ method5(v28) │
00:03:41 #10798 [Verbose] > │ let v30 : uint64 = System.Convert.ToUInt64 v29.Length │
00:03:41 #10799 [Verbose] > │ let v31 : (struct (float * int64) []) = Array.zeroCreate<struct │
00:03:41 #10800 [Verbose] > │ (float * int64)> (System.Convert.ToInt32(v30)) │
00:03:41 #10801 [Verbose] > │ let v32 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #10802 [Verbose] > │ while method4(v30, v32) do │
00:03:41 #10803 [Verbose] > │ let v34 : uint64 = v32.l0 │
00:03:41 #10804 [Verbose] > │ let struct (v35 : int32, v36 : string, v37 : (float -> float)) = │
00:03:41 #10805 [Verbose] > │ v29.[int v34] │
00:03:41 #10806 [Verbose] > │ let mutable result = None │
00:03:41 #10807 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:03:41 #10808 [Verbose] > │ () │
00:03:41 #10809 [Verbose] > │ #endif │
00:03:41 #10810 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:03:41 #10811 [Verbose] > │ () │
00:03:41 #10812 [Verbose] > │ #endif │
00:03:41 #10813 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:41 #10814 [Verbose] > │ System.GC.Collect () │
00:03:41 #10815 [Verbose] > │ () │
00:03:41 #10816 [Verbose] > │ #endif │
00:03:41 #10817 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:41 #10818 [Verbose] > │ System.GC.Collect () │
00:03:41 #10819 [Verbose] > │ () │
00:03:41 #10820 [Verbose] > │ #endif │
00:03:41 #10821 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:03:41 #10822 [Verbose] > │ System.GC.Collect () │
00:03:41 #10823 [Verbose] > │ () │
00:03:41 #10824 [Verbose] > │ #endif │
00:03:41 #10825 [Verbose] > │ |> fun x -> result <- Some x │
00:03:41 #10826 [Verbose] > │ result |> Option.get │
00:03:41 #10827 [Verbose] > │ let v38 : (unit -> System.Diagnostics.Stopwatch) = │
00:03:41 #10828 [Verbose] > │ System.Diagnostics.Stopwatch │
00:03:41 #10829 [Verbose] > │ let v39 : System.Diagnostics.Stopwatch = v38 () │
00:03:41 #10830 [Verbose] > │ v39.Start () │
00:03:41 #10831 [Verbose] > │ let v40 : int64 = v39.ElapsedMilliseconds │
00:03:41 #10832 [Verbose] > │ let v41 : (int32 []) = Array.zeroCreate<int32> (2000001) │
00:03:41 #10833 [Verbose] > │ let v42 : Mut1 = {l0 = 0} : Mut1 │
00:03:41 #10834 [Verbose] > │ while method8(v42) do │
00:03:41 #10835 [Verbose] > │ let v44 : int32 = v42.l0 │
00:03:41 #10836 [Verbose] > │ v41.[int v44] <- v44 │
00:03:41 #10837 [Verbose] > │ let v45 : int32 = v44 + 1 │
00:03:41 #10838 [Verbose] > │ v42.l0 <- v45 │
00:03:41 #10839 [Verbose] > │ () │
00:03:41 #10840 [Verbose] > │ let v46 : (int32 -> float) = closure2(v20, v37) │
00:03:41 #10841 [Verbose] > │ let v47 : (float []) = v41 |> Array.Parallel.map v46 │
00:03:41 #10842 [Verbose] > │ let v48 : int32 = v47.Length │
00:03:41 #10843 [Verbose] > │ let v49 : int32 = v48 - 1 │
00:03:41 #10844 [Verbose] > │ let v50 : float = v47.[int v49] │
00:03:41 #10845 [Verbose] > │ let v51 : int64 = v39.ElapsedMilliseconds │
00:03:41 #10846 [Verbose] > │ let v52 : int64 = v51 - v40 │
00:03:41 #10847 [Verbose] > │ let v53 : string = $"Test case {v35 + 1}. {v36}. Time: {v52} " │
00:03:41 #10848 [Verbose] > │ System.Console.WriteLine v53 │
00:03:41 #10849 [Verbose] > │ v31.[int v34] <- struct (v50, v52) │
00:03:41 #10850 [Verbose] > │ let v54 : uint64 = v34 + 1UL │
00:03:41 #10851 [Verbose] > │ v32.l0 <- v54 │
00:03:41 #10852 [Verbose] > │ () │
00:03:41 #10853 [Verbose] > │ let v55 : uint64 = System.Convert.ToUInt64 v31.Length │
00:03:41 #10854 [Verbose] > │ let v56 : (float []) = Array.zeroCreate<float> │
00:03:41 #10855 [Verbose] > │ (System.Convert.ToInt32(v55)) │
00:03:41 #10856 [Verbose] > │ let v57 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #10857 [Verbose] > │ while method4(v55, v57) do │
00:03:41 #10858 [Verbose] > │ let v59 : uint64 = v57.l0 │
00:03:41 #10859 [Verbose] > │ let struct (v60 : float, v61 : int64) = v31.[int v59] │
00:03:41 #10860 [Verbose] > │ v56.[int v59] <- v60 │
00:03:41 #10861 [Verbose] > │ let v62 : uint64 = v59 + 1UL │
00:03:41 #10862 [Verbose] > │ v57.l0 <- v62 │
00:03:41 #10863 [Verbose] > │ () │
00:03:41 #10864 [Verbose] > │ let v63 : uint64 = System.Convert.ToUInt64 v56.Length │
00:03:41 #10865 [Verbose] > │ let v64 : bool = v63 <= 1UL │
00:03:41 #10866 [Verbose] > │ if v64 then │
00:03:41 #10867 [Verbose] > │ () │
00:03:41 #10868 [Verbose] > │ else │
00:03:41 #10869 [Verbose] > │ let v65 : float = v56.[int 0UL] │
00:03:41 #10870 [Verbose] > │ let v66 : uint64 = 0UL │
00:03:41 #10871 [Verbose] > │ let v67 : bool = method9(v65, v56, v66) │
00:03:41 #10872 [Verbose] > │ if v67 then │
00:03:41 #10873 [Verbose] > │ () │
00:03:41 #10874 [Verbose] > │ else │
00:03:41 #10875 [Verbose] > │ let v68 : string = $"Challenge error: {v56}" │
00:03:41 #10876 [Verbose] > │ failwith<unit> v68 │
00:03:41 #10877 [Verbose] > │ let v69 : string = $"%A{v21}" │
00:03:41 #10878 [Verbose] > │ let v70 : (float []) = Array.zeroCreate<float> │
00:03:41 #10879 [Verbose] > │ (System.Convert.ToInt32(v55)) │
00:03:41 #10880 [Verbose] > │ let v71 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #10881 [Verbose] > │ while method4(v55, v71) do │
00:03:41 #10882 [Verbose] > │ let v73 : uint64 = v71.l0 │
00:03:41 #10883 [Verbose] > │ let struct (v74 : float, v75 : int64) = v31.[int v73] │
00:03:41 #10884 [Verbose] > │ v70.[int v73] <- v74 │
00:03:41 #10885 [Verbose] > │ let v76 : uint64 = v73 + 1UL │
00:03:41 #10886 [Verbose] > │ v71.l0 <- v76 │
00:03:41 #10887 [Verbose] > │ () │
00:03:41 #10888 [Verbose] > │ let v77 : float = v70.[int 0UL] │
00:03:41 #10889 [Verbose] > │ let v78 : string = $"%A{v77}" │
00:03:41 #10890 [Verbose] > │ let v79 : (int64 []) = Array.zeroCreate<int64> │
00:03:41 #10891 [Verbose] > │ (System.Convert.ToInt32(v55)) │
00:03:41 #10892 [Verbose] > │ let v80 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #10893 [Verbose] > │ while method4(v55, v80) do │
00:03:41 #10894 [Verbose] > │ let v82 : uint64 = v80.l0 │
00:03:41 #10895 [Verbose] > │ let struct (v83 : float, v84 : int64) = v31.[int v82] │
00:03:41 #10896 [Verbose] > │ v79.[int v82] <- v84 │
00:03:41 #10897 [Verbose] > │ let v85 : uint64 = v82 + 1UL │
00:03:41 #10898 [Verbose] > │ v80.l0 <- v85 │
00:03:41 #10899 [Verbose] > │ () │
00:03:41 #10900 [Verbose] > │ v16.[int v19] <- struct (v69, v22, v78, v79) │
00:03:41 #10901 [Verbose] > │ let v86 : uint64 = v19 + 1UL │
00:03:41 #10902 [Verbose] > │ v17.l0 <- v86 │
00:03:41 #10903 [Verbose] > │ () │
00:03:41 #10904 [Verbose] > │ let v87 : uint64 = System.Convert.ToUInt64 v16.Length │
00:03:41 #10905 [Verbose] > │ let v88 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * US0)> │
00:03:41 #10906 [Verbose] > │ (System.Convert.ToInt32(v87)) │
00:03:41 #10907 [Verbose] > │ let v89 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #10908 [Verbose] > │ while method4(v87, v89) do │
00:03:41 #10909 [Verbose] > │ let v91 : uint64 = v89.l0 │
00:03:41 #10910 [Verbose] > │ let struct (v92 : string, v93 : string, v94 : string, v95 : (int64 [ │
00:03:41 #10911 [Verbose] > │ ])) = v16.[int v91] │
00:03:41 #10912 [Verbose] > │ let v96 : uint64 = System.Convert.ToUInt64 v95.Length │
00:03:41 #10913 [Verbose] > │ let v97 : UH3 = UH3_1 │
00:03:41 #10914 [Verbose] > │ let v98 : Mut2 = {l0 = 0UL; l1 = v97; l2 = 0L} : Mut2 │
00:03:41 #10915 [Verbose] > │ while method10(v96, v98) do │
00:03:41 #10916 [Verbose] > │ let v100 : uint64 = v98.l0 │
00:03:41 #10917 [Verbose] > │ let struct (v101 : UH3, v102 : int64) = v98.l1, v98.l2 │
00:03:41 #10918 [Verbose] > │ let v103 : int64 = v95.[int v100] │
00:03:41 #10919 [Verbose] > │ let v104 : int64 = v102 + 1L │
00:03:41 #10920 [Verbose] > │ let v105 : uint64 = v100 + 1UL │
00:03:41 #10921 [Verbose] > │ let v106 : UH3 = UH3_0(v102, v103, v101) │
00:03:41 #10922 [Verbose] > │ v98.l0 <- v105 │
00:03:41 #10923 [Verbose] > │ v98.l1 <- v106 │
00:03:41 #10924 [Verbose] > │ v98.l2 <- v104 │
00:03:41 #10925 [Verbose] > │ () │
00:03:41 #10926 [Verbose] > │ let struct (v107 : UH3, v108 : int64) = v98.l1, v98.l2 │
00:03:41 #10927 [Verbose] > │ let v109 : UH3 = UH3_1 │
00:03:41 #10928 [Verbose] > │ let v110 : UH3 = method11(v107, v109) │
00:03:41 #10929 [Verbose] > │ let v111 : (struct (int64 * int64) []) = method12(v110) │
00:03:41 #10930 [Verbose] > │ let v112 : int32 = v111.Length │
00:03:41 #10931 [Verbose] > │ let v113 : (struct (int64 * int64) []) = Array.zeroCreate<struct │
00:03:41 #10932 [Verbose] > │ (int64 * int64)> (v112) │
00:03:41 #10933 [Verbose] > │ let v114 : Mut1 = {l0 = 0} : Mut1 │
00:03:41 #10934 [Verbose] > │ while method15(v112, v114) do │
00:03:41 #10935 [Verbose] > │ let v116 : int32 = v114.l0 │
00:03:41 #10936 [Verbose] > │ let struct (v117 : int64, v118 : int64) = v111.[int v116] │
00:03:41 #10937 [Verbose] > │ let v119 : int64 = v117 + 1L │
00:03:41 #10938 [Verbose] > │ v113.[int v116] <- struct (v119, v118) │
00:03:41 #10939 [Verbose] > │ let v120 : int32 = v116 + 1 │
00:03:41 #10940 [Verbose] > │ v114.l0 <- v120 │
00:03:41 #10941 [Verbose] > │ () │
00:03:41 #10942 [Verbose] > │ let v121 : (struct (int64 * int64) -> int64) = closure3() │
00:03:41 #10943 [Verbose] > │ let v122 : (struct (int64 * int64) []) = v113 |> Array.sortBy v121 │
00:03:41 #10944 [Verbose] > │ let struct (v123 : int64, v124 : int64) = v122.[int 0] │
00:03:41 #10945 [Verbose] > │ let v125 : string = $"%A{struct (v123, v124)}" │
00:03:41 #10946 [Verbose] > │ let v126 : bool = v92 = v94 │
00:03:41 #10947 [Verbose] > │ let v131 : US0 = │
00:03:41 #10948 [Verbose] > │ if v126 then │
00:03:41 #10949 [Verbose] > │ let v127 : System.ConsoleColor = │
00:03:41 #10950 [Verbose] > │ System.ConsoleColor.DarkGreen │
00:03:41 #10951 [Verbose] > │ US0_1(v127) │
00:03:41 #10952 [Verbose] > │ else │
00:03:41 #10953 [Verbose] > │ let v129 : System.ConsoleColor = System.ConsoleColor.DarkRed │
00:03:41 #10954 [Verbose] > │ US0_1(v129) │
00:03:41 #10955 [Verbose] > │ let v132 : UH2 = UH2_1 │
00:03:41 #10956 [Verbose] > │ let v133 : UH2 = UH2_0(v125, v132) │
00:03:41 #10957 [Verbose] > │ let v134 : UH2 = UH2_0(v94, v133) │
00:03:41 #10958 [Verbose] > │ let v135 : UH2 = UH2_0(v92, v134) │
00:03:41 #10959 [Verbose] > │ let v136 : UH2 = UH2_0(v93, v135) │
00:03:41 #10960 [Verbose] > │ v88.[int v91] <- struct (v136, v131) │
00:03:41 #10961 [Verbose] > │ let v137 : uint64 = v91 + 1UL │
00:03:41 #10962 [Verbose] > │ v89.l0 <- v137 │
00:03:41 #10963 [Verbose] > │ () │
00:03:41 #10964 [Verbose] > │ let v138 : string = "Input" │
00:03:41 #10965 [Verbose] > │ let v139 : string = "Expected" │
00:03:41 #10966 [Verbose] > │ let v140 : string = "Result" │
00:03:41 #10967 [Verbose] > │ let v141 : string = "Best" │
00:03:41 #10968 [Verbose] > │ let v142 : UH2 = UH2_1 │
00:03:41 #10969 [Verbose] > │ let v143 : UH2 = UH2_0(v141, v142) │
00:03:41 #10970 [Verbose] > │ let v144 : UH2 = UH2_0(v140, v143) │
00:03:41 #10971 [Verbose] > │ let v145 : UH2 = UH2_0(v139, v144) │
00:03:41 #10972 [Verbose] > │ let v146 : UH2 = UH2_0(v138, v145) │
00:03:41 #10973 [Verbose] > │ let v147 : US0 = US0_0 │
00:03:41 #10974 [Verbose] > │ let v148 : string = "---" │
00:03:41 #10975 [Verbose] > │ let v149 : UH2 = UH2_1 │
00:03:41 #10976 [Verbose] > │ let v150 : UH2 = UH2_0(v148, v149) │
00:03:41 #10977 [Verbose] > │ let v151 : UH2 = UH2_0(v148, v150) │
00:03:41 #10978 [Verbose] > │ let v152 : UH2 = UH2_0(v148, v151) │
00:03:41 #10979 [Verbose] > │ let v153 : UH2 = UH2_0(v148, v152) │
00:03:41 #10980 [Verbose] > │ let v154 : US0 = US0_0 │
00:03:41 #10981 [Verbose] > │ let v155 : UH4 = UH4_1 │
00:03:41 #10982 [Verbose] > │ let v156 : UH4 = UH4_0(v153, v154, v155) │
00:03:41 #10983 [Verbose] > │ let v157 : UH4 = UH4_0(v146, v147, v156) │
00:03:41 #10984 [Verbose] > │ let v158 : (struct (UH2 * US0) []) = method16(v157) │
00:03:41 #10985 [Verbose] > │ let v159 : uint64 = System.Convert.ToUInt64 v158.Length │
00:03:41 #10986 [Verbose] > │ let v160 : uint64 = System.Convert.ToUInt64 v88.Length │
00:03:41 #10987 [Verbose] > │ let v161 : uint64 = v159 + v160 │
00:03:41 #10988 [Verbose] > │ let v162 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * │
00:03:41 #10989 [Verbose] > │ US0)> (System.Convert.ToInt32(v161)) │
00:03:41 #10990 [Verbose] > │ let v163 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #10991 [Verbose] > │ while method4(v161, v163) do │
00:03:41 #10992 [Verbose] > │ let v165 : uint64 = v163.l0 │
00:03:41 #10993 [Verbose] > │ let v166 : bool = v165 < v159 │
00:03:41 #10994 [Verbose] > │ let struct (v172 : UH2, v173 : US0) = │
00:03:41 #10995 [Verbose] > │ if v166 then │
00:03:41 #10996 [Verbose] > │ let struct (v167 : UH2, v168 : US0) = v158.[int v165] │
00:03:41 #10997 [Verbose] > │ struct (v167, v168) │
00:03:41 #10998 [Verbose] > │ else │
00:03:41 #10999 [Verbose] > │ let v169 : uint64 = v165 - v159 │
00:03:41 #11000 [Verbose] > │ let struct (v170 : UH2, v171 : US0) = v88.[int v169] │
00:03:41 #11001 [Verbose] > │ struct (v170, v171) │
00:03:41 #11002 [Verbose] > │ v162.[int v165] <- struct (v172, v173) │
00:03:41 #11003 [Verbose] > │ let v174 : uint64 = v165 + 1UL │
00:03:41 #11004 [Verbose] > │ v163.l0 <- v174 │
00:03:41 #11005 [Verbose] > │ () │
00:03:41 #11006 [Verbose] > │ let v175 : uint64 = System.Convert.ToUInt64 v162.Length │
00:03:41 #11007 [Verbose] > │ let v176 : ((string []) []) = Array.zeroCreate<(string [])> │
00:03:41 #11008 [Verbose] > │ (System.Convert.ToInt32(v175)) │
00:03:41 #11009 [Verbose] > │ let v177 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #11010 [Verbose] > │ while method4(v175, v177) do │
00:03:41 #11011 [Verbose] > │ let v179 : uint64 = v177.l0 │
00:03:41 #11012 [Verbose] > │ let struct (v180 : UH2, v181 : US0) = v162.[int v179] │
00:03:41 #11013 [Verbose] > │ let v182 : (string []) = method19(v180) │
00:03:41 #11014 [Verbose] > │ v176.[int v179] <- v182 │
00:03:41 #11015 [Verbose] > │ let v183 : uint64 = v179 + 1UL │
00:03:41 #11016 [Verbose] > │ v177.l0 <- v183 │
00:03:41 #11017 [Verbose] > │ () │
00:03:41 #11018 [Verbose] > │ let v184 : ((string []) []) = v176 |> Array.transpose │
00:03:41 #11019 [Verbose] > │ let v185 : uint64 = System.Convert.ToUInt64 v184.Length │
00:03:41 #11020 [Verbose] > │ let v186 : (int64 []) = Array.zeroCreate<int64> │
00:03:41 #11021 [Verbose] > │ (System.Convert.ToInt32(v185)) │
00:03:41 #11022 [Verbose] > │ let v187 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #11023 [Verbose] > │ while method4(v185, v187) do │
00:03:41 #11024 [Verbose] > │ let v189 : uint64 = v187.l0 │
00:03:41 #11025 [Verbose] > │ let v190 : (string []) = v184.[int v189] │
00:03:41 #11026 [Verbose] > │ let v191 : uint64 = System.Convert.ToUInt64 v190.Length │
00:03:41 #11027 [Verbose] > │ let v192 : (int64 []) = Array.zeroCreate<int64> │
00:03:41 #11028 [Verbose] > │ (System.Convert.ToInt32(v191)) │
00:03:41 #11029 [Verbose] > │ let v193 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #11030 [Verbose] > │ while method4(v191, v193) do │
00:03:41 #11031 [Verbose] > │ let v195 : uint64 = v193.l0 │
00:03:41 #11032 [Verbose] > │ let v196 : string = v190.[int v195] │
00:03:41 #11033 [Verbose] > │ let v197 : int64 = System.Convert.ToInt64 v196.Length │
00:03:41 #11034 [Verbose] > │ v192.[int v195] <- v197 │
00:03:41 #11035 [Verbose] > │ let v198 : uint64 = v195 + 1UL │
00:03:41 #11036 [Verbose] > │ v193.l0 <- v198 │
00:03:41 #11037 [Verbose] > │ () │
00:03:41 #11038 [Verbose] > │ let v199 : (int64 []) = v192 |> Array.sortDescending │
00:03:41 #11039 [Verbose] > │ let v200 : int64 option = v199 |> Array.tryItem 0 │
00:03:41 #11040 [Verbose] > │ let v201 : (int64 -> US1) = closure4() │
00:03:41 #11041 [Verbose] > │ let v202 : US1 = US1_0 │
00:03:41 #11042 [Verbose] > │ let v203 : US1 = v200 |> Option.map v201 |> Option.defaultValue v202 │
00:03:41 #11043 [Verbose] > │ let v206 : int64 = │
00:03:41 #11044 [Verbose] > │ match v203 with │
00:03:41 #11045 [Verbose] > │ | US1_0 -> (* None *) │
00:03:41 #11046 [Verbose] > │ 0L │
00:03:41 #11047 [Verbose] > │ | US1_1(v204) -> (* Some *) │
00:03:41 #11048 [Verbose] > │ v204 │
00:03:41 #11049 [Verbose] > │ v186.[int v189] <- v206 │
00:03:41 #11050 [Verbose] > │ let v207 : uint64 = v189 + 1UL │
00:03:41 #11051 [Verbose] > │ v187.l0 <- v207 │
00:03:41 #11052 [Verbose] > │ () │
00:03:41 #11053 [Verbose] > │ let v208 : uint64 = System.Convert.ToUInt64 v186.Length │
00:03:41 #11054 [Verbose] > │ let v209 : UH5 = UH5_1 │
00:03:41 #11055 [Verbose] > │ let v210 : Mut3 = {l0 = 0UL; l1 = v209; l2 = 0} : Mut3 │
00:03:41 #11056 [Verbose] > │ while method22(v208, v210) do │
00:03:41 #11057 [Verbose] > │ let v212 : uint64 = v210.l0 │
00:03:41 #11058 [Verbose] > │ let struct (v213 : UH5, v214 : int32) = v210.l1, v210.l2 │
00:03:41 #11059 [Verbose] > │ let v215 : int64 = v186.[int v212] │
00:03:41 #11060 [Verbose] > │ let v216 : int32 = v214 + 1 │
00:03:41 #11061 [Verbose] > │ let v217 : uint64 = v212 + 1UL │
00:03:41 #11062 [Verbose] > │ let v218 : UH5 = UH5_0(v214, v215, v213) │
00:03:41 #11063 [Verbose] > │ v210.l0 <- v217 │
00:03:41 #11064 [Verbose] > │ v210.l1 <- v218 │
00:03:41 #11065 [Verbose] > │ v210.l2 <- v216 │
00:03:41 #11066 [Verbose] > │ () │
00:03:41 #11067 [Verbose] > │ let struct (v219 : UH5, v220 : int32) = v210.l1, v210.l2 │
00:03:41 #11068 [Verbose] > │ let v221 : UH5 = UH5_1 │
00:03:41 #11069 [Verbose] > │ let v222 : UH5 = method23(v219, v221) │
00:03:41 #11070 [Verbose] > │ let v223 : (struct (int32 * int64) []) = method24(v222) │
00:03:41 #11071 [Verbose] > │ let v224 : Map<int32, int64> = v223 |> Array.map (fun (struct (a, b)) -> │
00:03:41 #11072 [Verbose] > │ a, b) |> Map.ofArray │
00:03:41 #11073 [Verbose] > │ let v225 : (struct ((string []) * US0) []) = Array.zeroCreate<struct │
00:03:41 #11074 [Verbose] > │ ((string []) * US0)> (System.Convert.ToInt32(v175)) │
00:03:41 #11075 [Verbose] > │ let v226 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #11076 [Verbose] > │ while method4(v175, v226) do │
00:03:41 #11077 [Verbose] > │ let v228 : uint64 = v226.l0 │
00:03:41 #11078 [Verbose] > │ let struct (v229 : UH2, v230 : US0) = v162.[int v228] │
00:03:41 #11079 [Verbose] > │ let v231 : UH6 = UH6_1 │
00:03:41 #11080 [Verbose] > │ let v232 : int32 = 0 │
00:03:41 #11081 [Verbose] > │ let struct (v233 : UH6, v234 : int32) = method27(v229, v231, v232) │
00:03:41 #11082 [Verbose] > │ let v235 : UH6 = UH6_1 │
00:03:41 #11083 [Verbose] > │ let v236 : UH6 = method28(v233, v235) │
00:03:41 #11084 [Verbose] > │ let v237 : UH2 = UH2_1 │
00:03:41 #11085 [Verbose] > │ let v238 : UH2 = method29(v224, v236, v237) │
00:03:41 #11086 [Verbose] > │ let v239 : (string []) = method30(v238) │
00:03:41 #11087 [Verbose] > │ v225.[int v228] <- struct (v239, v230) │
00:03:41 #11088 [Verbose] > │ let v240 : uint64 = v228 + 1UL │
00:03:41 #11089 [Verbose] > │ v226.l0 <- v240 │
00:03:41 #11090 [Verbose] > │ () │
00:03:41 #11091 [Verbose] > │ System.Console.WriteLine v2 │
00:03:41 #11092 [Verbose] > │ let v241 : uint64 = System.Convert.ToUInt64 v225.Length │
00:03:41 #11093 [Verbose] > │ let v242 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #11094 [Verbose] > │ while method4(v241, v242) do │
00:03:41 #11095 [Verbose] > │ let v244 : uint64 = v242.l0 │
00:03:41 #11096 [Verbose] > │ let struct (v245 : (string []), v246 : US0) = v225.[int v244] │
00:03:41 #11097 [Verbose] > │ match v246 with │
00:03:41 #11098 [Verbose] > │ | US0_0 -> (* None *) │
00:03:41 #11099 [Verbose] > │ let mutable result = None │
00:03:41 #11100 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:03:41 #11101 [Verbose] > │ () │
00:03:41 #11102 [Verbose] > │ #endif │
00:03:41 #11103 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:03:41 #11104 [Verbose] > │ () │
00:03:41 #11105 [Verbose] > │ #endif │
00:03:41 #11106 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:41 #11107 [Verbose] > │ System.Console.ResetColor () │
00:03:41 #11108 [Verbose] > │ () │
00:03:41 #11109 [Verbose] > │ #endif │
00:03:41 #11110 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:41 #11111 [Verbose] > │ System.Console.ResetColor () │
00:03:41 #11112 [Verbose] > │ () │
00:03:41 #11113 [Verbose] > │ #endif │
00:03:41 #11114 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:03:41 #11115 [Verbose] > │ System.Console.ResetColor () │
00:03:41 #11116 [Verbose] > │ () │
00:03:41 #11117 [Verbose] > │ #endif │
00:03:41 #11118 [Verbose] > │ |> fun x -> result <- Some x │
00:03:41 #11119 [Verbose] > │ result |> Option.get │
00:03:41 #11120 [Verbose] > │ () │
00:03:41 #11121 [Verbose] > │ | US0_1(v247) -> (* Some *) │
00:03:41 #11122 [Verbose] > │ let mutable result = None │
00:03:41 #11123 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:03:41 #11124 [Verbose] > │ () │
00:03:41 #11125 [Verbose] > │ #endif │
00:03:41 #11126 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:03:41 #11127 [Verbose] > │ () │
00:03:41 #11128 [Verbose] > │ #endif │
00:03:41 #11129 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:41 #11130 [Verbose] > │ System.Console.ForegroundColor <- v247 │
00:03:41 #11131 [Verbose] > │ () │
00:03:41 #11132 [Verbose] > │ #endif │
00:03:41 #11133 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:41 #11134 [Verbose] > │ System.Console.ForegroundColor <- v247 │
00:03:41 #11135 [Verbose] > │ () │
00:03:41 #11136 [Verbose] > │ #endif │
00:03:41 #11137 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:03:41 #11138 [Verbose] > │ System.Console.ForegroundColor <- v247 │
00:03:41 #11139 [Verbose] > │ () │
00:03:41 #11140 [Verbose] > │ #endif │
00:03:41 #11141 [Verbose] > │ |> fun x -> result <- Some x │
00:03:41 #11142 [Verbose] > │ result |> Option.get │
00:03:41 #11143 [Verbose] > │ () │
00:03:41 #11144 [Verbose] > │ let v248 : string = "\t| " │
00:03:41 #11145 [Verbose] > │ let v249 : string = System.String.Join (v248, v245) │
00:03:41 #11146 [Verbose] > │ System.Console.WriteLine v249 │
00:03:41 #11147 [Verbose] > │ let mutable result = None │
00:03:41 #11148 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:03:41 #11149 [Verbose] > │ () │
00:03:41 #11150 [Verbose] > │ #endif │
00:03:41 #11151 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:03:41 #11152 [Verbose] > │ () │
00:03:41 #11153 [Verbose] > │ #endif │
00:03:41 #11154 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:41 #11155 [Verbose] > │ System.Console.ResetColor () │
00:03:41 #11156 [Verbose] > │ () │
00:03:41 #11157 [Verbose] > │ #endif │
00:03:41 #11158 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:41 #11159 [Verbose] > │ System.Console.ResetColor () │
00:03:41 #11160 [Verbose] > │ () │
00:03:41 #11161 [Verbose] > │ #endif │
00:03:41 #11162 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:03:41 #11163 [Verbose] > │ System.Console.ResetColor () │
00:03:41 #11164 [Verbose] > │ () │
00:03:41 #11165 [Verbose] > │ #endif │
00:03:41 #11166 [Verbose] > │ |> fun x -> result <- Some x │
00:03:41 #11167 [Verbose] > │ result |> Option.get │
00:03:41 #11168 [Verbose] > │ let v250 : uint64 = v244 + 1UL │
00:03:41 #11169 [Verbose] > │ v242.l0 <- v250 │
00:03:41 #11170 [Verbose] > │ () │
00:03:41 #11171 [Verbose] > │ let v251 : ((float []) []) = Array.zeroCreate<(float [])> │
00:03:41 #11172 [Verbose] > │ (System.Convert.ToInt32(v87)) │
00:03:41 #11173 [Verbose] > │ let v252 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #11174 [Verbose] > │ while method4(v87, v252) do │
00:03:41 #11175 [Verbose] > │ let v254 : uint64 = v252.l0 │
00:03:41 #11176 [Verbose] > │ let struct (v255 : string, v256 : string, v257 : string, v258 : │
00:03:41 #11177 [Verbose] > │ (int64 [])) = v16.[int v254] │
00:03:41 #11178 [Verbose] > │ let v259 : (int64 -> float) = float │
00:03:41 #11179 [Verbose] > │ let v260 : uint64 = System.Convert.ToUInt64 v258.Length │
00:03:41 #11180 [Verbose] > │ let v261 : (float []) = Array.zeroCreate<float> │
00:03:41 #11181 [Verbose] > │ (System.Convert.ToInt32(v260)) │
00:03:41 #11182 [Verbose] > │ let v262 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #11183 [Verbose] > │ while method4(v260, v262) do │
00:03:41 #11184 [Verbose] > │ let v264 : uint64 = v262.l0 │
00:03:41 #11185 [Verbose] > │ let v265 : int64 = v258.[int v264] │
00:03:41 #11186 [Verbose] > │ let v266 : float = v259 v265 │
00:03:41 #11187 [Verbose] > │ v261.[int v264] <- v266 │
00:03:41 #11188 [Verbose] > │ let v267 : uint64 = v264 + 1UL │
00:03:41 #11189 [Verbose] > │ v262.l0 <- v267 │
00:03:41 #11190 [Verbose] > │ () │
00:03:41 #11191 [Verbose] > │ v251.[int v254] <- v261 │
00:03:41 #11192 [Verbose] > │ let v268 : uint64 = v254 + 1UL │
00:03:41 #11193 [Verbose] > │ v252.l0 <- v268 │
00:03:41 #11194 [Verbose] > │ () │
00:03:41 #11195 [Verbose] > │ let v269 : ((float []) []) = v251 |> Array.transpose │
00:03:41 #11196 [Verbose] > │ let v270 : uint64 = System.Convert.ToUInt64 v269.Length │
00:03:41 #11197 [Verbose] > │ let v271 : (float []) = Array.zeroCreate<float> │
00:03:41 #11198 [Verbose] > │ (System.Convert.ToInt32(v270)) │
00:03:41 #11199 [Verbose] > │ let v272 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #11200 [Verbose] > │ while method4(v270, v272) do │
00:03:41 #11201 [Verbose] > │ let v274 : uint64 = v272.l0 │
00:03:41 #11202 [Verbose] > │ let v275 : (float []) = v269.[int v274] │
00:03:41 #11203 [Verbose] > │ let v276 : float = v275 |> Array.average │
00:03:41 #11204 [Verbose] > │ v271.[int v274] <- v276 │
00:03:41 #11205 [Verbose] > │ let v277 : uint64 = v274 + 1UL │
00:03:41 #11206 [Verbose] > │ v272.l0 <- v277 │
00:03:41 #11207 [Verbose] > │ () │
00:03:41 #11208 [Verbose] > │ let v278 : (float -> int64) = int64 │
00:03:41 #11209 [Verbose] > │ let v279 : uint64 = System.Convert.ToUInt64 v271.Length │
00:03:41 #11210 [Verbose] > │ let v280 : (int64 []) = Array.zeroCreate<int64> │
00:03:41 #11211 [Verbose] > │ (System.Convert.ToInt32(v279)) │
00:03:41 #11212 [Verbose] > │ let v281 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #11213 [Verbose] > │ while method4(v279, v281) do │
00:03:41 #11214 [Verbose] > │ let v283 : uint64 = v281.l0 │
00:03:41 #11215 [Verbose] > │ let v284 : float = v271.[int v283] │
00:03:41 #11216 [Verbose] > │ let v285 : int64 = v278 v284 │
00:03:41 #11217 [Verbose] > │ v280.[int v283] <- v285 │
00:03:41 #11218 [Verbose] > │ let v286 : uint64 = v283 + 1UL │
00:03:41 #11219 [Verbose] > │ v281.l0 <- v286 │
00:03:41 #11220 [Verbose] > │ () │
00:03:41 #11221 [Verbose] > │ let v287 : uint64 = System.Convert.ToUInt64 v280.Length │
00:03:41 #11222 [Verbose] > │ let v288 : UH5 = UH5_1 │
00:03:41 #11223 [Verbose] > │ let v289 : Mut3 = {l0 = 0UL; l1 = v288; l2 = 0} : Mut3 │
00:03:41 #11224 [Verbose] > │ while method22(v287, v289) do │
00:03:41 #11225 [Verbose] > │ let v291 : uint64 = v289.l0 │
00:03:41 #11226 [Verbose] > │ let struct (v292 : UH5, v293 : int32) = v289.l1, v289.l2 │
00:03:41 #11227 [Verbose] > │ let v294 : int64 = v280.[int v291] │
00:03:41 #11228 [Verbose] > │ let v295 : int32 = v293 + 1 │
00:03:41 #11229 [Verbose] > │ let v296 : uint64 = v291 + 1UL │
00:03:41 #11230 [Verbose] > │ let v297 : UH5 = UH5_0(v293, v294, v292) │
00:03:41 #11231 [Verbose] > │ v289.l0 <- v296 │
00:03:41 #11232 [Verbose] > │ v289.l1 <- v297 │
00:03:41 #11233 [Verbose] > │ v289.l2 <- v295 │
00:03:41 #11234 [Verbose] > │ () │
00:03:41 #11235 [Verbose] > │ let struct (v298 : UH5, v299 : int32) = v289.l1, v289.l2 │
00:03:41 #11236 [Verbose] > │ let v300 : UH5 = UH5_1 │
00:03:41 #11237 [Verbose] > │ let v301 : UH5 = method23(v298, v300) │
00:03:41 #11238 [Verbose] > │ let v302 : (struct (int32 * int64) []) = method33(v301) │
00:03:41 #11239 [Verbose] > │ System.Console.WriteLine v2 │
00:03:41 #11240 [Verbose] > │ let v303 : string = "Average Ranking " │
00:03:41 #11241 [Verbose] > │ System.Console.WriteLine v303 │
00:03:41 #11242 [Verbose] > │ let v304 : (struct (int32 * int64) -> int64) = closure5() │
00:03:41 #11243 [Verbose] > │ let v305 : (struct (int32 * int64) []) = v302 |> Array.sortBy v304 │
00:03:41 #11244 [Verbose] > │ let v306 : uint64 = System.Convert.ToUInt64 v305.Length │
00:03:41 #11245 [Verbose] > │ let v307 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #11246 [Verbose] > │ while method4(v306, v307) do │
00:03:41 #11247 [Verbose] > │ let v309 : uint64 = v307.l0 │
00:03:41 #11248 [Verbose] > │ let struct (v310 : int32, v311 : int64) = v305.[int v309] │
00:03:41 #11249 [Verbose] > │ let v312 : string = $"Test case %d{v310 + 1}. Average Time: %A{v311} │
00:03:41 #11250 [Verbose] > │ " │
00:03:41 #11251 [Verbose] > │ System.Console.WriteLine v312 │
00:03:41 #11252 [Verbose] > │ let v313 : uint64 = v309 + 1UL │
00:03:41 #11253 [Verbose] > │ v307.l0 <- v313 │
00:03:41 #11254 [Verbose] > │ () │
00:03:41 #11255 [Verbose] > │ () │
00:03:41 #11256 [Verbose] > │ and method0 () : unit = │
00:03:41 #11257 [Verbose] > │ let v0 : (unit -> unit) = closure0() │
00:03:41 #11258 [Verbose] > │ let v1 : string = nameof v0 │
00:03:41 #11259 [Verbose] > │ let v2 : string = "" │
00:03:41 #11260 [Verbose] > │ System.Console.WriteLine v2 │
00:03:41 #11261 [Verbose] > │ System.Console.WriteLine v2 │
00:03:41 #11262 [Verbose] > │ let v3 : string = $"Test: {v1}" │
00:03:41 #11263 [Verbose] > │ System.Console.WriteLine v3 │
00:03:41 #11264 [Verbose] > │ let v4 : float = 0.0 │
00:03:41 #11265 [Verbose] > │ let v5 : float = 1.0 │
00:03:41 #11266 [Verbose] > │ let v6 : float = 2.0 │
00:03:41 #11267 [Verbose] > │ let v7 : float = 3.0 │
00:03:41 #11268 [Verbose] > │ let v8 : float = 5.0 │
00:03:41 #11269 [Verbose] > │ let v9 : float = 6.0 │
00:03:41 #11270 [Verbose] > │ let v10 : UH0 = UH0_1 │
00:03:41 #11271 [Verbose] > │ let v11 : UH0 = UH0_0(v8, v9, v10) │
00:03:41 #11272 [Verbose] > │ let v12 : UH0 = UH0_0(v6, v7, v11) │
00:03:41 #11273 [Verbose] > │ let v13 : UH0 = UH0_0(v4, v5, v12) │
00:03:41 #11274 [Verbose] > │ let v14 : (struct (float * float) []) = method1(v13) │
00:03:41 #11275 [Verbose] > │ let v15 : uint64 = System.Convert.ToUInt64 v14.Length │
00:03:41 #11276 [Verbose] > │ let v16 : (struct (string * string * string * (int64 [])) []) = │
00:03:41 #11277 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))> │
00:03:41 #11278 [Verbose] > │ (System.Convert.ToInt32(v15)) │
00:03:41 #11279 [Verbose] > │ let v17 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #11280 [Verbose] > │ while method4(v15, v17) do │
00:03:41 #11281 [Verbose] > │ let v19 : uint64 = v17.l0 │
00:03:41 #11282 [Verbose] > │ let struct (v20 : float, v21 : float) = v14.[int v19] │
00:03:41 #11283 [Verbose] > │ let v22 : string = $"%A{v20}" │
00:03:41 #11284 [Verbose] > │ System.Console.WriteLine v2 │
00:03:41 #11285 [Verbose] > │ let v23 : string = $"Solution: {v22} " │
00:03:41 #11286 [Verbose] > │ System.Console.WriteLine v23 │
00:03:41 #11287 [Verbose] > │ let v24 : int32 = 0 │
00:03:41 #11288 [Verbose] > │ let v25 : string = "A" │
00:03:41 #11289 [Verbose] > │ let v26 : (float -> float) = closure1() │
00:03:41 #11290 [Verbose] > │ let v27 : UH1 = UH1_1 │
00:03:41 #11291 [Verbose] > │ let v28 : UH1 = UH1_0(v24, v25, v26, v27) │
00:03:41 #11292 [Verbose] > │ let v29 : (struct (int32 * string * (float -> float)) []) = │
00:03:41 #11293 [Verbose] > │ method5(v28) │
00:03:41 #11294 [Verbose] > │ let v30 : uint64 = System.Convert.ToUInt64 v29.Length │
00:03:41 #11295 [Verbose] > │ let v31 : (struct (float * int64) []) = Array.zeroCreate<struct │
00:03:41 #11296 [Verbose] > │ (float * int64)> (System.Convert.ToInt32(v30)) │
00:03:41 #11297 [Verbose] > │ let v32 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #11298 [Verbose] > │ while method4(v30, v32) do │
00:03:41 #11299 [Verbose] > │ let v34 : uint64 = v32.l0 │
00:03:41 #11300 [Verbose] > │ let struct (v35 : int32, v36 : string, v37 : (float -> float)) = │
00:03:41 #11301 [Verbose] > │ v29.[int v34] │
00:03:41 #11302 [Verbose] > │ let mutable result = None │
00:03:41 #11303 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:03:41 #11304 [Verbose] > │ () │
00:03:41 #11305 [Verbose] > │ #endif │
00:03:41 #11306 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:03:41 #11307 [Verbose] > │ () │
00:03:41 #11308 [Verbose] > │ #endif │
00:03:41 #11309 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:41 #11310 [Verbose] > │ System.GC.Collect () │
00:03:41 #11311 [Verbose] > │ () │
00:03:41 #11312 [Verbose] > │ #endif │
00:03:41 #11313 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:41 #11314 [Verbose] > │ System.GC.Collect () │
00:03:41 #11315 [Verbose] > │ () │
00:03:41 #11316 [Verbose] > │ #endif │
00:03:41 #11317 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:03:41 #11318 [Verbose] > │ System.GC.Collect () │
00:03:41 #11319 [Verbose] > │ () │
00:03:41 #11320 [Verbose] > │ #endif │
00:03:41 #11321 [Verbose] > │ |> fun x -> result <- Some x │
00:03:41 #11322 [Verbose] > │ result |> Option.get │
00:03:41 #11323 [Verbose] > │ let v38 : (unit -> System.Diagnostics.Stopwatch) = │
00:03:41 #11324 [Verbose] > │ System.Diagnostics.Stopwatch │
00:03:41 #11325 [Verbose] > │ let v39 : System.Diagnostics.Stopwatch = v38 () │
00:03:41 #11326 [Verbose] > │ v39.Start () │
00:03:41 #11327 [Verbose] > │ let v40 : int64 = v39.ElapsedMilliseconds │
00:03:41 #11328 [Verbose] > │ let v41 : (int32 []) = Array.zeroCreate<int32> (2000001) │
00:03:41 #11329 [Verbose] > │ let v42 : Mut1 = {l0 = 0} : Mut1 │
00:03:41 #11330 [Verbose] > │ while method8(v42) do │
00:03:41 #11331 [Verbose] > │ let v44 : int32 = v42.l0 │
00:03:41 #11332 [Verbose] > │ v41.[int v44] <- v44 │
00:03:41 #11333 [Verbose] > │ let v45 : int32 = v44 + 1 │
00:03:41 #11334 [Verbose] > │ v42.l0 <- v45 │
00:03:41 #11335 [Verbose] > │ () │
00:03:41 #11336 [Verbose] > │ let v46 : (int32 -> float) = closure2(v20, v37) │
00:03:41 #11337 [Verbose] > │ let v47 : (float []) = v41 |> Array.Parallel.map v46 │
00:03:41 #11338 [Verbose] > │ let v48 : int32 = v47.Length │
00:03:41 #11339 [Verbose] > │ let v49 : int32 = v48 - 1 │
00:03:41 #11340 [Verbose] > │ let v50 : float = v47.[int v49] │
00:03:41 #11341 [Verbose] > │ let v51 : int64 = v39.ElapsedMilliseconds │
00:03:41 #11342 [Verbose] > │ let v52 : int64 = v51 - v40 │
00:03:41 #11343 [Verbose] > │ let v53 : string = $"Test case {v35 + 1}. {v36}. Time: {v52} " │
00:03:41 #11344 [Verbose] > │ System.Console.WriteLine v53 │
00:03:41 #11345 [Verbose] > │ v31.[int v34] <- struct (v50, v52) │
00:03:41 #11346 [Verbose] > │ let v54 : uint64 = v34 + 1UL │
00:03:41 #11347 [Verbose] > │ v32.l0 <- v54 │
00:03:41 #11348 [Verbose] > │ () │
00:03:41 #11349 [Verbose] > │ let v55 : uint64 = System.Convert.ToUInt64 v31.Length │
00:03:41 #11350 [Verbose] > │ let v56 : (float []) = Array.zeroCreate<float> │
00:03:41 #11351 [Verbose] > │ (System.Convert.ToInt32(v55)) │
00:03:41 #11352 [Verbose] > │ let v57 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #11353 [Verbose] > │ while method4(v55, v57) do │
00:03:41 #11354 [Verbose] > │ let v59 : uint64 = v57.l0 │
00:03:41 #11355 [Verbose] > │ let struct (v60 : float, v61 : int64) = v31.[int v59] │
00:03:41 #11356 [Verbose] > │ v56.[int v59] <- v60 │
00:03:41 #11357 [Verbose] > │ let v62 : uint64 = v59 + 1UL │
00:03:41 #11358 [Verbose] > │ v57.l0 <- v62 │
00:03:41 #11359 [Verbose] > │ () │
00:03:41 #11360 [Verbose] > │ let v63 : uint64 = System.Convert.ToUInt64 v56.Length │
00:03:41 #11361 [Verbose] > │ let v64 : bool = v63 <= 1UL │
00:03:41 #11362 [Verbose] > │ if v64 then │
00:03:41 #11363 [Verbose] > │ () │
00:03:41 #11364 [Verbose] > │ else │
00:03:41 #11365 [Verbose] > │ let v65 : float = v56.[int 0UL] │
00:03:41 #11366 [Verbose] > │ let v66 : uint64 = 0UL │
00:03:41 #11367 [Verbose] > │ let v67 : bool = method9(v65, v56, v66) │
00:03:41 #11368 [Verbose] > │ if v67 then │
00:03:41 #11369 [Verbose] > │ () │
00:03:41 #11370 [Verbose] > │ else │
00:03:41 #11371 [Verbose] > │ let v68 : string = $"Challenge error: {v56}" │
00:03:41 #11372 [Verbose] > │ failwith<unit> v68 │
00:03:41 #11373 [Verbose] > │ let v69 : string = $"%A{v21}" │
00:03:41 #11374 [Verbose] > │ let v70 : (float []) = Array.zeroCreate<float> │
00:03:41 #11375 [Verbose] > │ (System.Convert.ToInt32(v55)) │
00:03:41 #11376 [Verbose] > │ let v71 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #11377 [Verbose] > │ while method4(v55, v71) do │
00:03:41 #11378 [Verbose] > │ let v73 : uint64 = v71.l0 │
00:03:41 #11379 [Verbose] > │ let struct (v74 : float, v75 : int64) = v31.[int v73] │
00:03:41 #11380 [Verbose] > │ v70.[int v73] <- v74 │
00:03:41 #11381 [Verbose] > │ let v76 : uint64 = v73 + 1UL │
00:03:41 #11382 [Verbose] > │ v71.l0 <- v76 │
00:03:41 #11383 [Verbose] > │ () │
00:03:41 #11384 [Verbose] > │ let v77 : float = v70.[int 0UL] │
00:03:41 #11385 [Verbose] > │ let v78 : string = $"%A{v77}" │
00:03:41 #11386 [Verbose] > │ let v79 : (int64 []) = Array.zeroCreate<int64> │
00:03:41 #11387 [Verbose] > │ (System.Convert.ToInt32(v55)) │
00:03:41 #11388 [Verbose] > │ let v80 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #11389 [Verbose] > │ while method4(v55, v80) do │
00:03:41 #11390 [Verbose] > │ let v82 : uint64 = v80.l0 │
00:03:41 #11391 [Verbose] > │ let struct (v83 : float, v84 : int64) = v31.[int v82] │
00:03:41 #11392 [Verbose] > │ v79.[int v82] <- v84 │
00:03:41 #11393 [Verbose] > │ let v85 : uint64 = v82 + 1UL │
00:03:41 #11394 [Verbose] > │ v80.l0 <- v85 │
00:03:41 #11395 [Verbose] > │ () │
00:03:41 #11396 [Verbose] > │ v16.[int v19] <- struct (v69, v22, v78, v79) │
00:03:41 #11397 [Verbose] > │ let v86 : uint64 = v19 + 1UL │
00:03:41 #11398 [Verbose] > │ v17.l0 <- v86 │
00:03:41 #11399 [Verbose] > │ () │
00:03:41 #11400 [Verbose] > │ let v87 : uint64 = System.Convert.ToUInt64 v16.Length │
00:03:41 #11401 [Verbose] > │ let v88 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * US0)> │
00:03:41 #11402 [Verbose] > │ (System.Convert.ToInt32(v87)) │
00:03:41 #11403 [Verbose] > │ let v89 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #11404 [Verbose] > │ while method4(v87, v89) do │
00:03:41 #11405 [Verbose] > │ let v91 : uint64 = v89.l0 │
00:03:41 #11406 [Verbose] > │ let struct (v92 : string, v93 : string, v94 : string, v95 : (int64 [ │
00:03:41 #11407 [Verbose] > │ ])) = v16.[int v91] │
00:03:41 #11408 [Verbose] > │ let v96 : uint64 = System.Convert.ToUInt64 v95.Length │
00:03:41 #11409 [Verbose] > │ let v97 : UH3 = UH3_1 │
00:03:41 #11410 [Verbose] > │ let v98 : Mut2 = {l0 = 0UL; l1 = v97; l2 = 0L} : Mut2 │
00:03:41 #11411 [Verbose] > │ while method10(v96, v98) do │
00:03:41 #11412 [Verbose] > │ let v100 : uint64 = v98.l0 │
00:03:41 #11413 [Verbose] > │ let struct (v101 : UH3, v102 : int64) = v98.l1, v98.l2 │
00:03:41 #11414 [Verbose] > │ let v103 : int64 = v95.[int v100] │
00:03:41 #11415 [Verbose] > │ let v104 : int64 = v102 + 1L │
00:03:41 #11416 [Verbose] > │ let v105 : uint64 = v100 + 1UL │
00:03:41 #11417 [Verbose] > │ let v106 : UH3 = UH3_0(v102, v103, v101) │
00:03:41 #11418 [Verbose] > │ v98.l0 <- v105 │
00:03:41 #11419 [Verbose] > │ v98.l1 <- v106 │
00:03:41 #11420 [Verbose] > │ v98.l2 <- v104 │
00:03:41 #11421 [Verbose] > │ () │
00:03:41 #11422 [Verbose] > │ let struct (v107 : UH3, v108 : int64) = v98.l1, v98.l2 │
00:03:41 #11423 [Verbose] > │ let v109 : UH3 = UH3_1 │
00:03:41 #11424 [Verbose] > │ let v110 : UH3 = method11(v107, v109) │
00:03:41 #11425 [Verbose] > │ let v111 : (struct (int64 * int64) []) = method12(v110) │
00:03:41 #11426 [Verbose] > │ let v112 : int32 = v111.Length │
00:03:41 #11427 [Verbose] > │ let v113 : (struct (int64 * int64) []) = Array.zeroCreate<struct │
00:03:41 #11428 [Verbose] > │ (int64 * int64)> (v112) │
00:03:41 #11429 [Verbose] > │ let v114 : Mut1 = {l0 = 0} : Mut1 │
00:03:41 #11430 [Verbose] > │ while method15(v112, v114) do │
00:03:41 #11431 [Verbose] > │ let v116 : int32 = v114.l0 │
00:03:41 #11432 [Verbose] > │ let struct (v117 : int64, v118 : int64) = v111.[int v116] │
00:03:41 #11433 [Verbose] > │ let v119 : int64 = v117 + 1L │
00:03:41 #11434 [Verbose] > │ v113.[int v116] <- struct (v119, v118) │
00:03:41 #11435 [Verbose] > │ let v120 : int32 = v116 + 1 │
00:03:41 #11436 [Verbose] > │ v114.l0 <- v120 │
00:03:41 #11437 [Verbose] > │ () │
00:03:41 #11438 [Verbose] > │ let v121 : (struct (int64 * int64) -> int64) = closure3() │
00:03:41 #11439 [Verbose] > │ let v122 : (struct (int64 * int64) []) = v113 |> Array.sortBy v121 │
00:03:41 #11440 [Verbose] > │ let struct (v123 : int64, v124 : int64) = v122.[int 0] │
00:03:41 #11441 [Verbose] > │ let v125 : string = $"%A{struct (v123, v124)}" │
00:03:41 #11442 [Verbose] > │ let v126 : bool = v92 = v94 │
00:03:41 #11443 [Verbose] > │ let v131 : US0 = │
00:03:41 #11444 [Verbose] > │ if v126 then │
00:03:41 #11445 [Verbose] > │ let v127 : System.ConsoleColor = │
00:03:41 #11446 [Verbose] > │ System.ConsoleColor.DarkGreen │
00:03:41 #11447 [Verbose] > │ US0_1(v127) │
00:03:41 #11448 [Verbose] > │ else │
00:03:41 #11449 [Verbose] > │ let v129 : System.ConsoleColor = System.ConsoleColor.DarkRed │
00:03:41 #11450 [Verbose] > │ US0_1(v129) │
00:03:41 #11451 [Verbose] > │ let v132 : UH2 = UH2_1 │
00:03:41 #11452 [Verbose] > │ let v133 : UH2 = UH2_0(v125, v132) │
00:03:41 #11453 [Verbose] > │ let v134 : UH2 = UH2_0(v94, v133) │
00:03:41 #11454 [Verbose] > │ let v135 : UH2 = UH2_0(v92, v134) │
00:03:41 #11455 [Verbose] > │ let v136 : UH2 = UH2_0(v93, v135) │
00:03:41 #11456 [Verbose] > │ v88.[int v91] <- struct (v136, v131) │
00:03:41 #11457 [Verbose] > │ let v137 : uint64 = v91 + 1UL │
00:03:41 #11458 [Verbose] > │ v89.l0 <- v137 │
00:03:41 #11459 [Verbose] > │ () │
00:03:41 #11460 [Verbose] > │ let v138 : string = "Input" │
00:03:41 #11461 [Verbose] > │ let v139 : string = "Expected" │
00:03:41 #11462 [Verbose] > │ let v140 : string = "Result" │
00:03:41 #11463 [Verbose] > │ let v141 : string = "Best" │
00:03:41 #11464 [Verbose] > │ let v142 : UH2 = UH2_1 │
00:03:41 #11465 [Verbose] > │ let v143 : UH2 = UH2_0(v141, v142) │
00:03:41 #11466 [Verbose] > │ let v144 : UH2 = UH2_0(v140, v143) │
00:03:41 #11467 [Verbose] > │ let v145 : UH2 = UH2_0(v139, v144) │
00:03:41 #11468 [Verbose] > │ let v146 : UH2 = UH2_0(v138, v145) │
00:03:41 #11469 [Verbose] > │ let v147 : US0 = US0_0 │
00:03:41 #11470 [Verbose] > │ let v148 : string = "---" │
00:03:41 #11471 [Verbose] > │ let v149 : UH2 = UH2_1 │
00:03:41 #11472 [Verbose] > │ let v150 : UH2 = UH2_0(v148, v149) │
00:03:41 #11473 [Verbose] > │ let v151 : UH2 = UH2_0(v148, v150) │
00:03:41 #11474 [Verbose] > │ let v152 : UH2 = UH2_0(v148, v151) │
00:03:41 #11475 [Verbose] > │ let v153 : UH2 = UH2_0(v148, v152) │
00:03:41 #11476 [Verbose] > │ let v154 : US0 = US0_0 │
00:03:41 #11477 [Verbose] > │ let v155 : UH4 = UH4_1 │
00:03:41 #11478 [Verbose] > │ let v156 : UH4 = UH4_0(v153, v154, v155) │
00:03:41 #11479 [Verbose] > │ let v157 : UH4 = UH4_0(v146, v147, v156) │
00:03:41 #11480 [Verbose] > │ let v158 : (struct (UH2 * US0) []) = method16(v157) │
00:03:41 #11481 [Verbose] > │ let v159 : uint64 = System.Convert.ToUInt64 v158.Length │
00:03:41 #11482 [Verbose] > │ let v160 : uint64 = System.Convert.ToUInt64 v88.Length │
00:03:41 #11483 [Verbose] > │ let v161 : uint64 = v159 + v160 │
00:03:41 #11484 [Verbose] > │ let v162 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * │
00:03:41 #11485 [Verbose] > │ US0)> (System.Convert.ToInt32(v161)) │
00:03:41 #11486 [Verbose] > │ let v163 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #11487 [Verbose] > │ while method4(v161, v163) do │
00:03:41 #11488 [Verbose] > │ let v165 : uint64 = v163.l0 │
00:03:41 #11489 [Verbose] > │ let v166 : bool = v165 < v159 │
00:03:41 #11490 [Verbose] > │ let struct (v172 : UH2, v173 : US0) = │
00:03:41 #11491 [Verbose] > │ if v166 then │
00:03:41 #11492 [Verbose] > │ let struct (v167 : UH2, v168 : US0) = v158.[int v165] │
00:03:41 #11493 [Verbose] > │ struct (v167, v168) │
00:03:41 #11494 [Verbose] > │ else │
00:03:41 #11495 [Verbose] > │ let v169 : uint64 = v165 - v159 │
00:03:41 #11496 [Verbose] > │ let struct (v170 : UH2, v171 : US0) = v88.[int v169] │
00:03:41 #11497 [Verbose] > │ struct (v170, v171) │
00:03:41 #11498 [Verbose] > │ v162.[int v165] <- struct (v172, v173) │
00:03:41 #11499 [Verbose] > │ let v174 : uint64 = v165 + 1UL │
00:03:41 #11500 [Verbose] > │ v163.l0 <- v174 │
00:03:41 #11501 [Verbose] > │ () │
00:03:41 #11502 [Verbose] > │ let v175 : uint64 = System.Convert.ToUInt64 v162.Length │
00:03:41 #11503 [Verbose] > │ let v176 : ((string []) []) = Array.zeroCreate<(string [])> │
00:03:41 #11504 [Verbose] > │ (System.Convert.ToInt32(v175)) │
00:03:41 #11505 [Verbose] > │ let v177 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #11506 [Verbose] > │ while method4(v175, v177) do │
00:03:41 #11507 [Verbose] > │ let v179 : uint64 = v177.l0 │
00:03:41 #11508 [Verbose] > │ let struct (v180 : UH2, v181 : US0) = v162.[int v179] │
00:03:41 #11509 [Verbose] > │ let v182 : (string []) = method19(v180) │
00:03:41 #11510 [Verbose] > │ v176.[int v179] <- v182 │
00:03:41 #11511 [Verbose] > │ let v183 : uint64 = v179 + 1UL │
00:03:41 #11512 [Verbose] > │ v177.l0 <- v183 │
00:03:41 #11513 [Verbose] > │ () │
00:03:41 #11514 [Verbose] > │ let v184 : ((string []) []) = v176 |> Array.transpose │
00:03:41 #11515 [Verbose] > │ let v185 : uint64 = System.Convert.ToUInt64 v184.Length │
00:03:41 #11516 [Verbose] > │ let v186 : (int64 []) = Array.zeroCreate<int64> │
00:03:41 #11517 [Verbose] > │ (System.Convert.ToInt32(v185)) │
00:03:41 #11518 [Verbose] > │ let v187 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #11519 [Verbose] > │ while method4(v185, v187) do │
00:03:41 #11520 [Verbose] > │ let v189 : uint64 = v187.l0 │
00:03:41 #11521 [Verbose] > │ let v190 : (string []) = v184.[int v189] │
00:03:41 #11522 [Verbose] > │ let v191 : uint64 = System.Convert.ToUInt64 v190.Length │
00:03:41 #11523 [Verbose] > │ let v192 : (int64 []) = Array.zeroCreate<int64> │
00:03:41 #11524 [Verbose] > │ (System.Convert.ToInt32(v191)) │
00:03:41 #11525 [Verbose] > │ let v193 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #11526 [Verbose] > │ while method4(v191, v193) do │
00:03:41 #11527 [Verbose] > │ let v195 : uint64 = v193.l0 │
00:03:41 #11528 [Verbose] > │ let v196 : string = v190.[int v195] │
00:03:41 #11529 [Verbose] > │ let v197 : int64 = System.Convert.ToInt64 v196.Length │
00:03:41 #11530 [Verbose] > │ v192.[int v195] <- v197 │
00:03:41 #11531 [Verbose] > │ let v198 : uint64 = v195 + 1UL │
00:03:41 #11532 [Verbose] > │ v193.l0 <- v198 │
00:03:41 #11533 [Verbose] > │ () │
00:03:41 #11534 [Verbose] > │ let v199 : (int64 []) = v192 |> Array.sortDescending │
00:03:41 #11535 [Verbose] > │ let v200 : int64 option = v199 |> Array.tryItem 0 │
00:03:41 #11536 [Verbose] > │ let v201 : (int64 -> US1) = closure4() │
00:03:41 #11537 [Verbose] > │ let v202 : US1 = US1_0 │
00:03:41 #11538 [Verbose] > │ let v203 : US1 = v200 |> Option.map v201 |> Option.defaultValue v202 │
00:03:41 #11539 [Verbose] > │ let v206 : int64 = │
00:03:41 #11540 [Verbose] > │ match v203 with │
00:03:41 #11541 [Verbose] > │ | US1_0 -> (* None *) │
00:03:41 #11542 [Verbose] > │ 0L │
00:03:41 #11543 [Verbose] > │ | US1_1(v204) -> (* Some *) │
00:03:41 #11544 [Verbose] > │ v204 │
00:03:41 #11545 [Verbose] > │ v186.[int v189] <- v206 │
00:03:41 #11546 [Verbose] > │ let v207 : uint64 = v189 + 1UL │
00:03:41 #11547 [Verbose] > │ v187.l0 <- v207 │
00:03:41 #11548 [Verbose] > │ () │
00:03:41 #11549 [Verbose] > │ let v208 : uint64 = System.Convert.ToUInt64 v186.Length │
00:03:41 #11550 [Verbose] > │ let v209 : UH5 = UH5_1 │
00:03:41 #11551 [Verbose] > │ let v210 : Mut3 = {l0 = 0UL; l1 = v209; l2 = 0} : Mut3 │
00:03:41 #11552 [Verbose] > │ while method22(v208, v210) do │
00:03:41 #11553 [Verbose] > │ let v212 : uint64 = v210.l0 │
00:03:41 #11554 [Verbose] > │ let struct (v213 : UH5, v214 : int32) = v210.l1, v210.l2 │
00:03:41 #11555 [Verbose] > │ let v215 : int64 = v186.[int v212] │
00:03:41 #11556 [Verbose] > │ let v216 : int32 = v214 + 1 │
00:03:41 #11557 [Verbose] > │ let v217 : uint64 = v212 + 1UL │
00:03:41 #11558 [Verbose] > │ let v218 : UH5 = UH5_0(v214, v215, v213) │
00:03:41 #11559 [Verbose] > │ v210.l0 <- v217 │
00:03:41 #11560 [Verbose] > │ v210.l1 <- v218 │
00:03:41 #11561 [Verbose] > │ v210.l2 <- v216 │
00:03:41 #11562 [Verbose] > │ () │
00:03:41 #11563 [Verbose] > │ let struct (v219 : UH5, v220 : int32) = v210.l1, v210.l2 │
00:03:41 #11564 [Verbose] > │ let v221 : UH5 = UH5_1 │
00:03:41 #11565 [Verbose] > │ let v222 : UH5 = method23(v219, v221) │
00:03:41 #11566 [Verbose] > │ let v223 : (struct (int32 * int64) []) = method24(v222) │
00:03:41 #11567 [Verbose] > │ let v224 : Map<int32, int64> = v223 |> Array.map (fun (struct (a, b)) -> │
00:03:41 #11568 [Verbose] > │ a, b) |> Map.ofArray │
00:03:41 #11569 [Verbose] > │ let v225 : (struct ((string []) * US0) []) = Array.zeroCreate<struct │
00:03:41 #11570 [Verbose] > │ ((string []) * US0)> (System.Convert.ToInt32(v175)) │
00:03:41 #11571 [Verbose] > │ let v226 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #11572 [Verbose] > │ while method4(v175, v226) do │
00:03:41 #11573 [Verbose] > │ let v228 : uint64 = v226.l0 │
00:03:41 #11574 [Verbose] > │ let struct (v229 : UH2, v230 : US0) = v162.[int v228] │
00:03:41 #11575 [Verbose] > │ let v231 : UH6 = UH6_1 │
00:03:41 #11576 [Verbose] > │ let v232 : int32 = 0 │
00:03:41 #11577 [Verbose] > │ let struct (v233 : UH6, v234 : int32) = method27(v229, v231, v232) │
00:03:41 #11578 [Verbose] > │ let v235 : UH6 = UH6_1 │
00:03:41 #11579 [Verbose] > │ let v236 : UH6 = method28(v233, v235) │
00:03:41 #11580 [Verbose] > │ let v237 : UH2 = UH2_1 │
00:03:41 #11581 [Verbose] > │ let v238 : UH2 = method29(v224, v236, v237) │
00:03:41 #11582 [Verbose] > │ let v239 : (string []) = method30(v238) │
00:03:41 #11583 [Verbose] > │ v225.[int v228] <- struct (v239, v230) │
00:03:41 #11584 [Verbose] > │ let v240 : uint64 = v228 + 1UL │
00:03:41 #11585 [Verbose] > │ v226.l0 <- v240 │
00:03:41 #11586 [Verbose] > │ () │
00:03:41 #11587 [Verbose] > │ System.Console.WriteLine v2 │
00:03:41 #11588 [Verbose] > │ let v241 : uint64 = System.Convert.ToUInt64 v225.Length │
00:03:41 #11589 [Verbose] > │ let v242 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #11590 [Verbose] > │ while method4(v241, v242) do │
00:03:41 #11591 [Verbose] > │ let v244 : uint64 = v242.l0 │
00:03:41 #11592 [Verbose] > │ let struct (v245 : (string []), v246 : US0) = v225.[int v244] │
00:03:41 #11593 [Verbose] > │ match v246 with │
00:03:41 #11594 [Verbose] > │ | US0_0 -> (* None *) │
00:03:41 #11595 [Verbose] > │ let mutable result = None │
00:03:41 #11596 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:03:41 #11597 [Verbose] > │ () │
00:03:41 #11598 [Verbose] > │ #endif │
00:03:41 #11599 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:03:41 #11600 [Verbose] > │ () │
00:03:41 #11601 [Verbose] > │ #endif │
00:03:41 #11602 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:41 #11603 [Verbose] > │ System.Console.ResetColor () │
00:03:41 #11604 [Verbose] > │ () │
00:03:41 #11605 [Verbose] > │ #endif │
00:03:41 #11606 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:41 #11607 [Verbose] > │ System.Console.ResetColor () │
00:03:41 #11608 [Verbose] > │ () │
00:03:41 #11609 [Verbose] > │ #endif │
00:03:41 #11610 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:03:41 #11611 [Verbose] > │ System.Console.ResetColor () │
00:03:41 #11612 [Verbose] > │ () │
00:03:41 #11613 [Verbose] > │ #endif │
00:03:41 #11614 [Verbose] > │ |> fun x -> result <- Some x │
00:03:41 #11615 [Verbose] > │ result |> Option.get │
00:03:41 #11616 [Verbose] > │ () │
00:03:41 #11617 [Verbose] > │ | US0_1(v247) -> (* Some *) │
00:03:41 #11618 [Verbose] > │ let mutable result = None │
00:03:41 #11619 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:03:41 #11620 [Verbose] > │ () │
00:03:41 #11621 [Verbose] > │ #endif │
00:03:41 #11622 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:03:41 #11623 [Verbose] > │ () │
00:03:41 #11624 [Verbose] > │ #endif │
00:03:41 #11625 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:41 #11626 [Verbose] > │ System.Console.ForegroundColor <- v247 │
00:03:41 #11627 [Verbose] > │ () │
00:03:41 #11628 [Verbose] > │ #endif │
00:03:41 #11629 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:41 #11630 [Verbose] > │ System.Console.ForegroundColor <- v247 │
00:03:41 #11631 [Verbose] > │ () │
00:03:41 #11632 [Verbose] > │ #endif │
00:03:41 #11633 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:03:41 #11634 [Verbose] > │ System.Console.ForegroundColor <- v247 │
00:03:41 #11635 [Verbose] > │ () │
00:03:41 #11636 [Verbose] > │ #endif │
00:03:41 #11637 [Verbose] > │ |> fun x -> result <- Some x │
00:03:41 #11638 [Verbose] > │ result |> Option.get │
00:03:41 #11639 [Verbose] > │ () │
00:03:41 #11640 [Verbose] > │ let v248 : string = "\t| " │
00:03:41 #11641 [Verbose] > │ let v249 : string = System.String.Join (v248, v245) │
00:03:41 #11642 [Verbose] > │ System.Console.WriteLine v249 │
00:03:41 #11643 [Verbose] > │ let mutable result = None │
00:03:41 #11644 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:03:41 #11645 [Verbose] > │ () │
00:03:41 #11646 [Verbose] > │ #endif │
00:03:41 #11647 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:03:41 #11648 [Verbose] > │ () │
00:03:41 #11649 [Verbose] > │ #endif │
00:03:41 #11650 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:41 #11651 [Verbose] > │ System.Console.ResetColor () │
00:03:41 #11652 [Verbose] > │ () │
00:03:41 #11653 [Verbose] > │ #endif │
00:03:41 #11654 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:41 #11655 [Verbose] > │ System.Console.ResetColor () │
00:03:41 #11656 [Verbose] > │ () │
00:03:41 #11657 [Verbose] > │ #endif │
00:03:41 #11658 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:03:41 #11659 [Verbose] > │ System.Console.ResetColor () │
00:03:41 #11660 [Verbose] > │ () │
00:03:41 #11661 [Verbose] > │ #endif │
00:03:41 #11662 [Verbose] > │ |> fun x -> result <- Some x │
00:03:41 #11663 [Verbose] > │ result |> Option.get │
00:03:41 #11664 [Verbose] > │ let v250 : uint64 = v244 + 1UL │
00:03:41 #11665 [Verbose] > │ v242.l0 <- v250 │
00:03:41 #11666 [Verbose] > │ () │
00:03:41 #11667 [Verbose] > │ let v251 : ((float []) []) = Array.zeroCreate<(float [])> │
00:03:41 #11668 [Verbose] > │ (System.Convert.ToInt32(v87)) │
00:03:41 #11669 [Verbose] > │ let v252 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #11670 [Verbose] > │ while method4(v87, v252) do │
00:03:41 #11671 [Verbose] > │ let v254 : uint64 = v252.l0 │
00:03:41 #11672 [Verbose] > │ let struct (v255 : string, v256 : string, v257 : string, v258 : │
00:03:41 #11673 [Verbose] > │ (int64 [])) = v16.[int v254] │
00:03:41 #11674 [Verbose] > │ let v259 : (int64 -> float) = float │
00:03:41 #11675 [Verbose] > │ let v260 : uint64 = System.Convert.ToUInt64 v258.Length │
00:03:41 #11676 [Verbose] > │ let v261 : (float []) = Array.zeroCreate<float> │
00:03:41 #11677 [Verbose] > │ (System.Convert.ToInt32(v260)) │
00:03:41 #11678 [Verbose] > │ let v262 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #11679 [Verbose] > │ while method4(v260, v262) do │
00:03:41 #11680 [Verbose] > │ let v264 : uint64 = v262.l0 │
00:03:41 #11681 [Verbose] > │ let v265 : int64 = v258.[int v264] │
00:03:41 #11682 [Verbose] > │ let v266 : float = v259 v265 │
00:03:41 #11683 [Verbose] > │ v261.[int v264] <- v266 │
00:03:41 #11684 [Verbose] > │ let v267 : uint64 = v264 + 1UL │
00:03:41 #11685 [Verbose] > │ v262.l0 <- v267 │
00:03:41 #11686 [Verbose] > │ () │
00:03:41 #11687 [Verbose] > │ v251.[int v254] <- v261 │
00:03:41 #11688 [Verbose] > │ let v268 : uint64 = v254 + 1UL │
00:03:41 #11689 [Verbose] > │ v252.l0 <- v268 │
00:03:41 #11690 [Verbose] > │ () │
00:03:41 #11691 [Verbose] > │ let v269 : ((float []) []) = v251 |> Array.transpose │
00:03:41 #11692 [Verbose] > │ let v270 : uint64 = System.Convert.ToUInt64 v269.Length │
00:03:41 #11693 [Verbose] > │ let v271 : (float []) = Array.zeroCreate<float> │
00:03:41 #11694 [Verbose] > │ (System.Convert.ToInt32(v270)) │
00:03:41 #11695 [Verbose] > │ let v272 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #11696 [Verbose] > │ while method4(v270, v272) do │
00:03:41 #11697 [Verbose] > │ let v274 : uint64 = v272.l0 │
00:03:41 #11698 [Verbose] > │ let v275 : (float []) = v269.[int v274] │
00:03:41 #11699 [Verbose] > │ let v276 : float = v275 |> Array.average │
00:03:41 #11700 [Verbose] > │ v271.[int v274] <- v276 │
00:03:41 #11701 [Verbose] > │ let v277 : uint64 = v274 + 1UL │
00:03:41 #11702 [Verbose] > │ v272.l0 <- v277 │
00:03:41 #11703 [Verbose] > │ () │
00:03:41 #11704 [Verbose] > │ let v278 : (float -> int64) = int64 │
00:03:41 #11705 [Verbose] > │ let v279 : uint64 = System.Convert.ToUInt64 v271.Length │
00:03:41 #11706 [Verbose] > │ let v280 : (int64 []) = Array.zeroCreate<int64> │
00:03:41 #11707 [Verbose] > │ (System.Convert.ToInt32(v279)) │
00:03:41 #11708 [Verbose] > │ let v281 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #11709 [Verbose] > │ while method4(v279, v281) do │
00:03:41 #11710 [Verbose] > │ let v283 : uint64 = v281.l0 │
00:03:41 #11711 [Verbose] > │ let v284 : float = v271.[int v283] │
00:03:41 #11712 [Verbose] > │ let v285 : int64 = v278 v284 │
00:03:41 #11713 [Verbose] > │ v280.[int v283] <- v285 │
00:03:41 #11714 [Verbose] > │ let v286 : uint64 = v283 + 1UL │
00:03:41 #11715 [Verbose] > │ v281.l0 <- v286 │
00:03:41 #11716 [Verbose] > │ () │
00:03:41 #11717 [Verbose] > │ let v287 : uint64 = System.Convert.ToUInt64 v280.Length │
00:03:41 #11718 [Verbose] > │ let v288 : UH5 = UH5_1 │
00:03:41 #11719 [Verbose] > │ let v289 : Mut3 = {l0 = 0UL; l1 = v288; l2 = 0} : Mut3 │
00:03:41 #11720 [Verbose] > │ while method22(v287, v289) do │
00:03:41 #11721 [Verbose] > │ let v291 : uint64 = v289.l0 │
00:03:41 #11722 [Verbose] > │ let struct (v292 : UH5, v293 : int32) = v289.l1, v289.l2 │
00:03:41 #11723 [Verbose] > │ let v294 : int64 = v280.[int v291] │
00:03:41 #11724 [Verbose] > │ let v295 : int32 = v293 + 1 │
00:03:41 #11725 [Verbose] > │ let v296 : uint64 = v291 + 1UL │
00:03:41 #11726 [Verbose] > │ let v297 : UH5 = UH5_0(v293, v294, v292) │
00:03:41 #11727 [Verbose] > │ v289.l0 <- v296 │
00:03:41 #11728 [Verbose] > │ v289.l1 <- v297 │
00:03:41 #11729 [Verbose] > │ v289.l2 <- v295 │
00:03:41 #11730 [Verbose] > │ () │
00:03:41 #11731 [Verbose] > │ let struct (v298 : UH5, v299 : int32) = v289.l1, v289.l2 │
00:03:41 #11732 [Verbose] > │ let v300 : UH5 = UH5_1 │
00:03:41 #11733 [Verbose] > │ let v301 : UH5 = method23(v298, v300) │
00:03:41 #11734 [Verbose] > │ let v302 : (struct (int32 * int64) []) = method33(v301) │
00:03:41 #11735 [Verbose] > │ System.Console.WriteLine v2 │
00:03:41 #11736 [Verbose] > │ let v303 : string = "Average Ranking " │
00:03:41 #11737 [Verbose] > │ System.Console.WriteLine v303 │
00:03:41 #11738 [Verbose] > │ let v304 : (struct (int32 * int64) -> int64) = closure5() │
00:03:41 #11739 [Verbose] > │ let v305 : (struct (int32 * int64) []) = v302 |> Array.sortBy v304 │
00:03:41 #11740 [Verbose] > │ let v306 : uint64 = System.Convert.ToUInt64 v305.Length │
00:03:41 #11741 [Verbose] > │ let v307 : Mut0 = {l0 = 0UL} : Mut0 │
00:03:41 #11742 [Verbose] > │ while method4(v306, v307) do │
00:03:41 #11743 [Verbose] > │ let v309 : uint64 = v307.l0 │
00:03:41 #11744 [Verbose] > │ let struct (v310 : int32, v311 : int64) = v305.[int v309] │
00:03:41 #11745 [Verbose] > │ let v312 : string = $"Test case %d{v310 + 1}. Average Time: %A{v311} │
00:03:41 #11746 [Verbose] > │ " │
00:03:41 #11747 [Verbose] > │ System.Console.WriteLine v312 │
00:03:41 #11748 [Verbose] > │ let v313 : uint64 = v309 + 1UL │
00:03:41 #11749 [Verbose] > │ v307.l0 <- v313 │
00:03:41 #11750 [Verbose] > │ () │
00:03:41 #11751 [Verbose] > │ () │
00:03:41 #11752 [Verbose] > │ method0() │
00:03:41 #11753 [Verbose] > │ │
00:03:41 #11754 [Verbose] > │ │
00:03:41 #11755 [Verbose] > │ │
00:03:41 #11756 [Verbose] > │ Test: v0 │
00:03:41 #11757 [Verbose] > │ │
00:03:41 #11758 [Verbose] > │ Solution: 0.0 │
00:03:41 #11759 [Verbose] > │ Test case 1. A. Time: 22 │
00:03:41 #11760 [Verbose] > │ │
00:03:41 #11761 [Verbose] > │ Solution: 2.0 │
00:03:41 #11762 [Verbose] > │ Test case 1. A. Time: 10 │
00:03:41 #11763 [Verbose] > │ │
00:03:41 #11764 [Verbose] > │ Solution: 5.0 │
00:03:41 #11765 [Verbose] > │ Test case 1. A. Time: 10 │
00:03:41 #11766 [Verbose] > │ │
00:03:41 #11767 [Verbose] > │ Input | Expected | Result | Best │
00:03:41 #11768 [Verbose] > │ --- | --- | --- | --- │
00:03:41 #11769 [Verbose] > │ 0.0 | 1.0 | 1.0 | struct (1L, 22L) │
00:03:41 #11770 [Verbose] > │ 2.0 | 3.0 | 3.0 | struct (1L, 10L) │
00:03:41 #11771 [Verbose] > │ 5.0 | 6.0 | 6.0 | struct (1L, 10L) │
00:03:41 #11772 [Verbose] > │ │
00:03:41 #11773 [Verbose] > │ Average Ranking │
00:03:41 #11774 [Verbose] > │ Test case 1. Average Time: 14L │
00:03:41 #11775 [Verbose] > │ │
00:03:41 #11776 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:43 #11777 [Verbose] > [NbConvertApp] Converting notebook benchmark.dib.ipynb to html
00:03:43 #11778 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:03:43 #11779 [Verbose] > validate(nb)
00:03:43 #11780 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:03:43 #11781 [Verbose] > return _pygments_highlight(
00:03:44 #11782 [Verbose] > [NbConvertApp] Writing 412459 bytes to benchmark.dib.html
00:03:44 #11783 [Debug] executeAsync / exitCode: 0 / output.Length: 231625
00:03:44 #11784 [Debug] main / executeCommand / exitCode: 0
00:03:44 #11785 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 stream.dib" -Retries 3"
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:03:46 #11786 [Verbose] >
00:03:47 #11787 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:47 #11788 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:47 #11789 [Verbose] > │ # stream │
00:03:47 #11790 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:47 #11791 [Verbose] >
00:03:47 #11792 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:47 #11793 [Verbose] > // // test
00:03:47 #11794 [Verbose] >
00:03:47 #11795 [Verbose] > open testing
00:03:50 #11796 [Verbose] >
00:03:50 #11797 [Verbose] > ╭─[ 3.66s - stdout ]───────────────────────────────────────────────────────────╮
00:03:50 #11798 [Verbose] > │ () │
00:03:50 #11799 [Verbose] > │ │
00:03:50 #11800 [Verbose] > │ │
00:03:50 #11801 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:50 #11802 [Verbose] >
00:03:50 #11803 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:50 #11804 [Verbose] > union rec stream t =
00:03:50 #11805 [Verbose] > | StreamCons : t * (() -> stream t)
00:03:50 #11806 [Verbose] > | StreamNil
00:03:50 #11807 [Verbose] >
00:03:50 #11808 [Verbose] > ╭─[ 257.16ms - stdout ]────────────────────────────────────────────────────────╮
00:03:50 #11809 [Verbose] > │ () │
00:03:50 #11810 [Verbose] > │ │
00:03:50 #11811 [Verbose] > │ │
00:03:50 #11812 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:50 #11813 [Verbose] >
00:03:50 #11814 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:50 #11815 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:50 #11816 [Verbose] > │ ## fold │
00:03:50 #11817 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:50 #11818 [Verbose] >
00:03:50 #11819 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:50 #11820 [Verbose] > inl fold fn init s =
00:03:50 #11821 [Verbose] > inl rec body acc = function
00:03:50 #11822 [Verbose] > | StreamCons (st, fn') => loop (fn acc st) (fn' ())
00:03:50 #11823 [Verbose] > | StreamNil => acc
00:03:50 #11824 [Verbose] > and inl loop acc = join_body body acc
00:03:50 #11825 [Verbose] > loop init s
00:03:51 #11826 [Verbose] >
00:03:51 #11827 [Verbose] > ╭─[ 310.11ms - stdout ]────────────────────────────────────────────────────────╮
00:03:51 #11828 [Verbose] > │ () │
00:03:51 #11829 [Verbose] > │ │
00:03:51 #11830 [Verbose] > │ │
00:03:51 #11831 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:51 #11832 [Verbose] >
00:03:51 #11833 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:51 #11834 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:51 #11835 [Verbose] > │ ## fold_back │
00:03:51 #11836 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:51 #11837 [Verbose] >
00:03:51 #11838 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:51 #11839 [Verbose] > inl fold_back fn s init =
00:03:51 #11840 [Verbose] > inl rec body acc = function
00:03:51 #11841 [Verbose] > | StreamCons (st, fn') => fn st (loop acc (fn' ()))
00:03:51 #11842 [Verbose] > | StreamNil => acc
00:03:51 #11843 [Verbose] > and inl loop acc = join_body body acc
00:03:51 #11844 [Verbose] > loop init s
00:03:51 #11845 [Verbose] >
00:03:51 #11846 [Verbose] > ╭─[ 212.62ms - stdout ]────────────────────────────────────────────────────────╮
00:03:51 #11847 [Verbose] > │ () │
00:03:51 #11848 [Verbose] > │ │
00:03:51 #11849 [Verbose] > │ │
00:03:51 #11850 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:51 #11851 [Verbose] >
00:03:51 #11852 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:51 #11853 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:51 #11854 [Verbose] > │ ## to_list │
00:03:51 #11855 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:51 #11856 [Verbose] >
00:03:51 #11857 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:51 #11858 [Verbose] > inl to_list s =
00:03:51 #11859 [Verbose] > (s, [[]])
00:03:51 #11860 [Verbose] > ||> fold_back fun x acc =>
00:03:51 #11861 [Verbose] > x :: acc
00:03:51 #11862 [Verbose] >
00:03:51 #11863 [Verbose] > ╭─[ 278.03ms - stdout ]────────────────────────────────────────────────────────╮
00:03:51 #11864 [Verbose] > │ () │
00:03:51 #11865 [Verbose] > │ │
00:03:51 #11866 [Verbose] > │ │
00:03:51 #11867 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:51 #11868 [Verbose] >
00:03:51 #11869 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:51 #11870 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:51 #11871 [Verbose] > │ ## rev │
00:03:51 #11872 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:51 #11873 [Verbose] >
00:03:51 #11874 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:51 #11875 [Verbose] > inl rev s =
00:03:51 #11876 [Verbose] > (StreamNil, s)
00:03:51 #11877 [Verbose] > ||> fold fun s x =>
00:03:51 #11878 [Verbose] > StreamCons (x, fun () => s)
00:03:52 #11879 [Verbose] >
00:03:52 #11880 [Verbose] > ╭─[ 251.26ms - stdout ]────────────────────────────────────────────────────────╮
00:03:52 #11881 [Verbose] > │ () │
00:03:52 #11882 [Verbose] > │ │
00:03:52 #11883 [Verbose] > │ │
00:03:52 #11884 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:52 #11885 [Verbose] >
00:03:52 #11886 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:52 #11887 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:52 #11888 [Verbose] > │ ## from_list │
00:03:52 #11889 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:52 #11890 [Verbose] >
00:03:52 #11891 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:52 #11892 [Verbose] > inl from_list list =
00:03:52 #11893 [Verbose] > (list, StreamNil)
00:03:52 #11894 [Verbose] > ||> listm.foldBack fun x acc =>
00:03:52 #11895 [Verbose] > StreamCons (x, fun () => acc)
00:03:52 #11896 [Verbose] >
00:03:52 #11897 [Verbose] > ╭─[ 268.16ms - stdout ]────────────────────────────────────────────────────────╮
00:03:52 #11898 [Verbose] > │ () │
00:03:52 #11899 [Verbose] > │ │
00:03:52 #11900 [Verbose] > │ │
00:03:52 #11901 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:52 #11902 [Verbose] >
00:03:52 #11903 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:52 #11904 [Verbose] > // // test
00:03:52 #11905 [Verbose] >
00:03:52 #11906 [Verbose] > listm.init 3i32 id
00:03:52 #11907 [Verbose] > |> from_list
00:03:52 #11908 [Verbose] > |> rev
00:03:52 #11909 [Verbose] > |> to_list
00:03:52 #11910 [Verbose] > |> _assert_eq [[ 2; 1; 0 ]]
00:03:53 #11911 [Verbose] >
00:03:53 #11912 [Verbose] > ╭─[ 1.33s - stdout ]───────────────────────────────────────────────────────────╮
00:03:53 #11913 [Verbose] > │ type UH0 = │
00:03:53 #11914 [Verbose] > │ | UH0_0 of int32 * UH0 │
00:03:53 #11915 [Verbose] > │ | UH0_1 │
00:03:53 #11916 [Verbose] > │ let rec method0 () : unit = │
00:03:53 #11917 [Verbose] > │ let v0 : UH0 = UH0_1 │
00:03:53 #11918 [Verbose] > │ let v1 : UH0 = UH0_0(0, v0) │
00:03:53 #11919 [Verbose] > │ let v2 : UH0 = UH0_0(1, v1) │
00:03:53 #11920 [Verbose] > │ let v3 : UH0 = UH0_0(2, v2) │
00:03:53 #11921 [Verbose] > │ let v4 : string = $"%A{v3}" │
00:03:53 #11922 [Verbose] > │ System.Console.WriteLine v4 │
00:03:53 #11923 [Verbose] > │ let v23 : UH0 = UH0_1 │
00:03:53 #11924 [Verbose] > │ let v24 : UH0 = UH0_0(0, v23) │
00:03:53 #11925 [Verbose] > │ let v25 : UH0 = UH0_0(1, v24) │
00:03:53 #11926 [Verbose] > │ let v26 : UH0 = UH0_0(2, v25) │
00:03:53 #11927 [Verbose] > │ let v27 : UH0 = UH0_1 │
00:03:53 #11928 [Verbose] > │ let v28 : UH0 = UH0_0(0, v27) │
00:03:53 #11929 [Verbose] > │ let v29 : UH0 = UH0_0(1, v28) │
00:03:53 #11930 [Verbose] > │ let v30 : UH0 = UH0_0(2, v29) │
00:03:53 #11931 [Verbose] > │ let v31 : string = $"__expect / actual: %A{v26} / expected: %A{v30}" │
00:03:53 #11932 [Verbose] > │ () │
00:03:53 #11933 [Verbose] > │ method0() │
00:03:53 #11934 [Verbose] > │ │
00:03:53 #11935 [Verbose] > │ UH0_0 (2, UH0_0 (1, UH0_0 (0, UH0_1))) │
00:03:53 #11936 [Verbose] > │ │
00:03:53 #11937 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:53 #11938 [Verbose] >
00:03:53 #11939 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:53 #11940 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:53 #11941 [Verbose] > │ ## try_item │
00:03:53 #11942 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:53 #11943 [Verbose] >
00:03:53 #11944 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:53 #11945 [Verbose] > inl try_item i s =
00:03:53 #11946 [Verbose] > inl rec body i = function
00:03:53 #11947 [Verbose] > | StreamCons (x, _) when i <= 0 => Some x
00:03:53 #11948 [Verbose] > | StreamCons (_, fn) => loop (i - 1) (fn ())
00:03:53 #11949 [Verbose] > | StreamNil => None
00:03:53 #11950 [Verbose] > and inl loop acc s' =
00:03:53 #11951 [Verbose] > match var_is acc, var_is s' with
00:03:53 #11952 [Verbose] > | false, false => body acc s'
00:03:53 #11953 [Verbose] > | _ =>
00:03:53 #11954 [Verbose] > inl acc = dyn acc
00:03:53 #11955 [Verbose] > inl s' = dyn s'
00:03:53 #11956 [Verbose] > join body acc s'
00:03:53 #11957 [Verbose] > loop i s
00:03:53 #11958 [Verbose] >
00:03:53 #11959 [Verbose] > inl item i =
00:03:53 #11960 [Verbose] > try_item i >> optionm.value
00:03:53 #11961 [Verbose] >
00:03:53 #11962 [Verbose] > ╭─[ 282.08ms - stdout ]────────────────────────────────────────────────────────╮
00:03:53 #11963 [Verbose] > │ () │
00:03:53 #11964 [Verbose] > │ │
00:03:53 #11965 [Verbose] > │ │
00:03:53 #11966 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:53 #11967 [Verbose] >
00:03:53 #11968 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:53 #11969 [Verbose] > // // test
00:03:53 #11970 [Verbose] >
00:03:53 #11971 [Verbose] > listm.init 10i32 id
00:03:53 #11972 [Verbose] > |> from_list
00:03:53 #11973 [Verbose] > |> item 9i32
00:03:53 #11974 [Verbose] > |> _assert_eq 9
00:03:54 #11975 [Verbose] >
00:03:54 #11976 [Verbose] > ╭─[ 312.36ms - stdout ]────────────────────────────────────────────────────────╮
00:03:54 #11977 [Verbose] > │ let rec method0 () : unit = │
00:03:54 #11978 [Verbose] > │ let v0 : string = $"%A{9}" │
00:03:54 #11979 [Verbose] > │ System.Console.WriteLine v0 │
00:03:54 #11980 [Verbose] > │ let v1 : string = $"__expect / actual: %A{9} / expected: %A{9}" │
00:03:54 #11981 [Verbose] > │ () │
00:03:54 #11982 [Verbose] > │ method0() │
00:03:54 #11983 [Verbose] > │ │
00:03:54 #11984 [Verbose] > │ 9 │
00:03:54 #11985 [Verbose] > │ │
00:03:54 #11986 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:54 #11987 [Verbose] >
00:03:54 #11988 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:54 #11989 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:54 #11990 [Verbose] > │ ## new_infinite_stream │
00:03:54 #11991 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:54 #11992 [Verbose] >
00:03:54 #11993 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:54 #11994 [Verbose] > inl new_infinite_stream fn =
00:03:54 #11995 [Verbose] > inl rec loop n =
00:03:54 #11996 [Verbose] > StreamCons (fn n, fun () => loop (n + 1))
00:03:54 #11997 [Verbose] > loop 0
00:03:54 #11998 [Verbose] >
00:03:54 #11999 [Verbose] > inl new_infinite_stream_ fn =
00:03:54 #12000 [Verbose] > let rec loop n =
00:03:54 #12001 [Verbose] > StreamCons (fn n, fun () => loop (n + 1))
00:03:54 #12002 [Verbose] > loop 0
00:03:54 #12003 [Verbose] >
00:03:54 #12004 [Verbose] > ╭─[ 246.67ms - stdout ]────────────────────────────────────────────────────────╮
00:03:54 #12005 [Verbose] > │ () │
00:03:54 #12006 [Verbose] > │ │
00:03:54 #12007 [Verbose] > │ │
00:03:54 #12008 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:54 #12009 [Verbose] >
00:03:54 #12010 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:54 #12011 [Verbose] > // // test
00:03:54 #12012 [Verbose] >
00:03:54 #12013 [Verbose] > new_infinite_stream print_and_return
00:03:54 #12014 [Verbose] > |> item 4i32
00:03:54 #12015 [Verbose] > |> _assert_eq 4i32
00:03:54 #12016 [Verbose] >
00:03:54 #12017 [Verbose] > ╭─[ 339.17ms - stdout ]────────────────────────────────────────────────────────╮
00:03:54 #12018 [Verbose] > │ let rec method0 () : unit = │
00:03:54 #12019 [Verbose] > │ printfn $"print_and_return / x: {0}" │
00:03:54 #12020 [Verbose] > │ printfn $"print_and_return / x: {1}" │
00:03:54 #12021 [Verbose] > │ printfn $"print_and_return / x: {2}" │
00:03:54 #12022 [Verbose] > │ printfn $"print_and_return / x: {3}" │
00:03:54 #12023 [Verbose] > │ printfn $"print_and_return / x: {4}" │
00:03:54 #12024 [Verbose] > │ let v0 : string = $"%A{4}" │
00:03:54 #12025 [Verbose] > │ System.Console.WriteLine v0 │
00:03:54 #12026 [Verbose] > │ let v1 : string = $"__expect / actual: %A{4} / expected: %A{4}" │
00:03:54 #12027 [Verbose] > │ () │
00:03:54 #12028 [Verbose] > │ method0() │
00:03:54 #12029 [Verbose] > │ │
00:03:54 #12030 [Verbose] > │ print_and_return / x: 0 │
00:03:54 #12031 [Verbose] > │ print_and_return / x: 1 │
00:03:54 #12032 [Verbose] > │ print_and_return / x: 2 │
00:03:54 #12033 [Verbose] > │ print_and_return / x: 3 │
00:03:54 #12034 [Verbose] > │ print_and_return / x: 4 │
00:03:54 #12035 [Verbose] > │ 4 │
00:03:54 #12036 [Verbose] > │ │
00:03:54 #12037 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:54 #12038 [Verbose] >
00:03:54 #12039 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:54 #12040 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:54 #12041 [Verbose] > │ ## new_finite_stream │
00:03:54 #12042 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:54 #12043 [Verbose] >
00:03:54 #12044 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:54 #12045 [Verbose] > inl new_finite_stream fn max =
00:03:54 #12046 [Verbose] > inl rec loop n =
00:03:54 #12047 [Verbose] > if n >= max
00:03:54 #12048 [Verbose] > then StreamNil
00:03:54 #12049 [Verbose] > else StreamCons (fn n, fun () => loop (n + 1))
00:03:54 #12050 [Verbose] > loop 0
00:03:55 #12051 [Verbose] >
00:03:55 #12052 [Verbose] > ╭─[ 253.96ms - stdout ]────────────────────────────────────────────────────────╮
00:03:55 #12053 [Verbose] > │ () │
00:03:55 #12054 [Verbose] > │ │
00:03:55 #12055 [Verbose] > │ │
00:03:55 #12056 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:55 #12057 [Verbose] >
00:03:55 #12058 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:55 #12059 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:55 #12060 [Verbose] > │ ## memoize │
00:03:55 #12061 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:55 #12062 [Verbose] >
00:03:55 #12063 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:55 #12064 [Verbose] > union memoized_stream t =
00:03:55 #12065 [Verbose] > | NotComputed : () -> stream t
00:03:55 #12066 [Verbose] > | Computed : stream t
00:03:55 #12067 [Verbose] >
00:03:55 #12068 [Verbose] > inl memoize s =
00:03:55 #12069 [Verbose] > inl rec body s =
00:03:55 #12070 [Verbose] > inl state = mut (NotComputed s)
00:03:55 #12071 [Verbose] > fun () =>
00:03:55 #12072 [Verbose] > match *state with
00:03:55 #12073 [Verbose] > | Computed x => x
00:03:55 #12074 [Verbose] > | NotComputed fn =>
00:03:55 #12075 [Verbose] > inl new_state =
00:03:55 #12076 [Verbose] > match fn () with
00:03:55 #12077 [Verbose] > | StreamNil => StreamNil
00:03:55 #12078 [Verbose] > | StreamCons (x, fn) => StreamCons (x, loop fn)
00:03:55 #12079 [Verbose] > state <- Computed new_state
00:03:55 #12080 [Verbose] > new_state
00:03:55 #12081 [Verbose] > and inl loop s' = join_body_unit body s s'
00:03:55 #12082 [Verbose] > loop (fun () => s)
00:03:55 #12083 [Verbose] >
00:03:55 #12084 [Verbose] > ╭─[ 254.12ms - stdout ]────────────────────────────────────────────────────────╮
00:03:55 #12085 [Verbose] > │ () │
00:03:55 #12086 [Verbose] > │ │
00:03:55 #12087 [Verbose] > │ │
00:03:55 #12088 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:55 #12089 [Verbose] >
00:03:55 #12090 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:55 #12091 [Verbose] > // // test
00:03:55 #12092 [Verbose] >
00:03:55 #12093 [Verbose] > inl memo_stream = new_finite_stream print_and_return 10 |> memoize
00:03:55 #12094 [Verbose] >
00:03:55 #12095 [Verbose] > memo_stream ()
00:03:55 #12096 [Verbose] > |> item 3i32
00:03:55 #12097 [Verbose] > |> _assert_eq 3i32
00:03:55 #12098 [Verbose] >
00:03:55 #12099 [Verbose] > memo_stream ()
00:03:55 #12100 [Verbose] > |> item 5i32
00:03:55 #12101 [Verbose] > |> _assert_eq 5i32
00:03:55 #12102 [Verbose] >
00:03:55 #12103 [Verbose] > ╭─[ 608.58ms - stdout ]────────────────────────────────────────────────────────╮
00:03:55 #12104 [Verbose] > │ type UH0 = │
00:03:55 #12105 [Verbose] > │ | UH0_0 of int32 * (unit -> UH0) │
00:03:56 #12106 [Verbose] > │ | UH0_1 │
00:03:56 #12107 [Verbose] > │ and [<Struct>] US0 = │
00:03:56 #12108 [Verbose] > │ | US0_0 of f0_0 : UH0 │
00:03:56 #12109 [Verbose] > │ | US0_1 of f1_0 : (unit -> UH0) │
00:03:56 #12110 [Verbose] > │ and Mut0 = {mutable l0 : US0} │
00:03:56 #12111 [Verbose] > │ and [<Struct>] US1 = │
00:03:56 #12112 [Verbose] > │ | US1_0 │
00:03:56 #12113 [Verbose] > │ | US1_1 of f1_0 : int32 │
00:03:56 #12114 [Verbose] > │ let rec closure10 () () : UH0 = │
00:03:56 #12115 [Verbose] > │ UH0_1 │
00:03:56 #12116 [Verbose] > │ and closure9 () () : UH0 = │
00:03:56 #12117 [Verbose] > │ printfn $"print_and_return / x: {9}" │
00:03:56 #12118 [Verbose] > │ let v0 : (unit -> UH0) = closure10() │
00:03:56 #12119 [Verbose] > │ UH0_0(9, v0) │
00:03:56 #12120 [Verbose] > │ and closure8 () () : UH0 = │
00:03:56 #12121 [Verbose] > │ printfn $"print_and_return / x: {8}" │
00:03:56 #12122 [Verbose] > │ let v0 : (unit -> UH0) = closure9() │
00:03:56 #12123 [Verbose] > │ UH0_0(8, v0) │
00:03:56 #12124 [Verbose] > │ and closure7 () () : UH0 = │
00:03:56 #12125 [Verbose] > │ printfn $"print_and_return / x: {7}" │
00:03:56 #12126 [Verbose] > │ let v0 : (unit -> UH0) = closure8() │
00:03:56 #12127 [Verbose] > │ UH0_0(7, v0) │
00:03:56 #12128 [Verbose] > │ and closure6 () () : UH0 = │
00:03:56 #12129 [Verbose] > │ printfn $"print_and_return / x: {6}" │
00:03:56 #12130 [Verbose] > │ let v0 : (unit -> UH0) = closure7() │
00:03:56 #12131 [Verbose] > │ UH0_0(6, v0) │
00:03:56 #12132 [Verbose] > │ and closure5 () () : UH0 = │
00:03:56 #12133 [Verbose] > │ printfn $"print_and_return / x: {5}" │
00:03:56 #12134 [Verbose] > │ let v0 : (unit -> UH0) = closure6() │
00:03:56 #12135 [Verbose] > │ UH0_0(5, v0) │
00:03:56 #12136 [Verbose] > │ and closure4 () () : UH0 = │
00:03:56 #12137 [Verbose] > │ printfn $"print_and_return / x: {4}" │
00:03:56 #12138 [Verbose] > │ let v0 : (unit -> UH0) = closure5() │
00:03:56 #12139 [Verbose] > │ UH0_0(4, v0) │
00:03:56 #12140 [Verbose] > │ and closure3 () () : UH0 = │
00:03:56 #12141 [Verbose] > │ printfn $"print_and_return / x: {3}" │
00:03:56 #12142 [Verbose] > │ let v0 : (unit -> UH0) = closure4() │
00:03:56 #12143 [Verbose] > │ UH0_0(3, v0) │
00:03:56 #12144 [Verbose] > │ and closure2 () () : UH0 = │
00:03:56 #12145 [Verbose] > │ printfn $"print_and_return / x: {2}" │
00:03:56 #12146 [Verbose] > │ let v0 : (unit -> UH0) = closure3() │
00:03:56 #12147 [Verbose] > │ UH0_0(2, v0) │
00:03:56 #12148 [Verbose] > │ and closure1 () () : UH0 = │
00:03:56 #12149 [Verbose] > │ printfn $"print_and_return / x: {1}" │
00:03:56 #12150 [Verbose] > │ let v0 : (unit -> UH0) = closure2() │
00:03:56 #12151 [Verbose] > │ UH0_0(1, v0) │
00:03:56 #12152 [Verbose] > │ and closure0 () () : UH0 = │
00:03:56 #12153 [Verbose] > │ let v0 : (unit -> UH0) = closure1() │
00:03:56 #12154 [Verbose] > │ UH0_0(0, v0) │
00:03:56 #12155 [Verbose] > │ and closure11 (v0 : Mut0) () : UH0 = │
00:03:56 #12156 [Verbose] > │ let v1 : US0 = v0.l0 │
00:03:56 #12157 [Verbose] > │ match v1 with │
00:03:56 #12158 [Verbose] > │ | US0_0(v2) -> (* Computed *) │
00:03:56 #12159 [Verbose] > │ v2 │
00:03:56 #12160 [Verbose] > │ | US0_1(v3) -> (* NotComputed *) │
00:03:56 #12161 [Verbose] > │ let v4 : UH0 = v3 () │
00:03:56 #12162 [Verbose] > │ let v13 : UH0 = │
00:03:56 #12163 [Verbose] > │ match v4 with │
00:03:56 #12164 [Verbose] > │ | UH0_0(v6, v7) -> (* StreamCons *) │
00:03:56 #12165 [Verbose] > │ let v8 : US0 = US0_1(v7) │
00:03:56 #12166 [Verbose] > │ let v9 : Mut0 = {l0 = v8} : Mut0 │
00:03:56 #12167 [Verbose] > │ let v10 : (unit -> UH0) = closure11(v9) │
00:03:56 #12168 [Verbose] > │ UH0_0(v6, v10) │
00:03:56 #12169 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:03:56 #12170 [Verbose] > │ UH0_1 │
00:03:56 #12171 [Verbose] > │ let v14 : US0 = US0_0(v13) │
00:03:56 #12172 [Verbose] > │ v0.l0 <- v14 │
00:03:56 #12173 [Verbose] > │ v13 │
00:03:56 #12174 [Verbose] > │ and method1 (v0 : int32, v1 : UH0) : US1 = │
00:03:56 #12175 [Verbose] > │ match v1 with │
00:03:56 #12176 [Verbose] > │ | UH0_0(v2, v3) -> (* StreamCons *) │
00:03:56 #12177 [Verbose] > │ let v4 : bool = v0 <= 0 │
00:03:56 #12178 [Verbose] > │ if v4 then │
00:03:56 #12179 [Verbose] > │ US1_1(v2) │
00:03:56 #12180 [Verbose] > │ else │
00:03:56 #12181 [Verbose] > │ let v6 : int32 = v0 - 1 │
00:03:56 #12182 [Verbose] > │ let v7 : UH0 = v3 () │
00:03:56 #12183 [Verbose] > │ method1(v6, v7) │
00:03:56 #12184 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:03:56 #12185 [Verbose] > │ US1_0 │
00:03:56 #12186 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:03:56 #12187 [Verbose] > │ v0 │
00:03:56 #12188 [Verbose] > │ and method0 () : unit = │
00:03:56 #12189 [Verbose] > │ printfn $"print_and_return / x: {0}" │
00:03:56 #12190 [Verbose] > │ let v0 : (unit -> UH0) = closure0() │
00:03:56 #12191 [Verbose] > │ let v1 : US0 = US0_1(v0) │
00:03:56 #12192 [Verbose] > │ let v2 : Mut0 = {l0 = v1} : Mut0 │
00:03:56 #12193 [Verbose] > │ let v3 : US0 = v2.l0 │
00:03:56 #12194 [Verbose] > │ let v18 : UH0 = │
00:03:56 #12195 [Verbose] > │ match v3 with │
00:03:56 #12196 [Verbose] > │ | US0_0(v4) -> (* Computed *) │
00:03:56 #12197 [Verbose] > │ v4 │
00:03:56 #12198 [Verbose] > │ | US0_1(v5) -> (* NotComputed *) │
00:03:56 #12199 [Verbose] > │ let v6 : UH0 = v5 () │
00:03:56 #12200 [Verbose] > │ let v15 : UH0 = │
00:03:56 #12201 [Verbose] > │ match v6 with │
00:03:56 #12202 [Verbose] > │ | UH0_0(v8, v9) -> (* StreamCons *) │
00:03:56 #12203 [Verbose] > │ let v10 : US0 = US0_1(v9) │
00:03:56 #12204 [Verbose] > │ let v11 : Mut0 = {l0 = v10} : Mut0 │
00:03:56 #12205 [Verbose] > │ let v12 : (unit -> UH0) = closure11(v11) │
00:03:56 #12206 [Verbose] > │ UH0_0(v8, v12) │
00:03:56 #12207 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:03:56 #12208 [Verbose] > │ UH0_1 │
00:03:56 #12209 [Verbose] > │ let v16 : US0 = US0_0(v15) │
00:03:56 #12210 [Verbose] > │ v2.l0 <- v16 │
00:03:56 #12211 [Verbose] > │ v15 │
00:03:56 #12212 [Verbose] > │ let v19 : int32 = 3 │
00:03:56 #12213 [Verbose] > │ let v20 : US1 = method1(v19, v18) │
00:03:56 #12214 [Verbose] > │ let v24 : int32 = │
00:03:56 #12215 [Verbose] > │ match v20 with │
00:03:56 #12216 [Verbose] > │ | US1_0 -> (* None *) │
00:03:56 #12217 [Verbose] > │ failwith<int32> "Option does not have a value." │
00:03:56 #12218 [Verbose] > │ | US1_1(v21) -> (* Some *) │
00:03:56 #12219 [Verbose] > │ v21 │
00:03:56 #12220 [Verbose] > │ let v25 : string = $"%A{v24}" │
00:03:56 #12221 [Verbose] > │ System.Console.WriteLine v25 │
00:03:56 #12222 [Verbose] > │ let v26 : bool = v24 = 3 │
00:03:56 #12223 [Verbose] > │ let v28 : bool = │
00:03:56 #12224 [Verbose] > │ if v26 then │
00:03:56 #12225 [Verbose] > │ true │
00:03:56 #12226 [Verbose] > │ else │
00:03:56 #12227 [Verbose] > │ method2(v26) │
00:03:56 #12228 [Verbose] > │ let v29 : string = $"__expect / actual: %A{v24} / expected: %A{3}" │
00:03:56 #12229 [Verbose] > │ let v30 : bool = v28 = false │
00:03:56 #12230 [Verbose] > │ if v30 then │
00:03:56 #12231 [Verbose] > │ failwith<unit> v29 │
00:03:56 #12232 [Verbose] > │ let v31 : US0 = v2.l0 │
00:03:56 #12233 [Verbose] > │ let v46 : UH0 = │
00:03:56 #12234 [Verbose] > │ match v31 with │
00:03:56 #12235 [Verbose] > │ | US0_0(v32) -> (* Computed *) │
00:03:56 #12236 [Verbose] > │ v32 │
00:03:56 #12237 [Verbose] > │ | US0_1(v33) -> (* NotComputed *) │
00:03:56 #12238 [Verbose] > │ let v34 : UH0 = v33 () │
00:03:56 #12239 [Verbose] > │ let v43 : UH0 = │
00:03:56 #12240 [Verbose] > │ match v34 with │
00:03:56 #12241 [Verbose] > │ | UH0_0(v36, v37) -> (* StreamCons *) │
00:03:56 #12242 [Verbose] > │ let v38 : US0 = US0_1(v37) │
00:03:56 #12243 [Verbose] > │ let v39 : Mut0 = {l0 = v38} : Mut0 │
00:03:56 #12244 [Verbose] > │ let v40 : (unit -> UH0) = closure11(v39) │
00:03:56 #12245 [Verbose] > │ UH0_0(v36, v40) │
00:03:56 #12246 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:03:56 #12247 [Verbose] > │ UH0_1 │
00:03:56 #12248 [Verbose] > │ let v44 : US0 = US0_0(v43) │
00:03:56 #12249 [Verbose] > │ v2.l0 <- v44 │
00:03:56 #12250 [Verbose] > │ v43 │
00:03:56 #12251 [Verbose] > │ let v47 : int32 = 5 │
00:03:56 #12252 [Verbose] > │ let v48 : US1 = method1(v47, v46) │
00:03:56 #12253 [Verbose] > │ let v52 : int32 = │
00:03:56 #12254 [Verbose] > │ match v48 with │
00:03:56 #12255 [Verbose] > │ | US1_0 -> (* None *) │
00:03:56 #12256 [Verbose] > │ failwith<int32> "Option does not have a value." │
00:03:56 #12257 [Verbose] > │ | US1_1(v49) -> (* Some *) │
00:03:56 #12258 [Verbose] > │ v49 │
00:03:56 #12259 [Verbose] > │ let v53 : string = $"%A{v52}" │
00:03:56 #12260 [Verbose] > │ System.Console.WriteLine v53 │
00:03:56 #12261 [Verbose] > │ let v54 : bool = v52 = 5 │
00:03:56 #12262 [Verbose] > │ let v56 : bool = │
00:03:56 #12263 [Verbose] > │ if v54 then │
00:03:56 #12264 [Verbose] > │ true │
00:03:56 #12265 [Verbose] > │ else │
00:03:56 #12266 [Verbose] > │ method2(v54) │
00:03:56 #12267 [Verbose] > │ let v57 : string = $"__expect / actual: %A{v52} / expected: %A{5}" │
00:03:56 #12268 [Verbose] > │ let v58 : bool = v56 = false │
00:03:56 #12269 [Verbose] > │ if v58 then │
00:03:56 #12270 [Verbose] > │ failwith<unit> v57 │
00:03:56 #12271 [Verbose] > │ method0() │
00:03:56 #12272 [Verbose] > │ │
00:03:56 #12273 [Verbose] > │ print_and_return / x: 0 │
00:03:56 #12274 [Verbose] > │ print_and_return / x: 1 │
00:03:56 #12275 [Verbose] > │ print_and_return / x: 2 │
00:03:56 #12276 [Verbose] > │ print_and_return / x: 3 │
00:03:56 #12277 [Verbose] > │ 3 │
00:03:56 #12278 [Verbose] > │ print_and_return / x: 4 │
00:03:56 #12279 [Verbose] > │ print_and_return / x: 5 │
00:03:56 #12280 [Verbose] > │ 5 │
00:03:56 #12281 [Verbose] > │ │
00:03:56 #12282 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:56 #12283 [Verbose] >
00:03:56 #12284 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:56 #12285 [Verbose] > // // test
00:03:56 #12286 [Verbose] >
00:03:56 #12287 [Verbose] > inl memo_stream = new_infinite_stream_ print_and_return |> memoize
00:03:56 #12288 [Verbose] >
00:03:56 #12289 [Verbose] > memo_stream ()
00:03:56 #12290 [Verbose] > |> item 3i32
00:03:56 #12291 [Verbose] > |> _assert_eq 3i32
00:03:56 #12292 [Verbose] >
00:03:56 #12293 [Verbose] > memo_stream ()
00:03:56 #12294 [Verbose] > |> item 5i32
00:03:56 #12295 [Verbose] > |> _assert_eq 5i32
00:03:56 #12296 [Verbose] >
00:03:56 #12297 [Verbose] > ╭─[ 356.84ms - stdout ]────────────────────────────────────────────────────────╮
00:03:56 #12298 [Verbose] > │ type UH0 = │
00:03:56 #12299 [Verbose] > │ | UH0_0 of int32 * (unit -> UH0) │
00:03:56 #12300 [Verbose] > │ | UH0_1 │
00:03:56 #12301 [Verbose] > │ and [<Struct>] US0 = │
00:03:56 #12302 [Verbose] > │ | US0_0 of f0_0 : UH0 │
00:03:56 #12303 [Verbose] > │ | US0_1 of f1_0 : (unit -> UH0) │
00:03:56 #12304 [Verbose] > │ and Mut0 = {mutable l0 : US0} │
00:03:56 #12305 [Verbose] > │ and [<Struct>] US1 = │
00:03:56 #12306 [Verbose] > │ | US1_0 │
00:03:56 #12307 [Verbose] > │ | US1_1 of f1_0 : int32 │
00:03:56 #12308 [Verbose] > │ let rec closure0 (v0 : int32) () : UH0 = │
00:03:56 #12309 [Verbose] > │ let v1 : int32 = v0 + 1 │
00:03:56 #12310 [Verbose] > │ method1(v1) │
00:03:56 #12311 [Verbose] > │ and method1 (v0 : int32) : UH0 = │
00:03:56 #12312 [Verbose] > │ printfn $"print_and_return / x: {v0}" │
00:03:56 #12313 [Verbose] > │ let v1 : (unit -> UH0) = closure0(v0) │
00:03:56 #12314 [Verbose] > │ UH0_0(v0, v1) │
00:03:56 #12315 [Verbose] > │ and closure1 (v0 : UH0) () : UH0 = │
00:03:56 #12316 [Verbose] > │ v0 │
00:03:56 #12317 [Verbose] > │ and closure2 (v0 : UH0, v1 : Mut0) () : UH0 = │
00:03:56 #12318 [Verbose] > │ let v2 : US0 = v1.l0 │
00:03:56 #12319 [Verbose] > │ match v2 with │
00:03:56 #12320 [Verbose] > │ | US0_0(v3) -> (* Computed *) │
00:03:56 #12321 [Verbose] > │ v3 │
00:03:56 #12322 [Verbose] > │ | US0_1(v4) -> (* NotComputed *) │
00:03:56 #12323 [Verbose] > │ let v5 : UH0 = v4 () │
00:03:56 #12324 [Verbose] > │ let v12 : UH0 = │
00:03:56 #12325 [Verbose] > │ match v5 with │
00:03:56 #12326 [Verbose] > │ | UH0_0(v7, v8) -> (* StreamCons *) │
00:03:56 #12327 [Verbose] > │ let v9 : (unit -> UH0) = method2(v0, v8) │
00:03:56 #12328 [Verbose] > │ UH0_0(v7, v9) │
00:03:56 #12329 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:03:56 #12330 [Verbose] > │ UH0_1 │
00:03:56 #12331 [Verbose] > │ let v13 : US0 = US0_0(v12) │
00:03:56 #12332 [Verbose] > │ v1.l0 <- v13 │
00:03:56 #12333 [Verbose] > │ v12 │
00:03:56 #12334 [Verbose] > │ and method2 (v0 : UH0, v1 : (unit -> UH0)) : (unit -> UH0) = │
00:03:56 #12335 [Verbose] > │ let v2 : US0 = US0_1(v1) │
00:03:56 #12336 [Verbose] > │ let v3 : Mut0 = {l0 = v2} : Mut0 │
00:03:56 #12337 [Verbose] > │ closure2(v0, v3) │
00:03:56 #12338 [Verbose] > │ and method3 (v0 : int32, v1 : UH0) : US1 = │
00:03:56 #12339 [Verbose] > │ match v1 with │
00:03:56 #12340 [Verbose] > │ | UH0_0(v2, v3) -> (* StreamCons *) │
00:03:56 #12341 [Verbose] > │ let v4 : bool = v0 <= 0 │
00:03:56 #12342 [Verbose] > │ if v4 then │
00:03:56 #12343 [Verbose] > │ US1_1(v2) │
00:03:56 #12344 [Verbose] > │ else │
00:03:56 #12345 [Verbose] > │ let v6 : int32 = v0 - 1 │
00:03:56 #12346 [Verbose] > │ let v7 : UH0 = v3 () │
00:03:56 #12347 [Verbose] > │ method3(v6, v7) │
00:03:56 #12348 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:03:56 #12349 [Verbose] > │ US1_0 │
00:03:56 #12350 [Verbose] > │ and method4 (v0 : bool) : bool = │
00:03:56 #12351 [Verbose] > │ v0 │
00:03:56 #12352 [Verbose] > │ and method0 () : unit = │
00:03:56 #12353 [Verbose] > │ let v0 : int32 = 0 │
00:03:56 #12354 [Verbose] > │ let v1 : UH0 = method1(v0) │
00:03:56 #12355 [Verbose] > │ let v2 : (unit -> UH0) = closure1(v1) │
00:03:56 #12356 [Verbose] > │ let v3 : (unit -> UH0) = method2(v1, v2) │
00:03:56 #12357 [Verbose] > │ let v4 : UH0 = v3 () │
00:03:56 #12358 [Verbose] > │ let v5 : int32 = 3 │
00:03:56 #12359 [Verbose] > │ let v6 : US1 = method3(v5, v4) │
00:03:56 #12360 [Verbose] > │ let v10 : int32 = │
00:03:56 #12361 [Verbose] > │ match v6 with │
00:03:56 #12362 [Verbose] > │ | US1_0 -> (* None *) │
00:03:56 #12363 [Verbose] > │ failwith<int32> "Option does not have a value." │
00:03:56 #12364 [Verbose] > │ | US1_1(v7) -> (* Some *) │
00:03:56 #12365 [Verbose] > │ v7 │
00:03:56 #12366 [Verbose] > │ let v11 : string = $"%A{v10}" │
00:03:56 #12367 [Verbose] > │ System.Console.WriteLine v11 │
00:03:56 #12368 [Verbose] > │ let v12 : bool = v10 = 3 │
00:03:56 #12369 [Verbose] > │ let v14 : bool = │
00:03:56 #12370 [Verbose] > │ if v12 then │
00:03:56 #12371 [Verbose] > │ true │
00:03:56 #12372 [Verbose] > │ else │
00:03:56 #12373 [Verbose] > │ method4(v12) │
00:03:56 #12374 [Verbose] > │ let v15 : string = $"__expect / actual: %A{v10} / expected: %A{3}" │
00:03:56 #12375 [Verbose] > │ let v16 : bool = v14 = false │
00:03:56 #12376 [Verbose] > │ if v16 then │
00:03:56 #12377 [Verbose] > │ failwith<unit> v15 │
00:03:56 #12378 [Verbose] > │ let v17 : UH0 = v3 () │
00:03:56 #12379 [Verbose] > │ let v18 : int32 = 5 │
00:03:56 #12380 [Verbose] > │ let v19 : US1 = method3(v18, v17) │
00:03:56 #12381 [Verbose] > │ let v23 : int32 = │
00:03:56 #12382 [Verbose] > │ match v19 with │
00:03:56 #12383 [Verbose] > │ | US1_0 -> (* None *) │
00:03:56 #12384 [Verbose] > │ failwith<int32> "Option does not have a value." │
00:03:56 #12385 [Verbose] > │ | US1_1(v20) -> (* Some *) │
00:03:56 #12386 [Verbose] > │ v20 │
00:03:56 #12387 [Verbose] > │ let v24 : string = $"%A{v23}" │
00:03:56 #12388 [Verbose] > │ System.Console.WriteLine v24 │
00:03:56 #12389 [Verbose] > │ let v25 : bool = v23 = 5 │
00:03:56 #12390 [Verbose] > │ let v27 : bool = │
00:03:56 #12391 [Verbose] > │ if v25 then │
00:03:56 #12392 [Verbose] > │ true │
00:03:56 #12393 [Verbose] > │ else │
00:03:56 #12394 [Verbose] > │ method4(v25) │
00:03:56 #12395 [Verbose] > │ let v28 : string = $"__expect / actual: %A{v23} / expected: %A{5}" │
00:03:56 #12396 [Verbose] > │ let v29 : bool = v27 = false │
00:03:56 #12397 [Verbose] > │ if v29 then │
00:03:56 #12398 [Verbose] > │ failwith<unit> v28 │
00:03:56 #12399 [Verbose] > │ method0() │
00:03:56 #12400 [Verbose] > │ │
00:03:56 #12401 [Verbose] > │ print_and_return / x: 0 │
00:03:56 #12402 [Verbose] > │ print_and_return / x: 1 │
00:03:56 #12403 [Verbose] > │ print_and_return / x: 2 │
00:03:56 #12404 [Verbose] > │ print_and_return / x: 3 │
00:03:56 #12405 [Verbose] > │ 3 │
00:03:56 #12406 [Verbose] > │ print_and_return / x: 4 │
00:03:56 #12407 [Verbose] > │ print_and_return / x: 5 │
00:03:56 #12408 [Verbose] > │ 5 │
00:03:56 #12409 [Verbose] > │ │
00:03:56 #12410 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:56 #12411 [Verbose] >
00:03:56 #12412 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:56 #12413 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:56 #12414 [Verbose] > │ ## unfold │
00:03:56 #12415 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:56 #12416 [Verbose] >
00:03:56 #12417 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:56 #12418 [Verbose] > inl unfold f x0 =
00:03:56 #12419 [Verbose] > inl rec body x =
00:03:56 #12420 [Verbose] > match f x with
00:03:56 #12421 [Verbose] > | Some (x', y) => StreamCons (x', fun () => loop y)
00:03:56 #12422 [Verbose] > | None => StreamNil
00:03:56 #12423 [Verbose] > and inl loop x = join_body_unit body x0 x
00:03:56 #12424 [Verbose] > loop x0
00:03:56 #12425 [Verbose] >
00:03:56 #12426 [Verbose] > ╭─[ 303.93ms - stdout ]────────────────────────────────────────────────────────╮
00:03:56 #12427 [Verbose] > │ () │
00:03:56 #12428 [Verbose] > │ │
00:03:56 #12429 [Verbose] > │ │
00:03:56 #12430 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:56 #12431 [Verbose] >
00:03:56 #12432 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:56 #12433 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:56 #12434 [Verbose] > │ ## iterate │
00:03:56 #12435 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:56 #12436 [Verbose] >
00:03:56 #12437 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:56 #12438 [Verbose] > inl iterate f =
00:03:56 #12439 [Verbose] > unfold (fun x => Some (x, f x))
00:03:57 #12440 [Verbose] >
00:03:57 #12441 [Verbose] > ╭─[ 298.46ms - stdout ]────────────────────────────────────────────────────────╮
00:03:57 #12442 [Verbose] > │ () │
00:03:57 #12443 [Verbose] > │ │
00:03:57 #12444 [Verbose] > │ │
00:03:57 #12445 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:57 #12446 [Verbose] >
00:03:57 #12447 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:57 #12448 [Verbose] > // // test
00:03:57 #12449 [Verbose] >
00:03:57 #12450 [Verbose] > iterate ((*) 2) 1i32
00:03:57 #12451 [Verbose] > |> item 10i32
00:03:57 #12452 [Verbose] > |> _assert_eq 1024
00:03:57 #12453 [Verbose] >
00:03:57 #12454 [Verbose] > ╭─[ 291.36ms - stdout ]────────────────────────────────────────────────────────╮
00:03:57 #12455 [Verbose] > │ let rec method0 () : unit = │
00:03:57 #12456 [Verbose] > │ let v0 : string = $"%A{1024}" │
00:03:57 #12457 [Verbose] > │ System.Console.WriteLine v0 │
00:03:57 #12458 [Verbose] > │ let v1 : string = $"__expect / actual: %A{1024} / expected: %A{1024}" │
00:03:57 #12459 [Verbose] > │ () │
00:03:57 #12460 [Verbose] > │ method0() │
00:03:57 #12461 [Verbose] > │ │
00:03:57 #12462 [Verbose] > │ 1024 │
00:03:57 #12463 [Verbose] > │ │
00:03:57 #12464 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:57 #12465 [Verbose] >
00:03:57 #12466 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:57 #12467 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:57 #12468 [Verbose] > │ ## take_while │
00:03:57 #12469 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:57 #12470 [Verbose] >
00:03:57 #12471 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:57 #12472 [Verbose] > inl take_while cond s =
00:03:57 #12473 [Verbose] > inl rec body i = function
00:03:57 #12474 [Verbose] > | StreamCons (st, fn) when cond st i => StreamCons (st, fun () => loop
00:03:57 #12475 [Verbose] > (i + 1) (fn ()))
00:03:57 #12476 [Verbose] > | _ => StreamNil
00:03:57 #12477 [Verbose] > and inl loop i = join_body body i
00:03:57 #12478 [Verbose] > loop 0 s
00:03:57 #12479 [Verbose] >
00:03:57 #12480 [Verbose] > ╭─[ 260.31ms - stdout ]────────────────────────────────────────────────────────╮
00:03:57 #12481 [Verbose] > │ () │
00:03:57 #12482 [Verbose] > │ │
00:03:57 #12483 [Verbose] > │ │
00:03:57 #12484 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:57 #12485 [Verbose] >
00:03:57 #12486 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:57 #12487 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:57 #12488 [Verbose] > │ ## sum │
00:03:57 #12489 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:57 #12490 [Verbose] >
00:03:57 #12491 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:57 #12492 [Verbose] > inl sum seq =
00:03:57 #12493 [Verbose] > seq |> fold (+) 0
00:03:57 #12494 [Verbose] >
00:03:57 #12495 [Verbose] > ╭─[ 238.21ms - stdout ]────────────────────────────────────────────────────────╮
00:03:57 #12496 [Verbose] > │ () │
00:03:57 #12497 [Verbose] > │ │
00:03:57 #12498 [Verbose] > │ │
00:03:57 #12499 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:57 #12500 [Verbose] >
00:03:57 #12501 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:57 #12502 [Verbose] > // // test
00:03:57 #12503 [Verbose] >
00:03:57 #12504 [Verbose] > listm.init 10i32 id
00:03:57 #12505 [Verbose] > |> from_list
00:03:57 #12506 [Verbose] > |> sum
00:03:57 #12507 [Verbose] > |> _assert_eq 45
00:03:58 #12508 [Verbose] >
00:03:58 #12509 [Verbose] > ╭─[ 299.66ms - stdout ]────────────────────────────────────────────────────────╮
00:03:58 #12510 [Verbose] > │ let rec method0 () : unit = │
00:03:58 #12511 [Verbose] > │ let v0 : string = $"%A{45}" │
00:03:58 #12512 [Verbose] > │ System.Console.WriteLine v0 │
00:03:58 #12513 [Verbose] > │ let v1 : string = $"__expect / actual: %A{45} / expected: %A{45}" │
00:03:58 #12514 [Verbose] > │ () │
00:03:58 #12515 [Verbose] > │ method0() │
00:03:58 #12516 [Verbose] > │ │
00:03:58 #12517 [Verbose] > │ 45 │
00:03:58 #12518 [Verbose] > │ │
00:03:58 #12519 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:58 #12520 [Verbose] >
00:03:58 #12521 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:58 #12522 [Verbose] > // // test
00:03:58 #12523 [Verbose] >
00:03:58 #12524 [Verbose] > new_finite_stream print_and_return 10i32
00:03:58 #12525 [Verbose] > |> take_while (fun n (_ : i32) => n < 5)
00:03:58 #12526 [Verbose] > |> sum
00:03:58 #12527 [Verbose] > |> _assert_eq 10
00:03:58 #12528 [Verbose] >
00:03:58 #12529 [Verbose] > ╭─[ 292.65ms - stdout ]────────────────────────────────────────────────────────╮
00:03:58 #12530 [Verbose] > │ let rec method0 () : unit = │
00:03:58 #12531 [Verbose] > │ printfn $"print_and_return / x: {0}" │
00:03:58 #12532 [Verbose] > │ printfn $"print_and_return / x: {1}" │
00:03:58 #12533 [Verbose] > │ printfn $"print_and_return / x: {2}" │
00:03:58 #12534 [Verbose] > │ printfn $"print_and_return / x: {3}" │
00:03:58 #12535 [Verbose] > │ printfn $"print_and_return / x: {4}" │
00:03:58 #12536 [Verbose] > │ printfn $"print_and_return / x: {5}" │
00:03:58 #12537 [Verbose] > │ let v0 : string = $"%A{10}" │
00:03:58 #12538 [Verbose] > │ System.Console.WriteLine v0 │
00:03:58 #12539 [Verbose] > │ let v1 : string = $"__expect / actual: %A{10} / expected: %A{10}" │
00:03:58 #12540 [Verbose] > │ () │
00:03:58 #12541 [Verbose] > │ method0() │
00:03:58 #12542 [Verbose] > │ │
00:03:58 #12543 [Verbose] > │ print_and_return / x: 0 │
00:03:58 #12544 [Verbose] > │ print_and_return / x: 1 │
00:03:58 #12545 [Verbose] > │ print_and_return / x: 2 │
00:03:58 #12546 [Verbose] > │ print_and_return / x: 3 │
00:03:58 #12547 [Verbose] > │ print_and_return / x: 4 │
00:03:58 #12548 [Verbose] > │ print_and_return / x: 5 │
00:03:58 #12549 [Verbose] > │ 10 │
00:03:58 #12550 [Verbose] > │ │
00:03:58 #12551 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:58 #12552 [Verbose] >
00:03:58 #12553 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:58 #12554 [Verbose] > // // test
00:03:58 #12555 [Verbose] >
00:03:58 #12556 [Verbose] > new_infinite_stream print_and_return
00:03:58 #12557 [Verbose] > |> take_while (fun n (_ : i32) => n < 5i32)
00:03:58 #12558 [Verbose] > |> sum
00:03:58 #12559 [Verbose] > |> _assert_eq 10
00:03:58 #12560 [Verbose] >
00:03:58 #12561 [Verbose] > ╭─[ 297.77ms - stdout ]────────────────────────────────────────────────────────╮
00:03:58 #12562 [Verbose] > │ let rec method0 () : unit = │
00:03:58 #12563 [Verbose] > │ printfn $"print_and_return / x: {0}" │
00:03:58 #12564 [Verbose] > │ printfn $"print_and_return / x: {1}" │
00:03:58 #12565 [Verbose] > │ printfn $"print_and_return / x: {2}" │
00:03:58 #12566 [Verbose] > │ printfn $"print_and_return / x: {3}" │
00:03:58 #12567 [Verbose] > │ printfn $"print_and_return / x: {4}" │
00:03:58 #12568 [Verbose] > │ printfn $"print_and_return / x: {5}" │
00:03:58 #12569 [Verbose] > │ let v0 : string = $"%A{10}" │
00:03:58 #12570 [Verbose] > │ System.Console.WriteLine v0 │
00:03:58 #12571 [Verbose] > │ let v1 : string = $"__expect / actual: %A{10} / expected: %A{10}" │
00:03:58 #12572 [Verbose] > │ () │
00:03:58 #12573 [Verbose] > │ method0() │
00:03:58 #12574 [Verbose] > │ │
00:03:58 #12575 [Verbose] > │ print_and_return / x: 0 │
00:03:58 #12576 [Verbose] > │ print_and_return / x: 1 │
00:03:58 #12577 [Verbose] > │ print_and_return / x: 2 │
00:03:58 #12578 [Verbose] > │ print_and_return / x: 3 │
00:03:58 #12579 [Verbose] > │ print_and_return / x: 4 │
00:03:58 #12580 [Verbose] > │ print_and_return / x: 5 │
00:03:58 #12581 [Verbose] > │ 10 │
00:03:58 #12582 [Verbose] > │ │
00:03:58 #12583 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:58 #12584 [Verbose] >
00:03:58 #12585 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:58 #12586 [Verbose] > // // test
00:03:58 #12587 [Verbose] >
00:03:58 #12588 [Verbose] > iterate ((*) 6) 1i32
00:03:58 #12589 [Verbose] > |> take_while (fun _ i => i <= 7i32)
00:03:58 #12590 [Verbose] > |> to_list
00:03:58 #12591 [Verbose] > |> _assert_eq [[ 1i32; 6; 36; 216; 1296; 7776; 46656; 279936 ]]
00:03:59 #12592 [Verbose] >
00:03:59 #12593 [Verbose] > ╭─[ 393.80ms - stdout ]────────────────────────────────────────────────────────╮
00:03:59 #12594 [Verbose] > │ type UH0 = │
00:03:59 #12595 [Verbose] > │ | UH0_0 of int32 * UH0 │
00:03:59 #12596 [Verbose] > │ | UH0_1 │
00:03:59 #12597 [Verbose] > │ let rec method0 () : unit = │
00:03:59 #12598 [Verbose] > │ let v0 : UH0 = UH0_1 │
00:03:59 #12599 [Verbose] > │ let v1 : UH0 = UH0_0(279936, v0) │
00:03:59 #12600 [Verbose] > │ let v2 : UH0 = UH0_0(46656, v1) │
00:03:59 #12601 [Verbose] > │ let v3 : UH0 = UH0_0(7776, v2) │
00:03:59 #12602 [Verbose] > │ let v4 : UH0 = UH0_0(1296, v3) │
00:03:59 #12603 [Verbose] > │ let v5 : UH0 = UH0_0(216, v4) │
00:03:59 #12604 [Verbose] > │ let v6 : UH0 = UH0_0(36, v5) │
00:03:59 #12605 [Verbose] > │ let v7 : UH0 = UH0_0(6, v6) │
00:03:59 #12606 [Verbose] > │ let v8 : UH0 = UH0_0(1, v7) │
00:03:59 #12607 [Verbose] > │ let v9 : string = $"%A{v8}" │
00:03:59 #12608 [Verbose] > │ System.Console.WriteLine v9 │
00:03:59 #12609 [Verbose] > │ let v73 : UH0 = UH0_1 │
00:03:59 #12610 [Verbose] > │ let v74 : UH0 = UH0_0(279936, v73) │
00:03:59 #12611 [Verbose] > │ let v75 : UH0 = UH0_0(46656, v74) │
00:03:59 #12612 [Verbose] > │ let v76 : UH0 = UH0_0(7776, v75) │
00:03:59 #12613 [Verbose] > │ let v77 : UH0 = UH0_0(1296, v76) │
00:03:59 #12614 [Verbose] > │ let v78 : UH0 = UH0_0(216, v77) │
00:03:59 #12615 [Verbose] > │ let v79 : UH0 = UH0_0(36, v78) │
00:03:59 #12616 [Verbose] > │ let v80 : UH0 = UH0_0(6, v79) │
00:03:59 #12617 [Verbose] > │ let v81 : UH0 = UH0_0(1, v80) │
00:03:59 #12618 [Verbose] > │ let v82 : UH0 = UH0_1 │
00:03:59 #12619 [Verbose] > │ let v83 : UH0 = UH0_0(279936, v82) │
00:03:59 #12620 [Verbose] > │ let v84 : UH0 = UH0_0(46656, v83) │
00:03:59 #12621 [Verbose] > │ let v85 : UH0 = UH0_0(7776, v84) │
00:03:59 #12622 [Verbose] > │ let v86 : UH0 = UH0_0(1296, v85) │
00:03:59 #12623 [Verbose] > │ let v87 : UH0 = UH0_0(216, v86) │
00:03:59 #12624 [Verbose] > │ let v88 : UH0 = UH0_0(36, v87) │
00:03:59 #12625 [Verbose] > │ let v89 : UH0 = UH0_0(6, v88) │
00:03:59 #12626 [Verbose] > │ let v90 : UH0 = UH0_0(1, v89) │
00:03:59 #12627 [Verbose] > │ let v91 : string = $"__expect / actual: %A{v81} / expected: %A{v90}" │
00:03:59 #12628 [Verbose] > │ () │
00:03:59 #12629 [Verbose] > │ method0() │
00:03:59 #12630 [Verbose] > │ │
00:03:59 #12631 [Verbose] > │ UH0_0 │
00:03:59 #12632 [Verbose] > │ (1, │
00:03:59 #12633 [Verbose] > │ UH0_0 │
00:03:59 #12634 [Verbose] > │ (6, │
00:03:59 #12635 [Verbose] > │ UH0_0 │
00:03:59 #12636 [Verbose] > │ (36, │
00:03:59 #12637 [Verbose] > │ UH0_0 │
00:03:59 #12638 [Verbose] > │ (216, │
00:03:59 #12639 [Verbose] > │ UH0_0 (1296, UH0_0 (7776, UH0_0 (46656, UH0_0 (279936, │
00:03:59 #12640 [Verbose] > │ UH0_1)))))))) │
00:03:59 #12641 [Verbose] > │ │
00:03:59 #12642 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:59 #12643 [Verbose] >
00:03:59 #12644 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:59 #12645 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:59 #12646 [Verbose] > │ ## indexed │
00:03:59 #12647 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:59 #12648 [Verbose] >
00:03:59 #12649 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:59 #12650 [Verbose] > inl indexed s =
00:03:59 #12651 [Verbose] > ((StreamNil, 0), s)
00:03:59 #12652 [Verbose] > ||> fold fun (acc, i) x =>
00:03:59 #12653 [Verbose] > StreamCons ((i, x), fun () => acc), i + 1
00:03:59 #12654 [Verbose] > |> fst
00:03:59 #12655 [Verbose] > |> rev
00:03:59 #12656 [Verbose] >
00:03:59 #12657 [Verbose] > ╭─[ 231.33ms - stdout ]────────────────────────────────────────────────────────╮
00:03:59 #12658 [Verbose] > │ () │
00:03:59 #12659 [Verbose] > │ │
00:03:59 #12660 [Verbose] > │ │
00:03:59 #12661 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:59 #12662 [Verbose] >
00:03:59 #12663 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:59 #12664 [Verbose] > // // test
00:03:59 #12665 [Verbose] >
00:03:59 #12666 [Verbose] > listm.init 10i32 ((*) 2)
00:03:59 #12667 [Verbose] > |> from_list
00:03:59 #12668 [Verbose] > |> indexed
00:03:59 #12669 [Verbose] > |> item 5i32
00:03:59 #12670 [Verbose] > |> _assert_eq (5i32, 10i32)
00:03:59 #12671 [Verbose] >
00:03:59 #12672 [Verbose] > ╭─[ 285.56ms - stdout ]────────────────────────────────────────────────────────╮
00:03:59 #12673 [Verbose] > │ let rec method0 () : unit = │
00:03:59 #12674 [Verbose] > │ let v0 : string = $"%A{struct (5, 10)}" │
00:03:59 #12675 [Verbose] > │ System.Console.WriteLine v0 │
00:03:59 #12676 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (5, 10)} / expected: │
00:03:59 #12677 [Verbose] > │ %A{struct (5, 10)}" │
00:03:59 #12678 [Verbose] > │ () │
00:03:59 #12679 [Verbose] > │ method0() │
00:03:59 #12680 [Verbose] > │ │
00:03:59 #12681 [Verbose] > │ struct (5, 10) │
00:03:59 #12682 [Verbose] > │ │
00:03:59 #12683 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:59 #12684 [Verbose] >
00:03:59 #12685 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:59 #12686 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:59 #12687 [Verbose] > │ ## map │
00:03:59 #12688 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:59 #12689 [Verbose] >
00:03:59 #12690 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:59 #12691 [Verbose] > inl map fn s =
00:03:59 #12692 [Verbose] > (s, StreamNil)
00:03:59 #12693 [Verbose] > ||> fold_back fun x acc =>
00:03:59 #12694 [Verbose] > StreamCons (fn x, fun () => acc)
00:04:00 #12695 [Verbose] >
00:04:00 #12696 [Verbose] > ╭─[ 297.60ms - stdout ]────────────────────────────────────────────────────────╮
00:04:00 #12697 [Verbose] > │ () │
00:04:00 #12698 [Verbose] > │ │
00:04:00 #12699 [Verbose] > │ │
00:04:00 #12700 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:00 #12701 [Verbose] >
00:04:00 #12702 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:00 #12703 [Verbose] > // // test
00:04:00 #12704 [Verbose] >
00:04:00 #12705 [Verbose] > listm.init 10i32 id
00:04:00 #12706 [Verbose] > |> from_list
00:04:00 #12707 [Verbose] > |> map ((*) 2)
00:04:00 #12708 [Verbose] > |> item 5i32
00:04:00 #12709 [Verbose] > |> _assert_eq 10i32
00:04:00 #12710 [Verbose] >
00:04:00 #12711 [Verbose] > ╭─[ 238.62ms - stdout ]────────────────────────────────────────────────────────╮
00:04:00 #12712 [Verbose] > │ let rec method0 () : unit = │
00:04:00 #12713 [Verbose] > │ let v0 : string = $"%A{10}" │
00:04:00 #12714 [Verbose] > │ System.Console.WriteLine v0 │
00:04:00 #12715 [Verbose] > │ let v1 : string = $"__expect / actual: %A{10} / expected: %A{10}" │
00:04:00 #12716 [Verbose] > │ () │
00:04:00 #12717 [Verbose] > │ method0() │
00:04:00 #12718 [Verbose] > │ │
00:04:00 #12719 [Verbose] > │ 10 │
00:04:00 #12720 [Verbose] > │ │
00:04:00 #12721 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:00 #12722 [Verbose] >
00:04:00 #12723 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:00 #12724 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:00 #12725 [Verbose] > │ ## zip_with │
00:04:00 #12726 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:00 #12727 [Verbose] >
00:04:00 #12728 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:00 #12729 [Verbose] > inl zip_with fn s1 s2 =
00:04:00 #12730 [Verbose] > inl rec loop s1 s2 =
00:04:00 #12731 [Verbose] > match s1, s2 with
00:04:00 #12732 [Verbose] > | StreamCons (st1, fn1), StreamCons (st2, fn2) =>
00:04:00 #12733 [Verbose] > StreamCons (fn st1 st2, fun () => loop (fn1 ()) (fn2 ()))
00:04:00 #12734 [Verbose] > | StreamNil, _ | _, StreamNil => StreamNil
00:04:00 #12735 [Verbose] > loop s1 s2
00:04:00 #12736 [Verbose] >
00:04:00 #12737 [Verbose] > inl zip_with_ fn s1 s2 =
00:04:00 #12738 [Verbose] > let rec loop s1 s2 =
00:04:00 #12739 [Verbose] > match s1, s2 with
00:04:00 #12740 [Verbose] > | StreamCons (st1, fn1), StreamCons (st2, fn2) =>
00:04:00 #12741 [Verbose] > StreamCons (fn st1 st2, fun () => loop (fn1 ()) (fn2 ()))
00:04:00 #12742 [Verbose] > | StreamNil, _ | _, StreamNil => StreamNil
00:04:00 #12743 [Verbose] > loop s1 s2
00:04:00 #12744 [Verbose] >
00:04:00 #12745 [Verbose] > ╭─[ 271.22ms - stdout ]────────────────────────────────────────────────────────╮
00:04:00 #12746 [Verbose] > │ () │
00:04:00 #12747 [Verbose] > │ │
00:04:00 #12748 [Verbose] > │ │
00:04:00 #12749 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:00 #12750 [Verbose] >
00:04:00 #12751 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:00 #12752 [Verbose] > // // test
00:04:00 #12753 [Verbose] >
00:04:00 #12754 [Verbose] > ((listm.init 10i32 id |> from_list), (listm.init 10i32 ((*) 2) |> from_list))
00:04:00 #12755 [Verbose] > ||> zip_with (+)
00:04:00 #12756 [Verbose] > |> item 2i32
00:04:00 #12757 [Verbose] > |> _assert_eq 6
00:04:00 #12758 [Verbose] >
00:04:00 #12759 [Verbose] > ╭─[ 313.58ms - stdout ]────────────────────────────────────────────────────────╮
00:04:00 #12760 [Verbose] > │ let rec method0 () : unit = │
00:04:00 #12761 [Verbose] > │ let v0 : string = $"%A{6}" │
00:04:00 #12762 [Verbose] > │ System.Console.WriteLine v0 │
00:04:00 #12763 [Verbose] > │ let v1 : string = $"__expect / actual: %A{6} / expected: %A{6}" │
00:04:00 #12764 [Verbose] > │ () │
00:04:00 #12765 [Verbose] > │ method0() │
00:04:00 #12766 [Verbose] > │ │
00:04:00 #12767 [Verbose] > │ 6 │
00:04:00 #12768 [Verbose] > │ │
00:04:00 #12769 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:00 #12770 [Verbose] >
00:04:00 #12771 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:00 #12772 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:00 #12773 [Verbose] > │ ## zip │
00:04:00 #12774 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:00 #12775 [Verbose] >
00:04:00 #12776 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:00 #12777 [Verbose] > inl zip s1 s2 =
00:04:00 #12778 [Verbose] > zip_with pair s1 s2
00:04:00 #12779 [Verbose] >
00:04:00 #12780 [Verbose] > inl zip_ s1 s2 =
00:04:00 #12781 [Verbose] > zip_with_ pair s1 s2
00:04:01 #12782 [Verbose] >
00:04:01 #12783 [Verbose] > ╭─[ 226.44ms - stdout ]────────────────────────────────────────────────────────╮
00:04:01 #12784 [Verbose] > │ () │
00:04:01 #12785 [Verbose] > │ │
00:04:01 #12786 [Verbose] > │ │
00:04:01 #12787 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:01 #12788 [Verbose] >
00:04:01 #12789 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:01 #12790 [Verbose] > // // test
00:04:01 #12791 [Verbose] >
00:04:01 #12792 [Verbose] > ((listm.init 10i32 id |> from_list), (listm.init 10i32 ((*) 2) |> from_list))
00:04:01 #12793 [Verbose] > ||> zip
00:04:01 #12794 [Verbose] > |> item 5i32
00:04:01 #12795 [Verbose] > |> _assert_eq (5, 10)
00:04:01 #12796 [Verbose] >
00:04:01 #12797 [Verbose] > ╭─[ 288.02ms - stdout ]────────────────────────────────────────────────────────╮
00:04:01 #12798 [Verbose] > │ let rec method0 () : unit = │
00:04:01 #12799 [Verbose] > │ let v0 : string = $"%A{struct (5, 10)}" │
00:04:01 #12800 [Verbose] > │ System.Console.WriteLine v0 │
00:04:01 #12801 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (5, 10)} / expected: │
00:04:01 #12802 [Verbose] > │ %A{struct (5, 10)}" │
00:04:01 #12803 [Verbose] > │ () │
00:04:01 #12804 [Verbose] > │ method0() │
00:04:01 #12805 [Verbose] > │ │
00:04:01 #12806 [Verbose] > │ struct (5, 10) │
00:04:01 #12807 [Verbose] > │ │
00:04:01 #12808 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:01 #12809 [Verbose] >
00:04:01 #12810 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:01 #12811 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:01 #12812 [Verbose] > │ ## unzip │
00:04:01 #12813 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:01 #12814 [Verbose] >
00:04:01 #12815 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:01 #12816 [Verbose] > inl unzip s =
00:04:01 #12817 [Verbose] > inl rec body s =
00:04:01 #12818 [Verbose] > match s with
00:04:01 #12819 [Verbose] > | StreamCons ((x, y), fn) =>
00:04:01 #12820 [Verbose] > inl xs, ys = loop (fn ())
00:04:01 #12821 [Verbose] > StreamCons (x, fun () => xs), StreamCons (y, fun () => ys)
00:04:01 #12822 [Verbose] > | StreamNil => pair StreamNil StreamNil
00:04:01 #12823 [Verbose] > and inl loop x =
00:04:01 #12824 [Verbose] > if var_is x |> not
00:04:01 #12825 [Verbose] > then body x
00:04:01 #12826 [Verbose] > else
00:04:01 #12827 [Verbose] > inl x = dyn x
00:04:01 #12828 [Verbose] > join body x
00:04:01 #12829 [Verbose] > loop s
00:04:01 #12830 [Verbose] >
00:04:01 #12831 [Verbose] > ╭─[ 297.80ms - stdout ]────────────────────────────────────────────────────────╮
00:04:01 #12832 [Verbose] > │ () │
00:04:01 #12833 [Verbose] > │ │
00:04:01 #12834 [Verbose] > │ │
00:04:01 #12835 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:01 #12836 [Verbose] >
00:04:01 #12837 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:01 #12838 [Verbose] > // // test
00:04:01 #12839 [Verbose] >
00:04:01 #12840 [Verbose] > listm.init 10i32 id
00:04:01 #12841 [Verbose] > |> listm.map (fun x => x, x)
00:04:01 #12842 [Verbose] > |> from_list
00:04:01 #12843 [Verbose] > |> unzip
00:04:01 #12844 [Verbose] > |> fun x, y =>
00:04:01 #12845 [Verbose] > x |> sum
00:04:01 #12846 [Verbose] > |> _assert_eq 45
00:04:01 #12847 [Verbose] >
00:04:01 #12848 [Verbose] > y |> sum
00:04:01 #12849 [Verbose] > |> _assert_eq 45
00:04:02 #12850 [Verbose] >
00:04:02 #12851 [Verbose] > ╭─[ 394.06ms - stdout ]────────────────────────────────────────────────────────╮
00:04:02 #12852 [Verbose] > │ let rec method0 () : unit = │
00:04:02 #12853 [Verbose] > │ let v0 : string = $"%A{45}" │
00:04:02 #12854 [Verbose] > │ System.Console.WriteLine v0 │
00:04:02 #12855 [Verbose] > │ let v1 : string = $"__expect / actual: %A{45} / expected: %A{45}" │
00:04:02 #12856 [Verbose] > │ let v2 : string = $"%A{45}" │
00:04:02 #12857 [Verbose] > │ System.Console.WriteLine v2 │
00:04:02 #12858 [Verbose] > │ let v3 : string = $"__expect / actual: %A{45} / expected: %A{45}" │
00:04:02 #12859 [Verbose] > │ () │
00:04:02 #12860 [Verbose] > │ method0() │
00:04:02 #12861 [Verbose] > │ │
00:04:02 #12862 [Verbose] > │ 45 │
00:04:02 #12863 [Verbose] > │ 45 │
00:04:02 #12864 [Verbose] > │ │
00:04:02 #12865 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:03 #12866 [Verbose] > [NbConvertApp] Converting notebook stream.dib.ipynb to html
00:04:03 #12867 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:04:03 #12868 [Verbose] > validate(nb)
00:04:04 #12869 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:04:04 #12870 [Verbose] > return _pygments_highlight(
00:04:04 #12871 [Verbose] > [NbConvertApp] Writing 360587 bytes to stream.dib.html
00:04:05 #12872 [Debug] executeAsync / exitCode: 0 / output.Length: 66677
00:04:05 #12873 [Debug] main / executeCommand / exitCode: 0
00:04:05 #12874 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 seq.dib" -Retries 3"
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:04:07 #12875 [Verbose] >
00:04:07 #12876 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:07 #12877 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:07 #12878 [Verbose] > │ # seq │
00:04:07 #12879 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:07 #12880 [Verbose] >
00:04:07 #12881 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:07 #12882 [Verbose] > // // test
00:04:07 #12883 [Verbose] >
00:04:07 #12884 [Verbose] > open testing
00:04:11 #12885 [Verbose] >
00:04:11 #12886 [Verbose] > ╭─[ 3.47s - stdout ]───────────────────────────────────────────────────────────╮
00:04:11 #12887 [Verbose] > │ () │
00:04:11 #12888 [Verbose] > │ │
00:04:11 #12889 [Verbose] > │ │
00:04:11 #12890 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:11 #12891 [Verbose] >
00:04:11 #12892 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:11 #12893 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:11 #12894 [Verbose] > │ ## seq' │
00:04:11 #12895 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:11 #12896 [Verbose] >
00:04:11 #12897 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:11 #12898 [Verbose] > type seq' t = $"`t seq"
00:04:11 #12899 [Verbose] >
00:04:11 #12900 [Verbose] > ╭─[ 240.01ms - stdout ]────────────────────────────────────────────────────────╮
00:04:11 #12901 [Verbose] > │ () │
00:04:11 #12902 [Verbose] > │ │
00:04:11 #12903 [Verbose] > │ │
00:04:11 #12904 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:11 #12905 [Verbose] >
00:04:11 #12906 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:11 #12907 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:11 #12908 [Verbose] > │ ## of_array' │
00:04:11 #12909 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:11 #12910 [Verbose] >
00:04:11 #12911 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:11 #12912 [Verbose] > inl of_array' forall dim t. (items : a dim t) : seq' t =
00:04:11 #12913 [Verbose] > $'seq { for i = 0 to !items.Length - 1 do yield !items.[[i]] }'
00:04:11 #12914 [Verbose] >
00:04:11 #12915 [Verbose] > ╭─[ 345.41ms - stdout ]────────────────────────────────────────────────────────╮
00:04:11 #12916 [Verbose] > │ () │
00:04:11 #12917 [Verbose] > │ │
00:04:11 #12918 [Verbose] > │ │
00:04:11 #12919 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:11 #12920 [Verbose] >
00:04:11 #12921 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:11 #12922 [Verbose] > // // test
00:04:11 #12923 [Verbose] >
00:04:11 #12924 [Verbose] > (a ;[["a"; "b"]] : _ i32 _)
00:04:11 #12925 [Verbose] > |> of_array'
00:04:12 #12926 [Verbose] >
00:04:12 #12927 [Verbose] > ╭─[ 1.06s - return value ]─────────────────────────────────────────────────────╮
00:04:12 #12928 [Verbose] > │ <details open="open" class="dni-treeview"><summary><span │
00:04:12 #12929 [Verbose] > │ class="dni-code-hint"><code>[ a, b │
00:04:12 #12930 [Verbose] > │ ]</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td> │
00:04:12 #12931 [Verbose] > │ CheckClose</td><td><div │
00:04:12 #12932 [Verbose] > │ class="dni-plaintext"><pre>False</pre></div></td></tr><tr><td>LastGenerated< │
00:04:12 #12933 [Verbose] > │ /td><td><div │
00:04:12 #12934 [Verbose] > │ class="dni-plaintext"><pre><null></pre></div></td></tr><tr><td>v2</td> │
00:04:12 #12935 [Verbose] > │ <td><div class="dni-plaintext"><pre>[ a, b │
00:04:12 #12936 [Verbose] > │ ]</pre></div></td></tr><tr><td>enum</td><td><div │
00:04:12 #12937 [Verbose] > │ class="dni-plaintext"><pre><null></pre></div></td></tr><tr><td>pc</td> │
00:04:12 #12938 [Verbose] > │ <td><div │
00:04:12 #12939 [Verbose] > │ class="dni-plaintext"><pre>0</pre></div></td></tr><tr><td>current</td><td><d │
00:04:12 #12940 [Verbose] > │ iv │
00:04:12 #12941 [Verbose] > │ class="dni-plaintext"><pre><null></pre></div></td></tr><tr><td><i>(val │
00:04:12 #12942 [Verbose] > │ ues)</i></td><td><div class="dni-plaintext"><pre>[ a, b ]</pr... │
00:04:12 #12943 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:12 #12944 [Verbose] >
00:04:12 #12945 [Verbose] > ╭─[ 1.08s - stdout ]───────────────────────────────────────────────────────────╮
00:04:12 #12946 [Verbose] > │ let rec method1 (v0 : (string [])) : (string []) = │
00:04:12 #12947 [Verbose] > │ v0 │
00:04:12 #12948 [Verbose] > │ and method0 () : string seq = │
00:04:12 #12949 [Verbose] > │ let v0 : string = "a" │
00:04:12 #12950 [Verbose] > │ let v1 : string = "b" │
00:04:12 #12951 [Verbose] > │ let v2 : (string []) = [|v0; v1|] │
00:04:12 #12952 [Verbose] > │ let v3 : (string []) = method1(v2) │
00:04:12 #12953 [Verbose] > │ let v4 : string seq = seq { for i = 0 to v3.Length - 1 do yield v3.[i] } │
00:04:12 #12954 [Verbose] > │ v4 │
00:04:12 #12955 [Verbose] > │ method0() │
00:04:12 #12956 [Verbose] > │ │
00:04:12 #12957 [Verbose] > │ │
00:04:12 #12958 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:12 #12959 [Verbose] >
00:04:12 #12960 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:12 #12961 [Verbose] > inl of_array forall dim t. (items : a dim t) : seq' t =
00:04:12 #12962 [Verbose] > items |> $'Seq.ofArray'
00:04:13 #12963 [Verbose] >
00:04:13 #12964 [Verbose] > ╭─[ 268.00ms - stdout ]────────────────────────────────────────────────────────╮
00:04:13 #12965 [Verbose] > │ () │
00:04:13 #12966 [Verbose] > │ │
00:04:13 #12967 [Verbose] > │ │
00:04:13 #12968 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:13 #12969 [Verbose] >
00:04:13 #12970 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:13 #12971 [Verbose] > // // test
00:04:13 #12972 [Verbose] >
00:04:13 #12973 [Verbose] > (a ;[["a"; "b"]] : _ i32 _)
00:04:13 #12974 [Verbose] > |> of_array
00:04:13 #12975 [Verbose] >
00:04:13 #12976 [Verbose] > ╭─[ 302.04ms - return value ]──────────────────────────────────────────────────╮
00:04:13 #12977 [Verbose] > │ <details open="open" class="dni-treeview"><summary><span │
00:04:13 #12978 [Verbose] > │ class="dni-code-hint"><code>[ a, b │
00:04:13 #12979 [Verbose] > │ ]</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td> │
00:04:13 #12980 [Verbose] > │ f</td><td><details class="dni-treeview"><summary><span │
00:04:13 #12981 [Verbose] > │ class="dni-code-hint"><code>Microsoft.FSharp.Collections.SeqModule+OfArray@1 │
00:04:13 #12982 [Verbose] > │ 010[ │
00:04:13 #12983 [Verbose] > │ System.String]</code></span></summary><div><table><thead><tr></tr></thead><t │
00:04:13 #12984 [Verbose] > │ body><tr><td>source</td><td><div class="dni-plaintext"><pre>[ a, b │
00:04:13 #12985 [Verbose] > │ ]</pre></div></td></tr></tbody></table></div></details></td></tr><tr><td><i> │
00:04:13 #12986 [Verbose] > │ (values)</i></td><td><div class="dni-plaintext"><pre>[ a, b │
00:04:13 #12987 [Verbose] > │ ]</pre></div></td></tr></tbody></table></div></details><style> │
00:04:13 #12988 [Verbose] > │ .dni-code-hint { │
00:04:13 #12989 [Verbose] > │ font-style: italic; │
00:04:13 #12990 [Verbose] > │ overflow: hidden; │
00:04:13 #12991 [Verbose] > │ white-space: nowrap; │
00:04:13 #12992 [Verbose] > │ } │
00:04:13 #12993 [Verbose] > │ .dni-tree... │
00:04:13 #12994 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:13 #12995 [Verbose] >
00:04:13 #12996 [Verbose] > ╭─[ 311.19ms - stdout ]────────────────────────────────────────────────────────╮
00:04:13 #12997 [Verbose] > │ let rec method1 (v0 : (string [])) : (string []) = │
00:04:13 #12998 [Verbose] > │ v0 │
00:04:13 #12999 [Verbose] > │ and method0 () : string seq = │
00:04:13 #13000 [Verbose] > │ let v0 : string = "a" │
00:04:13 #13001 [Verbose] > │ let v1 : string = "b" │
00:04:13 #13002 [Verbose] > │ let v2 : (string []) = [|v0; v1|] │
00:04:13 #13003 [Verbose] > │ let v3 : (string []) = method1(v2) │
00:04:13 #13004 [Verbose] > │ let v4 : ((string []) -> string seq) = Seq.ofArray │
00:04:13 #13005 [Verbose] > │ v4 v3 │
00:04:13 #13006 [Verbose] > │ method0() │
00:04:13 #13007 [Verbose] > │ │
00:04:13 #13008 [Verbose] > │ │
00:04:13 #13009 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:13 #13010 [Verbose] >
00:04:13 #13011 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:13 #13012 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:13 #13013 [Verbose] > │ ## to_array' │
00:04:13 #13014 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:13 #13015 [Verbose] >
00:04:13 #13016 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:13 #13017 [Verbose] > inl to_array' forall dim t. (items : seq' t) : a dim t =
00:04:13 #13018 [Verbose] > $'!items |> Seq.toArray'
00:04:13 #13019 [Verbose] >
00:04:13 #13020 [Verbose] > ╭─[ 295.42ms - stdout ]────────────────────────────────────────────────────────╮
00:04:13 #13021 [Verbose] > │ () │
00:04:13 #13022 [Verbose] > │ │
00:04:13 #13023 [Verbose] > │ │
00:04:13 #13024 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:13 #13025 [Verbose] >
00:04:13 #13026 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:13 #13027 [Verbose] > // // test
00:04:13 #13028 [Verbose] >
00:04:13 #13029 [Verbose] > (a ;[["a"; "b"]] : _ i32 _)
00:04:13 #13030 [Verbose] > |> of_array'
00:04:13 #13031 [Verbose] > |> to_array'
00:04:13 #13032 [Verbose] > |> _assert_eq (a ;[["a"; "b"]] : _ i32 _)
00:04:14 #13033 [Verbose] >
00:04:14 #13034 [Verbose] > ╭─[ 487.68ms - stdout ]────────────────────────────────────────────────────────╮
00:04:14 #13035 [Verbose] > │ let rec method1 (v0 : (string [])) : (string []) = │
00:04:14 #13036 [Verbose] > │ v0 │
00:04:14 #13037 [Verbose] > │ and method2 (v0 : (string []), v1 : (string []), v2 : int32) : bool = │
00:04:14 #13038 [Verbose] > │ let v3 : int32 = v0.Length │
00:04:14 #13039 [Verbose] > │ let v4 : bool = v2 < v3 │
00:04:14 #13040 [Verbose] > │ if v4 then │
00:04:14 #13041 [Verbose] > │ let v5 : string = v0.[int v2] │
00:04:14 #13042 [Verbose] > │ let v6 : string = v1.[int v2] │
00:04:14 #13043 [Verbose] > │ let v7 : bool = v5 = v6 │
00:04:14 #13044 [Verbose] > │ if v7 then │
00:04:14 #13045 [Verbose] > │ let v8 : int32 = v2 + 1 │
00:04:14 #13046 [Verbose] > │ method2(v0, v1, v8) │
00:04:14 #13047 [Verbose] > │ else │
00:04:14 #13048 [Verbose] > │ false │
00:04:14 #13049 [Verbose] > │ else │
00:04:14 #13050 [Verbose] > │ true │
00:04:14 #13051 [Verbose] > │ and method3 (v0 : bool) : bool = │
00:04:14 #13052 [Verbose] > │ v0 │
00:04:14 #13053 [Verbose] > │ and method0 () : unit = │
00:04:14 #13054 [Verbose] > │ let v0 : string = "a" │
00:04:14 #13055 [Verbose] > │ let v1 : string = "b" │
00:04:14 #13056 [Verbose] > │ let v2 : (string []) = [|v0; v1|] │
00:04:14 #13057 [Verbose] > │ let v3 : (string []) = method1(v2) │
00:04:14 #13058 [Verbose] > │ let v4 : string seq = seq { for i = 0 to v3.Length - 1 do yield v3.[i] } │
00:04:14 #13059 [Verbose] > │ let v5 : (string []) = v4 |> Seq.toArray │
00:04:14 #13060 [Verbose] > │ let v6 : (string []) = [|v0; v1|] │
00:04:14 #13061 [Verbose] > │ let v7 : (string []) = method1(v6) │
00:04:14 #13062 [Verbose] > │ let v8 : string = $"%A{v5}" │
00:04:14 #13063 [Verbose] > │ System.Console.WriteLine v8 │
00:04:14 #13064 [Verbose] > │ let v9 : int32 = v5.Length │
00:04:14 #13065 [Verbose] > │ let v10 : int32 = v7.Length │
00:04:14 #13066 [Verbose] > │ let v11 : bool = v9 = v10 │
00:04:14 #13067 [Verbose] > │ let v12 : bool = v11 <> true │
00:04:14 #13068 [Verbose] > │ let v15 : bool = │
00:04:14 #13069 [Verbose] > │ if v12 then │
00:04:14 #13070 [Verbose] > │ false │
00:04:14 #13071 [Verbose] > │ else │
00:04:14 #13072 [Verbose] > │ let v13 : int32 = 0 │
00:04:14 #13073 [Verbose] > │ method2(v5, v7, v13) │
00:04:14 #13074 [Verbose] > │ let v17 : bool = │
00:04:14 #13075 [Verbose] > │ if v15 then │
00:04:14 #13076 [Verbose] > │ true │
00:04:14 #13077 [Verbose] > │ else │
00:04:14 #13078 [Verbose] > │ method3(v15) │
00:04:14 #13079 [Verbose] > │ let v18 : string = $"__expect / actual: %A{v5} / expected: %A{v7}" │
00:04:14 #13080 [Verbose] > │ let v19 : bool = v17 = false │
00:04:14 #13081 [Verbose] > │ if v19 then │
00:04:14 #13082 [Verbose] > │ failwith<unit> v18 │
00:04:14 #13083 [Verbose] > │ method0() │
00:04:14 #13084 [Verbose] > │ │
00:04:14 #13085 [Verbose] > │ [|"a"; "b"|] │
00:04:14 #13086 [Verbose] > │ │
00:04:14 #13087 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:14 #13088 [Verbose] >
00:04:14 #13089 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:14 #13090 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:14 #13091 [Verbose] > │ ## seq │
00:04:14 #13092 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:14 #13093 [Verbose] >
00:04:14 #13094 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:14 #13095 [Verbose] > type seq dim el = dim -> option el
00:04:14 #13096 [Verbose] >
00:04:14 #13097 [Verbose] > ╭─[ 245.51ms - stdout ]────────────────────────────────────────────────────────╮
00:04:14 #13098 [Verbose] > │ () │
00:04:14 #13099 [Verbose] > │ │
00:04:14 #13100 [Verbose] > │ │
00:04:14 #13101 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:14 #13102 [Verbose] >
00:04:14 #13103 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:14 #13104 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:14 #13105 [Verbose] > │ ## try_item │
00:04:14 #13106 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:14 #13107 [Verbose] >
00:04:14 #13108 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:14 #13109 [Verbose] > inl try_item n s =
00:04:14 #13110 [Verbose] > n |> s
00:04:14 #13111 [Verbose] >
00:04:14 #13112 [Verbose] > ╭─[ 301.40ms - stdout ]────────────────────────────────────────────────────────╮
00:04:14 #13113 [Verbose] > │ () │
00:04:14 #13114 [Verbose] > │ │
00:04:14 #13115 [Verbose] > │ │
00:04:14 #13116 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:14 #13117 [Verbose] >
00:04:14 #13118 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:14 #13119 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:14 #13120 [Verbose] > │ ## from_list │
00:04:14 #13121 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:14 #13122 [Verbose] >
00:04:14 #13123 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:14 #13124 [Verbose] > inl from_list list =
00:04:14 #13125 [Verbose] > fun n =>
00:04:14 #13126 [Verbose] > list
00:04:14 #13127 [Verbose] > |> listm'.try_item n
00:04:15 #13128 [Verbose] >
00:04:15 #13129 [Verbose] > ╭─[ 254.54ms - stdout ]────────────────────────────────────────────────────────╮
00:04:15 #13130 [Verbose] > │ () │
00:04:15 #13131 [Verbose] > │ │
00:04:15 #13132 [Verbose] > │ │
00:04:15 #13133 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:15 #13134 [Verbose] >
00:04:15 #13135 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:15 #13136 [Verbose] > // // test
00:04:15 #13137 [Verbose] >
00:04:15 #13138 [Verbose] > listm.init 10i32 print_and_return
00:04:15 #13139 [Verbose] > |> from_list
00:04:15 #13140 [Verbose] > |> try_item 5i32
00:04:15 #13141 [Verbose] > |> _assert_eq (Some 5i32)
00:04:15 #13142 [Verbose] >
00:04:15 #13143 [Verbose] > ╭─[ 634.94ms - stdout ]────────────────────────────────────────────────────────╮
00:04:15 #13144 [Verbose] > │ type [<Struct>] US0 = │
00:04:15 #13145 [Verbose] > │ | US0_0 │
00:04:15 #13146 [Verbose] > │ | US0_1 of f1_0 : int32 │
00:04:15 #13147 [Verbose] > │ let rec method0 () : unit = │
00:04:15 #13148 [Verbose] > │ printfn $"print_and_return / x: {0}" │
00:04:15 #13149 [Verbose] > │ printfn $"print_and_return / x: {1}" │
00:04:15 #13150 [Verbose] > │ printfn $"print_and_return / x: {2}" │
00:04:15 #13151 [Verbose] > │ printfn $"print_and_return / x: {3}" │
00:04:15 #13152 [Verbose] > │ printfn $"print_and_return / x: {4}" │
00:04:15 #13153 [Verbose] > │ printfn $"print_and_return / x: {5}" │
00:04:15 #13154 [Verbose] > │ printfn $"print_and_return / x: {6}" │
00:04:15 #13155 [Verbose] > │ printfn $"print_and_return / x: {7}" │
00:04:15 #13156 [Verbose] > │ printfn $"print_and_return / x: {8}" │
00:04:15 #13157 [Verbose] > │ printfn $"print_and_return / x: {9}" │
00:04:15 #13158 [Verbose] > │ let v0 : US0 = US0_1(5) │
00:04:15 #13159 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:04:15 #13160 [Verbose] > │ System.Console.WriteLine v1 │
00:04:15 #13161 [Verbose] > │ let v5 : US0 = US0_1(5) │
00:04:15 #13162 [Verbose] > │ let v6 : US0 = US0_1(5) │
00:04:15 #13163 [Verbose] > │ let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}" │
00:04:15 #13164 [Verbose] > │ () │
00:04:15 #13165 [Verbose] > │ method0() │
00:04:15 #13166 [Verbose] > │ │
00:04:15 #13167 [Verbose] > │ print_and_return / x: 0 │
00:04:15 #13168 [Verbose] > │ print_and_return / x: 1 │
00:04:15 #13169 [Verbose] > │ print_and_return / x: 2 │
00:04:15 #13170 [Verbose] > │ print_and_return / x: 3 │
00:04:15 #13171 [Verbose] > │ print_and_return / x: 4 │
00:04:15 #13172 [Verbose] > │ print_and_return / x: 5 │
00:04:15 #13173 [Verbose] > │ print_and_return / x: 6 │
00:04:15 #13174 [Verbose] > │ print_and_return / x: 7 │
00:04:15 #13175 [Verbose] > │ print_and_return / x: 8 │
00:04:15 #13176 [Verbose] > │ print_and_return / x: 9 │
00:04:15 #13177 [Verbose] > │ US0_1 5 │
00:04:15 #13178 [Verbose] > │ │
00:04:15 #13179 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:15 #13180 [Verbose] >
00:04:15 #13181 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:15 #13182 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:15 #13183 [Verbose] > │ ## map │
00:04:15 #13184 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:15 #13185 [Verbose] >
00:04:15 #13186 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:15 #13187 [Verbose] > inl map fn s =
00:04:15 #13188 [Verbose] > fun n =>
00:04:15 #13189 [Verbose] > n
00:04:15 #13190 [Verbose] > |> s
00:04:15 #13191 [Verbose] > |> optionm.map fn
00:04:15 #13192 [Verbose] >
00:04:15 #13193 [Verbose] > ╭─[ 217.31ms - stdout ]────────────────────────────────────────────────────────╮
00:04:15 #13194 [Verbose] > │ () │
00:04:15 #13195 [Verbose] > │ │
00:04:15 #13196 [Verbose] > │ │
00:04:15 #13197 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:15 #13198 [Verbose] >
00:04:15 #13199 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:15 #13200 [Verbose] > // // test
00:04:15 #13201 [Verbose] >
00:04:15 #13202 [Verbose] > listm.init 10i32 id
00:04:15 #13203 [Verbose] > |> from_list
00:04:15 #13204 [Verbose] > |> map ((*) 2)
00:04:15 #13205 [Verbose] > |> try_item 5i32
00:04:15 #13206 [Verbose] > |> _assert_eq (Some 10i32)
00:04:16 #13207 [Verbose] >
00:04:16 #13208 [Verbose] > ╭─[ 303.18ms - stdout ]────────────────────────────────────────────────────────╮
00:04:16 #13209 [Verbose] > │ type [<Struct>] US0 = │
00:04:16 #13210 [Verbose] > │ | US0_0 │
00:04:16 #13211 [Verbose] > │ | US0_1 of f1_0 : int32 │
00:04:16 #13212 [Verbose] > │ let rec method0 () : unit = │
00:04:16 #13213 [Verbose] > │ let v0 : US0 = US0_1(10) │
00:04:16 #13214 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:04:16 #13215 [Verbose] > │ System.Console.WriteLine v1 │
00:04:16 #13216 [Verbose] > │ let v5 : US0 = US0_1(10) │
00:04:16 #13217 [Verbose] > │ let v6 : US0 = US0_1(10) │
00:04:16 #13218 [Verbose] > │ let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}" │
00:04:16 #13219 [Verbose] > │ () │
00:04:16 #13220 [Verbose] > │ method0() │
00:04:16 #13221 [Verbose] > │ │
00:04:16 #13222 [Verbose] > │ US0_1 10 │
00:04:16 #13223 [Verbose] > │ │
00:04:16 #13224 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:16 #13225 [Verbose] >
00:04:16 #13226 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:16 #13227 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:16 #13228 [Verbose] > │ ## mapi │
00:04:16 #13229 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:16 #13230 [Verbose] >
00:04:16 #13231 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:16 #13232 [Verbose] > inl mapi fn s =
00:04:16 #13233 [Verbose] > fun n =>
00:04:16 #13234 [Verbose] > n
00:04:16 #13235 [Verbose] > |> s
00:04:16 #13236 [Verbose] > |> optionm.map (fn n)
00:04:16 #13237 [Verbose] >
00:04:16 #13238 [Verbose] > ╭─[ 221.64ms - stdout ]────────────────────────────────────────────────────────╮
00:04:16 #13239 [Verbose] > │ () │
00:04:16 #13240 [Verbose] > │ │
00:04:16 #13241 [Verbose] > │ │
00:04:16 #13242 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:16 #13243 [Verbose] >
00:04:16 #13244 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:16 #13245 [Verbose] > // // test
00:04:16 #13246 [Verbose] >
00:04:16 #13247 [Verbose] > listm.init 10i32 print_and_return
00:04:16 #13248 [Verbose] > |> from_list
00:04:16 #13249 [Verbose] > |> mapi fun i x => i + x
00:04:16 #13250 [Verbose] > |> try_item 5i32
00:04:16 #13251 [Verbose] > |> _assert_eq (Some 10i32)
00:04:16 #13252 [Verbose] >
00:04:16 #13253 [Verbose] > ╭─[ 300.99ms - stdout ]────────────────────────────────────────────────────────╮
00:04:16 #13254 [Verbose] > │ type [<Struct>] US0 = │
00:04:16 #13255 [Verbose] > │ | US0_0 │
00:04:16 #13256 [Verbose] > │ | US0_1 of f1_0 : int32 │
00:04:16 #13257 [Verbose] > │ let rec method0 () : unit = │
00:04:16 #13258 [Verbose] > │ printfn $"print_and_return / x: {0}" │
00:04:16 #13259 [Verbose] > │ printfn $"print_and_return / x: {1}" │
00:04:16 #13260 [Verbose] > │ printfn $"print_and_return / x: {2}" │
00:04:16 #13261 [Verbose] > │ printfn $"print_and_return / x: {3}" │
00:04:16 #13262 [Verbose] > │ printfn $"print_and_return / x: {4}" │
00:04:16 #13263 [Verbose] > │ printfn $"print_and_return / x: {5}" │
00:04:16 #13264 [Verbose] > │ printfn $"print_and_return / x: {6}" │
00:04:16 #13265 [Verbose] > │ printfn $"print_and_return / x: {7}" │
00:04:16 #13266 [Verbose] > │ printfn $"print_and_return / x: {8}" │
00:04:16 #13267 [Verbose] > │ printfn $"print_and_return / x: {9}" │
00:04:16 #13268 [Verbose] > │ let v0 : US0 = US0_1(10) │
00:04:16 #13269 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:04:16 #13270 [Verbose] > │ System.Console.WriteLine v1 │
00:04:16 #13271 [Verbose] > │ let v5 : US0 = US0_1(10) │
00:04:16 #13272 [Verbose] > │ let v6 : US0 = US0_1(10) │
00:04:16 #13273 [Verbose] > │ let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}" │
00:04:16 #13274 [Verbose] > │ () │
00:04:16 #13275 [Verbose] > │ method0() │
00:04:16 #13276 [Verbose] > │ │
00:04:16 #13277 [Verbose] > │ print_and_return / x: 0 │
00:04:16 #13278 [Verbose] > │ print_and_return / x: 1 │
00:04:16 #13279 [Verbose] > │ print_and_return / x: 2 │
00:04:16 #13280 [Verbose] > │ print_and_return / x: 3 │
00:04:16 #13281 [Verbose] > │ print_and_return / x: 4 │
00:04:16 #13282 [Verbose] > │ print_and_return / x: 5 │
00:04:16 #13283 [Verbose] > │ print_and_return / x: 6 │
00:04:16 #13284 [Verbose] > │ print_and_return / x: 7 │
00:04:16 #13285 [Verbose] > │ print_and_return / x: 8 │
00:04:16 #13286 [Verbose] > │ print_and_return / x: 9 │
00:04:16 #13287 [Verbose] > │ US0_1 10 │
00:04:16 #13288 [Verbose] > │ │
00:04:16 #13289 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:16 #13290 [Verbose] >
00:04:16 #13291 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:16 #13292 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:16 #13293 [Verbose] > │ ## choose │
00:04:16 #13294 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:16 #13295 [Verbose] >
00:04:16 #13296 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:16 #13297 [Verbose] > inl choose forall dim {number} t u. (fn : t -> option u) (s : seq dim t) : seq
00:04:16 #13298 [Verbose] > dim u =
00:04:16 #13299 [Verbose] > fun n =>
00:04:16 #13300 [Verbose] > inl rec body fn s i i' =
00:04:16 #13301 [Verbose] > match i |> s with
00:04:16 #13302 [Verbose] > | None => None
00:04:16 #13303 [Verbose] > | Some x =>
00:04:16 #13304 [Verbose] > match x |> fn with
00:04:16 #13305 [Verbose] > | Some x when n = i' => Some x
00:04:16 #13306 [Verbose] > | Some _ => loop (i + 1) (i' + 1)
00:04:16 #13307 [Verbose] > | _ => loop (i + 1) i'
00:04:16 #13308 [Verbose] > and inl loop i i' =
00:04:16 #13309 [Verbose] > if n |> var_is |> not
00:04:16 #13310 [Verbose] > then body fn s i i'
00:04:16 #13311 [Verbose] > else
00:04:16 #13312 [Verbose] > inl fn = join fn
00:04:16 #13313 [Verbose] > inl s = join s
00:04:16 #13314 [Verbose] > join body fn s i i'
00:04:16 #13315 [Verbose] > loop 0 0
00:04:17 #13316 [Verbose] >
00:04:17 #13317 [Verbose] > ╭─[ 242.70ms - stdout ]────────────────────────────────────────────────────────╮
00:04:17 #13318 [Verbose] > │ () │
00:04:17 #13319 [Verbose] > │ │
00:04:17 #13320 [Verbose] > │ │
00:04:17 #13321 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:17 #13322 [Verbose] >
00:04:17 #13323 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:17 #13324 [Verbose] > // // test
00:04:17 #13325 [Verbose] >
00:04:17 #13326 [Verbose] > listm.init 10i32 print_and_return
00:04:17 #13327 [Verbose] > |> from_list
00:04:17 #13328 [Verbose] > |> choose (fun x => if x % 2 = 0 then Some x else None)
00:04:17 #13329 [Verbose] > |> try_item 1i32
00:04:17 #13330 [Verbose] > |> _assert_eq (Some 2i32)
00:04:17 #13331 [Verbose] >
00:04:17 #13332 [Verbose] > ╭─[ 332.45ms - stdout ]────────────────────────────────────────────────────────╮
00:04:17 #13333 [Verbose] > │ type [<Struct>] US0 = │
00:04:17 #13334 [Verbose] > │ | US0_0 │
00:04:17 #13335 [Verbose] > │ | US0_1 of f1_0 : int32 │
00:04:17 #13336 [Verbose] > │ let rec method0 () : unit = │
00:04:17 #13337 [Verbose] > │ printfn $"print_and_return / x: {0}" │
00:04:17 #13338 [Verbose] > │ printfn $"print_and_return / x: {1}" │
00:04:17 #13339 [Verbose] > │ printfn $"print_and_return / x: {2}" │
00:04:17 #13340 [Verbose] > │ printfn $"print_and_return / x: {3}" │
00:04:17 #13341 [Verbose] > │ printfn $"print_and_return / x: {4}" │
00:04:17 #13342 [Verbose] > │ printfn $"print_and_return / x: {5}" │
00:04:17 #13343 [Verbose] > │ printfn $"print_and_return / x: {6}" │
00:04:17 #13344 [Verbose] > │ printfn $"print_and_return / x: {7}" │
00:04:17 #13345 [Verbose] > │ printfn $"print_and_return / x: {8}" │
00:04:17 #13346 [Verbose] > │ printfn $"print_and_return / x: {9}" │
00:04:17 #13347 [Verbose] > │ let v0 : US0 = US0_1(2) │
00:04:17 #13348 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:04:17 #13349 [Verbose] > │ System.Console.WriteLine v1 │
00:04:17 #13350 [Verbose] > │ let v5 : US0 = US0_1(2) │
00:04:17 #13351 [Verbose] > │ let v6 : US0 = US0_1(2) │
00:04:17 #13352 [Verbose] > │ let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}" │
00:04:17 #13353 [Verbose] > │ () │
00:04:17 #13354 [Verbose] > │ method0() │
00:04:17 #13355 [Verbose] > │ │
00:04:17 #13356 [Verbose] > │ print_and_return / x: 0 │
00:04:17 #13357 [Verbose] > │ print_and_return / x: 1 │
00:04:17 #13358 [Verbose] > │ print_and_return / x: 2 │
00:04:17 #13359 [Verbose] > │ print_and_return / x: 3 │
00:04:17 #13360 [Verbose] > │ print_and_return / x: 4 │
00:04:17 #13361 [Verbose] > │ print_and_return / x: 5 │
00:04:17 #13362 [Verbose] > │ print_and_return / x: 6 │
00:04:17 #13363 [Verbose] > │ print_and_return / x: 7 │
00:04:17 #13364 [Verbose] > │ print_and_return / x: 8 │
00:04:17 #13365 [Verbose] > │ print_and_return / x: 9 │
00:04:17 #13366 [Verbose] > │ US0_1 2 │
00:04:17 #13367 [Verbose] > │ │
00:04:17 #13368 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:17 #13369 [Verbose] >
00:04:17 #13370 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:17 #13371 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:17 #13372 [Verbose] > │ ## indexed │
00:04:17 #13373 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:17 #13374 [Verbose] >
00:04:17 #13375 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:17 #13376 [Verbose] > inl indexed s =
00:04:17 #13377 [Verbose] > s
00:04:17 #13378 [Verbose] > |> mapi fun i x =>
00:04:17 #13379 [Verbose] > i, x
00:04:17 #13380 [Verbose] >
00:04:17 #13381 [Verbose] > ╭─[ 286.55ms - stdout ]────────────────────────────────────────────────────────╮
00:04:17 #13382 [Verbose] > │ () │
00:04:17 #13383 [Verbose] > │ │
00:04:17 #13384 [Verbose] > │ │
00:04:17 #13385 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:17 #13386 [Verbose] >
00:04:17 #13387 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:17 #13388 [Verbose] > // // test
00:04:17 #13389 [Verbose] >
00:04:17 #13390 [Verbose] > listm.init 10i32 ((*) 2)
00:04:17 #13391 [Verbose] > |> from_list
00:04:17 #13392 [Verbose] > |> indexed
00:04:17 #13393 [Verbose] > |> try_item 5i32
00:04:17 #13394 [Verbose] > |> _assert_eq (Some (5i32, 10i32))
00:04:17 #13395 [Verbose] >
00:04:17 #13396 [Verbose] > ╭─[ 261.01ms - stdout ]────────────────────────────────────────────────────────╮
00:04:17 #13397 [Verbose] > │ type [<Struct>] US0 = │
00:04:17 #13398 [Verbose] > │ | US0_0 │
00:04:17 #13399 [Verbose] > │ | US0_1 of f1_0 : int32 * f1_1 : int32 │
00:04:17 #13400 [Verbose] > │ let rec method0 () : unit = │
00:04:17 #13401 [Verbose] > │ let v0 : US0 = US0_1(5, 10) │
00:04:17 #13402 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:04:17 #13403 [Verbose] > │ System.Console.WriteLine v1 │
00:04:17 #13404 [Verbose] > │ let v5 : US0 = US0_1(5, 10) │
00:04:17 #13405 [Verbose] > │ let v6 : US0 = US0_1(5, 10) │
00:04:17 #13406 [Verbose] > │ let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}" │
00:04:17 #13407 [Verbose] > │ () │
00:04:17 #13408 [Verbose] > │ method0() │
00:04:17 #13409 [Verbose] > │ │
00:04:17 #13410 [Verbose] > │ US0_1 (5, 10) │
00:04:17 #13411 [Verbose] > │ │
00:04:17 #13412 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:17 #13413 [Verbose] >
00:04:17 #13414 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:17 #13415 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:17 #13416 [Verbose] > │ ## zip │
00:04:17 #13417 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:17 #13418 [Verbose] >
00:04:17 #13419 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:17 #13420 [Verbose] > inl zip n seq1 seq2 =
00:04:17 #13421 [Verbose] > seq1 n, seq2 n
00:04:18 #13422 [Verbose] >
00:04:18 #13423 [Verbose] > ╭─[ 333.74ms - stdout ]────────────────────────────────────────────────────────╮
00:04:18 #13424 [Verbose] > │ () │
00:04:18 #13425 [Verbose] > │ │
00:04:18 #13426 [Verbose] > │ │
00:04:18 #13427 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:18 #13428 [Verbose] >
00:04:18 #13429 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:18 #13430 [Verbose] > // // test
00:04:18 #13431 [Verbose] >
00:04:18 #13432 [Verbose] > ((listm.init 10i32 id |> from_list), (listm.init 10i32 ((*) 2) |> from_list))
00:04:18 #13433 [Verbose] > ||> zip 5i32
00:04:18 #13434 [Verbose] > |> _assert_eq (Some 5, Some 10)
00:04:18 #13435 [Verbose] >
00:04:18 #13436 [Verbose] > ╭─[ 273.23ms - stdout ]────────────────────────────────────────────────────────╮
00:04:18 #13437 [Verbose] > │ type [<Struct>] US0 = │
00:04:18 #13438 [Verbose] > │ | US0_0 │
00:04:18 #13439 [Verbose] > │ | US0_1 of f1_0 : int32 │
00:04:18 #13440 [Verbose] > │ let rec method0 () : unit = │
00:04:18 #13441 [Verbose] > │ let v0 : US0 = US0_1(5) │
00:04:18 #13442 [Verbose] > │ let v1 : US0 = US0_1(10) │
00:04:18 #13443 [Verbose] > │ let v2 : string = $"%A{struct (v0, v1)}" │
00:04:18 #13444 [Verbose] > │ System.Console.WriteLine v2 │
00:04:18 #13445 [Verbose] > │ let v9 : US0 = US0_1(5) │
00:04:18 #13446 [Verbose] > │ let v10 : US0 = US0_1(10) │
00:04:18 #13447 [Verbose] > │ let v11 : US0 = US0_1(5) │
00:04:18 #13448 [Verbose] > │ let v12 : US0 = US0_1(10) │
00:04:18 #13449 [Verbose] > │ let v13 : string = $"__expect / actual: %A{struct (v9, v10)} / expected: │
00:04:18 #13450 [Verbose] > │ %A{struct (v11, v12)}" │
00:04:18 #13451 [Verbose] > │ () │
00:04:18 #13452 [Verbose] > │ method0() │
00:04:18 #13453 [Verbose] > │ │
00:04:18 #13454 [Verbose] > │ struct (US0_1 5, US0_1 10) │
00:04:18 #13455 [Verbose] > │ │
00:04:18 #13456 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:18 #13457 [Verbose] >
00:04:18 #13458 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:18 #13459 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:18 #13460 [Verbose] > │ ## zip_with │
00:04:18 #13461 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:18 #13462 [Verbose] >
00:04:18 #13463 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:18 #13464 [Verbose] > inl zip_with fn seq1 seq2 =
00:04:18 #13465 [Verbose] > fun n =>
00:04:18 #13466 [Verbose] > fn (seq1 n) (seq2 n)
00:04:18 #13467 [Verbose] >
00:04:18 #13468 [Verbose] > ╭─[ 247.39ms - stdout ]────────────────────────────────────────────────────────╮
00:04:18 #13469 [Verbose] > │ () │
00:04:18 #13470 [Verbose] > │ │
00:04:18 #13471 [Verbose] > │ │
00:04:18 #13472 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:18 #13473 [Verbose] >
00:04:18 #13474 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:18 #13475 [Verbose] > // // test
00:04:18 #13476 [Verbose] >
00:04:18 #13477 [Verbose] > ((listm.init 10i32 id |> from_list), (listm.init 10i32 ((*) 2) |> from_list))
00:04:18 #13478 [Verbose] > ||> zip_with (optionm'.choose (+))
00:04:18 #13479 [Verbose] > |> try_item 2i32
00:04:18 #13480 [Verbose] > |> _assert_eq (Some 6)
00:04:19 #13481 [Verbose] >
00:04:19 #13482 [Verbose] > ╭─[ 361.75ms - stdout ]────────────────────────────────────────────────────────╮
00:04:19 #13483 [Verbose] > │ type [<Struct>] US0 = │
00:04:19 #13484 [Verbose] > │ | US0_0 │
00:04:19 #13485 [Verbose] > │ | US0_1 of f1_0 : int32 │
00:04:19 #13486 [Verbose] > │ let rec method0 () : unit = │
00:04:19 #13487 [Verbose] > │ let v0 : US0 = US0_1(6) │
00:04:19 #13488 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:04:19 #13489 [Verbose] > │ System.Console.WriteLine v1 │
00:04:19 #13490 [Verbose] > │ let v5 : US0 = US0_1(6) │
00:04:19 #13491 [Verbose] > │ let v6 : US0 = US0_1(6) │
00:04:19 #13492 [Verbose] > │ let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}" │
00:04:19 #13493 [Verbose] > │ () │
00:04:19 #13494 [Verbose] > │ method0() │
00:04:19 #13495 [Verbose] > │ │
00:04:19 #13496 [Verbose] > │ US0_1 6 │
00:04:19 #13497 [Verbose] > │ │
00:04:19 #13498 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:19 #13499 [Verbose] >
00:04:19 #13500 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:19 #13501 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:19 #13502 [Verbose] > │ ## fold │
00:04:19 #13503 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:19 #13504 [Verbose] >
00:04:19 #13505 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:19 #13506 [Verbose] > inl fold fn init seq =
00:04:19 #13507 [Verbose] > inl rec loop acc n =
00:04:19 #13508 [Verbose] > match seq n with
00:04:19 #13509 [Verbose] > | Some x => loop (fn acc x) (n + 1)
00:04:19 #13510 [Verbose] > | None => acc
00:04:19 #13511 [Verbose] > loop init 0
00:04:19 #13512 [Verbose] >
00:04:19 #13513 [Verbose] > inl fold_ fn init seq =
00:04:19 #13514 [Verbose] > let rec loop acc n =
00:04:19 #13515 [Verbose] > match seq n with
00:04:19 #13516 [Verbose] > | Some x => loop (fn acc x) (n + 1)
00:04:19 #13517 [Verbose] > | None => acc
00:04:19 #13518 [Verbose] > loop init 0
00:04:19 #13519 [Verbose] >
00:04:19 #13520 [Verbose] > ╭─[ 236.54ms - stdout ]────────────────────────────────────────────────────────╮
00:04:19 #13521 [Verbose] > │ () │
00:04:19 #13522 [Verbose] > │ │
00:04:19 #13523 [Verbose] > │ │
00:04:19 #13524 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:19 #13525 [Verbose] >
00:04:19 #13526 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:19 #13527 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:19 #13528 [Verbose] > │ ## sum │
00:04:19 #13529 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:19 #13530 [Verbose] >
00:04:19 #13531 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:19 #13532 [Verbose] > inl sum seq =
00:04:19 #13533 [Verbose] > seq |> fold (+) 0
00:04:19 #13534 [Verbose] >
00:04:19 #13535 [Verbose] > inl sum_ seq =
00:04:19 #13536 [Verbose] > seq |> fold_ (+) 0
00:04:19 #13537 [Verbose] >
00:04:19 #13538 [Verbose] > ╭─[ 263.93ms - stdout ]────────────────────────────────────────────────────────╮
00:04:19 #13539 [Verbose] > │ () │
00:04:19 #13540 [Verbose] > │ │
00:04:19 #13541 [Verbose] > │ │
00:04:19 #13542 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:19 #13543 [Verbose] >
00:04:19 #13544 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:19 #13545 [Verbose] > // // test
00:04:19 #13546 [Verbose] >
00:04:19 #13547 [Verbose] > listm.init 10i32 id
00:04:19 #13548 [Verbose] > |> from_list
00:04:19 #13549 [Verbose] > |> fun f (n : i32) => f n
00:04:19 #13550 [Verbose] > |> sum
00:04:19 #13551 [Verbose] > |> _assert_eq 45
00:04:19 #13552 [Verbose] >
00:04:19 #13553 [Verbose] > ╭─[ 252.35ms - stdout ]────────────────────────────────────────────────────────╮
00:04:19 #13554 [Verbose] > │ let rec method0 () : unit = │
00:04:19 #13555 [Verbose] > │ let v0 : string = $"%A{45}" │
00:04:19 #13556 [Verbose] > │ System.Console.WriteLine v0 │
00:04:19 #13557 [Verbose] > │ let v1 : string = $"__expect / actual: %A{45} / expected: %A{45}" │
00:04:19 #13558 [Verbose] > │ () │
00:04:19 #13559 [Verbose] > │ method0() │
00:04:19 #13560 [Verbose] > │ │
00:04:19 #13561 [Verbose] > │ 45 │
00:04:19 #13562 [Verbose] > │ │
00:04:19 #13563 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:19 #13564 [Verbose] >
00:04:19 #13565 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:19 #13566 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:19 #13567 [Verbose] > │ ## to_list │
00:04:19 #13568 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:19 #13569 [Verbose] >
00:04:19 #13570 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:19 #13571 [Verbose] > inl to_list seq =
00:04:19 #13572 [Verbose] > seq
00:04:19 #13573 [Verbose] > |> fold (fun acc x => x :: acc) [[]]
00:04:19 #13574 [Verbose] > |> listm.rev
00:04:19 #13575 [Verbose] >
00:04:19 #13576 [Verbose] > inl to_list_ seq =
00:04:19 #13577 [Verbose] > seq
00:04:19 #13578 [Verbose] > |> fold_ (fun acc x => x :: acc) [[]]
00:04:19 #13579 [Verbose] > |> listm.rev
00:04:20 #13580 [Verbose] >
00:04:20 #13581 [Verbose] > ╭─[ 210.30ms - stdout ]────────────────────────────────────────────────────────╮
00:04:20 #13582 [Verbose] > │ () │
00:04:20 #13583 [Verbose] > │ │
00:04:20 #13584 [Verbose] > │ │
00:04:20 #13585 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:20 #13586 [Verbose] >
00:04:20 #13587 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:20 #13588 [Verbose] > // // test
00:04:20 #13589 [Verbose] >
00:04:20 #13590 [Verbose] > listm.init 10i32 id
00:04:20 #13591 [Verbose] > |> from_list
00:04:20 #13592 [Verbose] > |> fun f (n : i32) => f n
00:04:20 #13593 [Verbose] > |> to_list
00:04:20 #13594 [Verbose] > |> _assert_eq (listm.init 10i32 id)
00:04:20 #13595 [Verbose] >
00:04:20 #13596 [Verbose] > ╭─[ 317.44ms - stdout ]────────────────────────────────────────────────────────╮
00:04:20 #13597 [Verbose] > │ type UH0 = │
00:04:20 #13598 [Verbose] > │ | UH0_0 of int32 * UH0 │
00:04:20 #13599 [Verbose] > │ | UH0_1 │
00:04:20 #13600 [Verbose] > │ let rec method0 () : unit = │
00:04:20 #13601 [Verbose] > │ let v0 : UH0 = UH0_1 │
00:04:20 #13602 [Verbose] > │ let v1 : UH0 = UH0_0(9, v0) │
00:04:20 #13603 [Verbose] > │ let v2 : UH0 = UH0_0(8, v1) │
00:04:20 #13604 [Verbose] > │ let v3 : UH0 = UH0_0(7, v2) │
00:04:20 #13605 [Verbose] > │ let v4 : UH0 = UH0_0(6, v3) │
00:04:20 #13606 [Verbose] > │ let v5 : UH0 = UH0_0(5, v4) │
00:04:20 #13607 [Verbose] > │ let v6 : UH0 = UH0_0(4, v5) │
00:04:20 #13608 [Verbose] > │ let v7 : UH0 = UH0_0(3, v6) │
00:04:20 #13609 [Verbose] > │ let v8 : UH0 = UH0_0(2, v7) │
00:04:20 #13610 [Verbose] > │ let v9 : UH0 = UH0_0(1, v8) │
00:04:20 #13611 [Verbose] > │ let v10 : UH0 = UH0_0(0, v9) │
00:04:20 #13612 [Verbose] > │ let v11 : string = $"%A{v10}" │
00:04:20 #13613 [Verbose] > │ System.Console.WriteLine v11 │
00:04:20 #13614 [Verbose] > │ let v100 : UH0 = UH0_1 │
00:04:20 #13615 [Verbose] > │ let v101 : UH0 = UH0_0(9, v100) │
00:04:20 #13616 [Verbose] > │ let v102 : UH0 = UH0_0(8, v101) │
00:04:20 #13617 [Verbose] > │ let v103 : UH0 = UH0_0(7, v102) │
00:04:20 #13618 [Verbose] > │ let v104 : UH0 = UH0_0(6, v103) │
00:04:20 #13619 [Verbose] > │ let v105 : UH0 = UH0_0(5, v104) │
00:04:20 #13620 [Verbose] > │ let v106 : UH0 = UH0_0(4, v105) │
00:04:20 #13621 [Verbose] > │ let v107 : UH0 = UH0_0(3, v106) │
00:04:20 #13622 [Verbose] > │ let v108 : UH0 = UH0_0(2, v107) │
00:04:20 #13623 [Verbose] > │ let v109 : UH0 = UH0_0(1, v108) │
00:04:20 #13624 [Verbose] > │ let v110 : UH0 = UH0_0(0, v109) │
00:04:20 #13625 [Verbose] > │ let v111 : UH0 = UH0_1 │
00:04:20 #13626 [Verbose] > │ let v112 : UH0 = UH0_0(9, v111) │
00:04:20 #13627 [Verbose] > │ let v113 : UH0 = UH0_0(8, v112) │
00:04:20 #13628 [Verbose] > │ let v114 : UH0 = UH0_0(7, v113) │
00:04:20 #13629 [Verbose] > │ let v115 : UH0 = UH0_0(6, v114) │
00:04:20 #13630 [Verbose] > │ let v116 : UH0 = UH0_0(5, v115) │
00:04:20 #13631 [Verbose] > │ let v117 : UH0 = UH0_0(4, v116) │
00:04:20 #13632 [Verbose] > │ let v118 : UH0 = UH0_0(3, v117) │
00:04:20 #13633 [Verbose] > │ let v119 : UH0 = UH0_0(2, v118) │
00:04:20 #13634 [Verbose] > │ let v120 : UH0 = UH0_0(1, v119) │
00:04:20 #13635 [Verbose] > │ let v121 : UH0 = UH0_0(0, v120) │
00:04:20 #13636 [Verbose] > │ let v122 : string = $"__expect / actual: %A{v110} / expected: %A{v121}" │
00:04:20 #13637 [Verbose] > │ () │
00:04:20 #13638 [Verbose] > │ method0() │
00:04:20 #13639 [Verbose] > │ │
00:04:20 #13640 [Verbose] > │ UH0_0 │
00:04:20 #13641 [Verbose] > │ (0, │
00:04:20 #13642 [Verbose] > │ UH0_0 │
00:04:20 #13643 [Verbose] > │ (1, │
00:04:20 #13644 [Verbose] > │ UH0_0 │
00:04:20 #13645 [Verbose] > │ (2, │
00:04:20 #13646 [Verbose] > │ UH0_0 │
00:04:20 #13647 [Verbose] > │ (3, │
00:04:20 #13648 [Verbose] > │ UH0_0 │
00:04:20 #13649 [Verbose] > │ (4, UH0_0 (5, UH0_0 (6, UH0_0 (7, UH0_0 (8, UH0_0 (9, │
00:04:20 #13650 [Verbose] > │ UH0_1)))))))))) │
00:04:20 #13651 [Verbose] > │ │
00:04:20 #13652 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:20 #13653 [Verbose] >
00:04:20 #13654 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:20 #13655 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:20 #13656 [Verbose] > │ ## from_array │
00:04:20 #13657 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:20 #13658 [Verbose] >
00:04:20 #13659 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:20 #13660 [Verbose] > inl from_array forall dim {number; int} el. (array : a dim el) : seq dim el =
00:04:20 #13661 [Verbose] > fun n =>
00:04:20 #13662 [Verbose] > if n >= length array
00:04:20 #13663 [Verbose] > then None
00:04:20 #13664 [Verbose] > else index array n |> Some
00:04:20 #13665 [Verbose] >
00:04:20 #13666 [Verbose] > ╭─[ 224.40ms - stdout ]────────────────────────────────────────────────────────╮
00:04:20 #13667 [Verbose] > │ () │
00:04:20 #13668 [Verbose] > │ │
00:04:20 #13669 [Verbose] > │ │
00:04:20 #13670 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:20 #13671 [Verbose] >
00:04:20 #13672 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:20 #13673 [Verbose] > // // test
00:04:20 #13674 [Verbose] >
00:04:20 #13675 [Verbose] > a ;[[ 1; 2; 3 ]]
00:04:20 #13676 [Verbose] > |> from_array
00:04:20 #13677 [Verbose] > |> try_item 1i32
00:04:20 #13678 [Verbose] > |> _assert_eq (Some 2i32)
00:04:21 #13679 [Verbose] >
00:04:21 #13680 [Verbose] > ╭─[ 328.72ms - stdout ]────────────────────────────────────────────────────────╮
00:04:21 #13681 [Verbose] > │ type [<Struct>] US0 = │
00:04:21 #13682 [Verbose] > │ | US0_0 │
00:04:21 #13683 [Verbose] > │ | US0_1 of f1_0 : int32 │
00:04:21 #13684 [Verbose] > │ let rec method1 (v0 : (int32 [])) : (int32 []) = │
00:04:21 #13685 [Verbose] > │ v0 │
00:04:21 #13686 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:04:21 #13687 [Verbose] > │ v0 │
00:04:21 #13688 [Verbose] > │ and method0 () : unit = │
00:04:21 #13689 [Verbose] > │ let v0 : (int32 []) = [|1; 2; 3|] │
00:04:21 #13690 [Verbose] > │ let v1 : (int32 []) = method1(v0) │
00:04:21 #13691 [Verbose] > │ let v2 : int32 = v1.Length │
00:04:21 #13692 [Verbose] > │ let v3 : bool = 1 >= v2 │
00:04:21 #13693 [Verbose] > │ let v7 : US0 = │
00:04:21 #13694 [Verbose] > │ if v3 then │
00:04:21 #13695 [Verbose] > │ US0_0 │
00:04:21 #13696 [Verbose] > │ else │
00:04:21 #13697 [Verbose] > │ let v5 : int32 = v1.[int 1] │
00:04:21 #13698 [Verbose] > │ US0_1(v5) │
00:04:21 #13699 [Verbose] > │ let v8 : string = $"%A{v7}" │
00:04:21 #13700 [Verbose] > │ System.Console.WriteLine v8 │
00:04:21 #13701 [Verbose] > │ let v12 : bool = │
00:04:21 #13702 [Verbose] > │ match v7 with │
00:04:21 #13703 [Verbose] > │ | US0_1(v10) -> (* Some *) │
00:04:21 #13704 [Verbose] > │ let v11 : bool = v10 = 2 │
00:04:21 #13705 [Verbose] > │ v11 │
00:04:21 #13706 [Verbose] > │ | _ -> │
00:04:21 #13707 [Verbose] > │ false │
00:04:21 #13708 [Verbose] > │ let v14 : bool = │
00:04:21 #13709 [Verbose] > │ if v12 then │
00:04:21 #13710 [Verbose] > │ true │
00:04:21 #13711 [Verbose] > │ else │
00:04:21 #13712 [Verbose] > │ method2(v12) │
00:04:21 #13713 [Verbose] > │ let v15 : US0 = US0_1(2) │
00:04:21 #13714 [Verbose] > │ let v16 : string = $"__expect / actual: %A{v7} / expected: %A{v15}" │
00:04:21 #13715 [Verbose] > │ let v17 : bool = v14 = false │
00:04:21 #13716 [Verbose] > │ if v17 then │
00:04:21 #13717 [Verbose] > │ failwith<unit> v16 │
00:04:21 #13718 [Verbose] > │ method0() │
00:04:21 #13719 [Verbose] > │ │
00:04:21 #13720 [Verbose] > │ US0_1 2 │
00:04:21 #13721 [Verbose] > │ │
00:04:21 #13722 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:21 #13723 [Verbose] >
00:04:21 #13724 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:21 #13725 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:21 #13726 [Verbose] > │ ## to_array │
00:04:21 #13727 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:21 #13728 [Verbose] >
00:04:21 #13729 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:21 #13730 [Verbose] > inl to_array seq =
00:04:21 #13731 [Verbose] > inl ar = a ;[[]] |> mut
00:04:21 #13732 [Verbose] > ((), seq)
00:04:21 #13733 [Verbose] > ||> fold fun _ x =>
00:04:21 #13734 [Verbose] > ar <- *ar /@ a ;[[x]]
00:04:21 #13735 [Verbose] > *ar
00:04:21 #13736 [Verbose] >
00:04:21 #13737 [Verbose] > inl to_array_ seq =
00:04:21 #13738 [Verbose] > inl ar = a ;[[]] |> mut
00:04:21 #13739 [Verbose] > ((), seq)
00:04:21 #13740 [Verbose] > ||> fold_ fun _ x =>
00:04:21 #13741 [Verbose] > ar <- *ar /@ a ;[[x]]
00:04:21 #13742 [Verbose] > *ar
00:04:21 #13743 [Verbose] >
00:04:21 #13744 [Verbose] > ╭─[ 263.57ms - stdout ]────────────────────────────────────────────────────────╮
00:04:21 #13745 [Verbose] > │ () │
00:04:21 #13746 [Verbose] > │ │
00:04:21 #13747 [Verbose] > │ │
00:04:21 #13748 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:21 #13749 [Verbose] >
00:04:21 #13750 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:21 #13751 [Verbose] > // // test
00:04:21 #13752 [Verbose] >
00:04:21 #13753 [Verbose] > listm.init 10i32 id
00:04:21 #13754 [Verbose] > |> from_list
00:04:21 #13755 [Verbose] > |> fun (x : i32 -> _) => x
00:04:21 #13756 [Verbose] > |> to_array
00:04:21 #13757 [Verbose] > |> _assert_eq (a ;[[ 0; 1; 2; 3; 4; 5; 6; 7; 8; 9 ]] : _ i32 _)
00:04:21 #13758 [Verbose] >
00:04:21 #13759 [Verbose] > ╭─[ 531.89ms - stdout ]────────────────────────────────────────────────────────╮
00:04:21 #13760 [Verbose] > │ type Mut0 = {mutable l0 : (int32 [])} │
00:04:21 #13761 [Verbose] > │ and Mut1 = {mutable l0 : int32} │
00:04:21 #13762 [Verbose] > │ let rec method1 (v0 : (int32 [])) : (int32 []) = │
00:04:21 #13763 [Verbose] > │ v0 │
00:04:21 #13764 [Verbose] > │ and method2 (v0 : int32, v1 : Mut1) : bool = │
00:04:21 #13765 [Verbose] > │ let v2 : int32 = v1.l0 │
00:04:21 #13766 [Verbose] > │ let v3 : bool = v2 < v0 │
00:04:21 #13767 [Verbose] > │ v3 │
00:04:21 #13768 [Verbose] > │ and method3 (v0 : (int32 []), v1 : (int32 []), v2 : int32) : bool = │
00:04:21 #13769 [Verbose] > │ let v3 : int32 = v0.Length │
00:04:21 #13770 [Verbose] > │ let v4 : bool = v2 < v3 │
00:04:21 #13771 [Verbose] > │ if v4 then │
00:04:21 #13772 [Verbose] > │ let v5 : int32 = v0.[int v2] │
00:04:21 #13773 [Verbose] > │ let v6 : int32 = v1.[int v2] │
00:04:21 #13774 [Verbose] > │ let v7 : bool = v5 = v6 │
00:04:21 #13775 [Verbose] > │ if v7 then │
00:04:21 #13776 [Verbose] > │ let v8 : int32 = v2 + 1 │
00:04:21 #13777 [Verbose] > │ method3(v0, v1, v8) │
00:04:21 #13778 [Verbose] > │ else │
00:04:21 #13779 [Verbose] > │ false │
00:04:21 #13780 [Verbose] > │ else │
00:04:21 #13781 [Verbose] > │ true │
00:04:21 #13782 [Verbose] > │ and method4 (v0 : bool) : bool = │
00:04:21 #13783 [Verbose] > │ v0 │
00:04:21 #13784 [Verbose] > │ and method0 () : unit = │
00:04:21 #13785 [Verbose] > │ let v0 : (int32 []) = [||] │
00:04:21 #13786 [Verbose] > │ let v1 : (int32 []) = method1(v0) │
00:04:21 #13787 [Verbose] > │ let v2 : Mut0 = {l0 = v1} : Mut0 │
00:04:21 #13788 [Verbose] > │ let v3 : (int32 []) = v2.l0 │
00:04:21 #13789 [Verbose] > │ let v4 : (int32 []) = [|0|] │
00:04:21 #13790 [Verbose] > │ let v5 : (int32 []) = method1(v4) │
00:04:21 #13791 [Verbose] > │ let v6 : int32 = v3.Length │
00:04:21 #13792 [Verbose] > │ let v7 : int32 = v5.Length │
00:04:21 #13793 [Verbose] > │ let v8 : int32 = v6 + v7 │
00:04:21 #13794 [Verbose] > │ let v9 : (int32 []) = Array.zeroCreate<int32> (v8) │
00:04:21 #13795 [Verbose] > │ let v10 : Mut1 = {l0 = 0} : Mut1 │
00:04:21 #13796 [Verbose] > │ while method2(v8, v10) do │
00:04:21 #13797 [Verbose] > │ let v12 : int32 = v10.l0 │
00:04:21 #13798 [Verbose] > │ let v13 : bool = v12 < v6 │
00:04:21 #13799 [Verbose] > │ let v17 : int32 = │
00:04:21 #13800 [Verbose] > │ if v13 then │
00:04:21 #13801 [Verbose] > │ let v14 : int32 = v3.[int v12] │
00:04:21 #13802 [Verbose] > │ v14 │
00:04:21 #13803 [Verbose] > │ else │
00:04:21 #13804 [Verbose] > │ let v15 : int32 = v12 - v6 │
00:04:21 #13805 [Verbose] > │ let v16 : int32 = v5.[int v15] │
00:04:21 #13806 [Verbose] > │ v16 │
00:04:21 #13807 [Verbose] > │ v9.[int v12] <- v17 │
00:04:21 #13808 [Verbose] > │ let v18 : int32 = v12 + 1 │
00:04:21 #13809 [Verbose] > │ v10.l0 <- v18 │
00:04:21 #13810 [Verbose] > │ () │
00:04:21 #13811 [Verbose] > │ v2.l0 <- v9 │
00:04:21 #13812 [Verbose] > │ let v19 : (int32 []) = v2.l0 │
00:04:21 #13813 [Verbose] > │ let v20 : (int32 []) = [|1|] │
00:04:21 #13814 [Verbose] > │ let v21 : (int32 []) = method1(v20) │
00:04:21 #13815 [Verbose] > │ let v22 : int32 = v19.Length │
00:04:21 #13816 [Verbose] > │ let v23 : int32 = v21.Length │
00:04:21 #13817 [Verbose] > │ let v24 : int32 = v22 + v23 │
00:04:21 #13818 [Verbose] > │ let v25 : (int32 []) = Array.zeroCreate<int32> (v24) │
00:04:21 #13819 [Verbose] > │ let v26 : Mut1 = {l0 = 0} : Mut1 │
00:04:21 #13820 [Verbose] > │ while method2(v24, v26) do │
00:04:21 #13821 [Verbose] > │ let v28 : int32 = v26.l0 │
00:04:21 #13822 [Verbose] > │ let v29 : bool = v28 < v22 │
00:04:21 #13823 [Verbose] > │ let v33 : int32 = │
00:04:21 #13824 [Verbose] > │ if v29 then │
00:04:21 #13825 [Verbose] > │ let v30 : int32 = v19.[int v28] │
00:04:21 #13826 [Verbose] > │ v30 │
00:04:21 #13827 [Verbose] > │ else │
00:04:21 #13828 [Verbose] > │ let v31 : int32 = v28 - v22 │
00:04:21 #13829 [Verbose] > │ let v32 : int32 = v21.[int v31] │
00:04:21 #13830 [Verbose] > │ v32 │
00:04:21 #13831 [Verbose] > │ v25.[int v28] <- v33 │
00:04:21 #13832 [Verbose] > │ let v34 : int32 = v28 + 1 │
00:04:21 #13833 [Verbose] > │ v26.l0 <- v34 │
00:04:21 #13834 [Verbose] > │ () │
00:04:21 #13835 [Verbose] > │ v2.l0 <- v25 │
00:04:21 #13836 [Verbose] > │ let v35 : (int32 []) = v2.l0 │
00:04:21 #13837 [Verbose] > │ let v36 : (int32 []) = [|2|] │
00:04:21 #13838 [Verbose] > │ let v37 : (int32 []) = method1(v36) │
00:04:21 #13839 [Verbose] > │ let v38 : int32 = v35.Length │
00:04:21 #13840 [Verbose] > │ let v39 : int32 = v37.Length │
00:04:21 #13841 [Verbose] > │ let v40 : int32 = v38 + v39 │
00:04:21 #13842 [Verbose] > │ let v41 : (int32 []) = Array.zeroCreate<int32> (v40) │
00:04:21 #13843 [Verbose] > │ let v42 : Mut1 = {l0 = 0} : Mut1 │
00:04:21 #13844 [Verbose] > │ while method2(v40, v42) do │
00:04:21 #13845 [Verbose] > │ let v44 : int32 = v42.l0 │
00:04:21 #13846 [Verbose] > │ let v45 : bool = v44 < v38 │
00:04:21 #13847 [Verbose] > │ let v49 : int32 = │
00:04:21 #13848 [Verbose] > │ if v45 then │
00:04:21 #13849 [Verbose] > │ let v46 : int32 = v35.[int v44] │
00:04:21 #13850 [Verbose] > │ v46 │
00:04:21 #13851 [Verbose] > │ else │
00:04:21 #13852 [Verbose] > │ let v47 : int32 = v44 - v38 │
00:04:21 #13853 [Verbose] > │ let v48 : int32 = v37.[int v47] │
00:04:21 #13854 [Verbose] > │ v48 │
00:04:21 #13855 [Verbose] > │ v41.[int v44] <- v49 │
00:04:21 #13856 [Verbose] > │ let v50 : int32 = v44 + 1 │
00:04:21 #13857 [Verbose] > │ v42.l0 <- v50 │
00:04:21 #13858 [Verbose] > │ () │
00:04:21 #13859 [Verbose] > │ v2.l0 <- v41 │
00:04:21 #13860 [Verbose] > │ let v51 : (int32 []) = v2.l0 │
00:04:21 #13861 [Verbose] > │ let v52 : (int32 []) = [|3|] │
00:04:21 #13862 [Verbose] > │ let v53 : (int32 []) = method1(v52) │
00:04:21 #13863 [Verbose] > │ let v54 : int32 = v51.Length │
00:04:21 #13864 [Verbose] > │ let v55 : int32 = v53.Length │
00:04:21 #13865 [Verbose] > │ let v56 : int32 = v54 + v55 │
00:04:21 #13866 [Verbose] > │ let v57 : (int32 []) = Array.zeroCreate<int32> (v56) │
00:04:21 #13867 [Verbose] > │ let v58 : Mut1 = {l0 = 0} : Mut1 │
00:04:21 #13868 [Verbose] > │ while method2(v56, v58) do │
00:04:21 #13869 [Verbose] > │ let v60 : int32 = v58.l0 │
00:04:21 #13870 [Verbose] > │ let v61 : bool = v60 < v54 │
00:04:21 #13871 [Verbose] > │ let v65 : int32 = │
00:04:21 #13872 [Verbose] > │ if v61 then │
00:04:21 #13873 [Verbose] > │ let v62 : int32 = v51.[int v60] │
00:04:21 #13874 [Verbose] > │ v62 │
00:04:21 #13875 [Verbose] > │ else │
00:04:21 #13876 [Verbose] > │ let v63 : int32 = v60 - v54 │
00:04:21 #13877 [Verbose] > │ let v64 : int32 = v53.[int v63] │
00:04:21 #13878 [Verbose] > │ v64 │
00:04:21 #13879 [Verbose] > │ v57.[int v60] <- v65 │
00:04:21 #13880 [Verbose] > │ let v66 : int32 = v60 + 1 │
00:04:21 #13881 [Verbose] > │ v58.l0 <- v66 │
00:04:21 #13882 [Verbose] > │ () │
00:04:21 #13883 [Verbose] > │ v2.l0 <- v57 │
00:04:21 #13884 [Verbose] > │ let v67 : (int32 []) = v2.l0 │
00:04:21 #13885 [Verbose] > │ let v68 : (int32 []) = [|4|] │
00:04:21 #13886 [Verbose] > │ let v69 : (int32 []) = method1(v68) │
00:04:21 #13887 [Verbose] > │ let v70 : int32 = v67.Length │
00:04:21 #13888 [Verbose] > │ let v71 : int32 = v69.Length │
00:04:21 #13889 [Verbose] > │ let v72 : int32 = v70 + v71 │
00:04:21 #13890 [Verbose] > │ let v73 : (int32 []) = Array.zeroCreate<int32> (v72) │
00:04:21 #13891 [Verbose] > │ let v74 : Mut1 = {l0 = 0} : Mut1 │
00:04:21 #13892 [Verbose] > │ while method2(v72, v74) do │
00:04:21 #13893 [Verbose] > │ let v76 : int32 = v74.l0 │
00:04:21 #13894 [Verbose] > │ let v77 : bool = v76 < v70 │
00:04:21 #13895 [Verbose] > │ let v81 : int32 = │
00:04:21 #13896 [Verbose] > │ if v77 then │
00:04:21 #13897 [Verbose] > │ let v78 : int32 = v67.[int v76] │
00:04:21 #13898 [Verbose] > │ v78 │
00:04:21 #13899 [Verbose] > │ else │
00:04:21 #13900 [Verbose] > │ let v79 : int32 = v76 - v70 │
00:04:21 #13901 [Verbose] > │ let v80 : int32 = v69.[int v79] │
00:04:21 #13902 [Verbose] > │ v80 │
00:04:21 #13903 [Verbose] > │ v73.[int v76] <- v81 │
00:04:21 #13904 [Verbose] > │ let v82 : int32 = v76 + 1 │
00:04:21 #13905 [Verbose] > │ v74.l0 <- v82 │
00:04:21 #13906 [Verbose] > │ () │
00:04:21 #13907 [Verbose] > │ v2.l0 <- v73 │
00:04:21 #13908 [Verbose] > │ let v83 : (int32 []) = v2.l0 │
00:04:21 #13909 [Verbose] > │ let v84 : (int32 []) = [|5|] │
00:04:21 #13910 [Verbose] > │ let v85 : (int32 []) = method1(v84) │
00:04:21 #13911 [Verbose] > │ let v86 : int32 = v83.Length │
00:04:21 #13912 [Verbose] > │ let v87 : int32 = v85.Length │
00:04:21 #13913 [Verbose] > │ let v88 : int32 = v86 + v87 │
00:04:21 #13914 [Verbose] > │ let v89 : (int32 []) = Array.zeroCreate<int32> (v88) │
00:04:21 #13915 [Verbose] > │ let v90 : Mut1 = {l0 = 0} : Mut1 │
00:04:21 #13916 [Verbose] > │ while method2(v88, v90) do │
00:04:21 #13917 [Verbose] > │ let v92 : int32 = v90.l0 │
00:04:21 #13918 [Verbose] > │ let v93 : bool = v92 < v86 │
00:04:21 #13919 [Verbose] > │ let v97 : int32 = │
00:04:21 #13920 [Verbose] > │ if v93 then │
00:04:21 #13921 [Verbose] > │ let v94 : int32 = v83.[int v92] │
00:04:21 #13922 [Verbose] > │ v94 │
00:04:21 #13923 [Verbose] > │ else │
00:04:21 #13924 [Verbose] > │ let v95 : int32 = v92 - v86 │
00:04:21 #13925 [Verbose] > │ let v96 : int32 = v85.[int v95] │
00:04:21 #13926 [Verbose] > │ v96 │
00:04:21 #13927 [Verbose] > │ v89.[int v92] <- v97 │
00:04:21 #13928 [Verbose] > │ let v98 : int32 = v92 + 1 │
00:04:21 #13929 [Verbose] > │ v90.l0 <- v98 │
00:04:21 #13930 [Verbose] > │ () │
00:04:21 #13931 [Verbose] > │ v2.l0 <- v89 │
00:04:21 #13932 [Verbose] > │ let v99 : (int32 []) = v2.l0 │
00:04:21 #13933 [Verbose] > │ let v100 : (int32 []) = [|6|] │
00:04:21 #13934 [Verbose] > │ let v101 : (int32 []) = method1(v100) │
00:04:21 #13935 [Verbose] > │ let v102 : int32 = v99.Length │
00:04:21 #13936 [Verbose] > │ let v103 : int32 = v101.Length │
00:04:21 #13937 [Verbose] > │ let v104 : int32 = v102 + v103 │
00:04:21 #13938 [Verbose] > │ let v105 : (int32 []) = Array.zeroCreate<int32> (v104) │
00:04:21 #13939 [Verbose] > │ let v106 : Mut1 = {l0 = 0} : Mut1 │
00:04:21 #13940 [Verbose] > │ while method2(v104, v106) do │
00:04:21 #13941 [Verbose] > │ let v108 : int32 = v106.l0 │
00:04:21 #13942 [Verbose] > │ let v109 : bool = v108 < v102 │
00:04:21 #13943 [Verbose] > │ let v113 : int32 = │
00:04:21 #13944 [Verbose] > │ if v109 then │
00:04:21 #13945 [Verbose] > │ let v110 : int32 = v99.[int v108] │
00:04:21 #13946 [Verbose] > │ v110 │
00:04:21 #13947 [Verbose] > │ else │
00:04:21 #13948 [Verbose] > │ let v111 : int32 = v108 - v102 │
00:04:21 #13949 [Verbose] > │ let v112 : int32 = v101.[int v111] │
00:04:21 #13950 [Verbose] > │ v112 │
00:04:21 #13951 [Verbose] > │ v105.[int v108] <- v113 │
00:04:21 #13952 [Verbose] > │ let v114 : int32 = v108 + 1 │
00:04:21 #13953 [Verbose] > │ v106.l0 <- v114 │
00:04:21 #13954 [Verbose] > │ () │
00:04:21 #13955 [Verbose] > │ v2.l0 <- v105 │
00:04:21 #13956 [Verbose] > │ let v115 : (int32 []) = v2.l0 │
00:04:21 #13957 [Verbose] > │ let v116 : (int32 []) = [|7|] │
00:04:21 #13958 [Verbose] > │ let v117 : (int32 []) = method1(v116) │
00:04:21 #13959 [Verbose] > │ let v118 : int32 = v115.Length │
00:04:21 #13960 [Verbose] > │ let v119 : int32 = v117.Length │
00:04:21 #13961 [Verbose] > │ let v120 : int32 = v118 + v119 │
00:04:21 #13962 [Verbose] > │ let v121 : (int32 []) = Array.zeroCreate<int32> (v120) │
00:04:21 #13963 [Verbose] > │ let v122 : Mut1 = {l0 = 0} : Mut1 │
00:04:21 #13964 [Verbose] > │ while method2(v120, v122) do │
00:04:21 #13965 [Verbose] > │ let v124 : int32 = v122.l0 │
00:04:21 #13966 [Verbose] > │ let v125 : bool = v124 < v118 │
00:04:21 #13967 [Verbose] > │ let v129 : int32 = │
00:04:21 #13968 [Verbose] > │ if v125 then │
00:04:21 #13969 [Verbose] > │ let v126 : int32 = v115.[int v124] │
00:04:21 #13970 [Verbose] > │ v126 │
00:04:21 #13971 [Verbose] > │ else │
00:04:21 #13972 [Verbose] > │ let v127 : int32 = v124 - v118 │
00:04:21 #13973 [Verbose] > │ let v128 : int32 = v117.[int v127] │
00:04:21 #13974 [Verbose] > │ v128 │
00:04:21 #13975 [Verbose] > │ v121.[int v124] <- v129 │
00:04:21 #13976 [Verbose] > │ let v130 : int32 = v124 + 1 │
00:04:21 #13977 [Verbose] > │ v122.l0 <- v130 │
00:04:21 #13978 [Verbose] > │ () │
00:04:21 #13979 [Verbose] > │ v2.l0 <- v121 │
00:04:21 #13980 [Verbose] > │ let v131 : (int32 []) = v2.l0 │
00:04:21 #13981 [Verbose] > │ let v132 : (int32 []) = [|8|] │
00:04:21 #13982 [Verbose] > │ let v133 : (int32 []) = method1(v132) │
00:04:21 #13983 [Verbose] > │ let v134 : int32 = v131.Length │
00:04:21 #13984 [Verbose] > │ let v135 : int32 = v133.Length │
00:04:21 #13985 [Verbose] > │ let v136 : int32 = v134 + v135 │
00:04:21 #13986 [Verbose] > │ let v137 : (int32 []) = Array.zeroCreate<int32> (v136) │
00:04:21 #13987 [Verbose] > │ let v138 : Mut1 = {l0 = 0} : Mut1 │
00:04:21 #13988 [Verbose] > │ while method2(v136, v138) do │
00:04:21 #13989 [Verbose] > │ let v140 : int32 = v138.l0 │
00:04:21 #13990 [Verbose] > │ let v141 : bool = v140 < v134 │
00:04:21 #13991 [Verbose] > │ let v145 : int32 = │
00:04:21 #13992 [Verbose] > │ if v141 then │
00:04:21 #13993 [Verbose] > │ let v142 : int32 = v131.[int v140] │
00:04:21 #13994 [Verbose] > │ v142 │
00:04:21 #13995 [Verbose] > │ else │
00:04:21 #13996 [Verbose] > │ let v143 : int32 = v140 - v134 │
00:04:21 #13997 [Verbose] > │ let v144 : int32 = v133.[int v143] │
00:04:21 #13998 [Verbose] > │ v144 │
00:04:21 #13999 [Verbose] > │ v137.[int v140] <- v145 │
00:04:21 #14000 [Verbose] > │ let v146 : int32 = v140 + 1 │
00:04:21 #14001 [Verbose] > │ v138.l0 <- v146 │
00:04:21 #14002 [Verbose] > │ () │
00:04:21 #14003 [Verbose] > │ v2.l0 <- v137 │
00:04:21 #14004 [Verbose] > │ let v147 : (int32 []) = v2.l0 │
00:04:21 #14005 [Verbose] > │ let v148 : (int32 []) = [|9|] │
00:04:21 #14006 [Verbose] > │ let v149 : (int32 []) = method1(v148) │
00:04:21 #14007 [Verbose] > │ let v150 : int32 = v147.Length │
00:04:21 #14008 [Verbose] > │ let v151 : int32 = v149.Length │
00:04:21 #14009 [Verbose] > │ let v152 : int32 = v150 + v151 │
00:04:21 #14010 [Verbose] > │ let v153 : (int32 []) = Array.zeroCreate<int32> (v152) │
00:04:21 #14011 [Verbose] > │ let v154 : Mut1 = {l0 = 0} : Mut1 │
00:04:21 #14012 [Verbose] > │ while method2(v152, v154) do │
00:04:21 #14013 [Verbose] > │ let v156 : int32 = v154.l0 │
00:04:21 #14014 [Verbose] > │ let v157 : bool = v156 < v150 │
00:04:21 #14015 [Verbose] > │ let v161 : int32 = │
00:04:21 #14016 [Verbose] > │ if v157 then │
00:04:21 #14017 [Verbose] > │ let v158 : int32 = v147.[int v156] │
00:04:21 #14018 [Verbose] > │ v158 │
00:04:21 #14019 [Verbose] > │ else │
00:04:21 #14020 [Verbose] > │ let v159 : int32 = v156 - v150 │
00:04:21 #14021 [Verbose] > │ let v160 : int32 = v149.[int v159] │
00:04:21 #14022 [Verbose] > │ v160 │
00:04:21 #14023 [Verbose] > │ v153.[int v156] <- v161 │
00:04:21 #14024 [Verbose] > │ let v162 : int32 = v156 + 1 │
00:04:21 #14025 [Verbose] > │ v154.l0 <- v162 │
00:04:21 #14026 [Verbose] > │ () │
00:04:21 #14027 [Verbose] > │ v2.l0 <- v153 │
00:04:21 #14028 [Verbose] > │ let v163 : (int32 []) = v2.l0 │
00:04:21 #14029 [Verbose] > │ let v164 : (int32 []) = [|0; 1; 2; 3; 4; 5; 6; 7; 8; 9|] │
00:04:21 #14030 [Verbose] > │ let v165 : (int32 []) = method1(v164) │
00:04:21 #14031 [Verbose] > │ let v166 : string = $"%A{v163}" │
00:04:21 #14032 [Verbose] > │ System.Console.WriteLine v166 │
00:04:21 #14033 [Verbose] > │ let v167 : int32 = v163.Length │
00:04:21 #14034 [Verbose] > │ let v168 : int32 = v165.Length │
00:04:21 #14035 [Verbose] > │ let v169 : bool = v167 = v168 │
00:04:21 #14036 [Verbose] > │ let v170 : bool = v169 <> true │
00:04:21 #14037 [Verbose] > │ let v173 : bool = │
00:04:21 #14038 [Verbose] > │ if v170 then │
00:04:21 #14039 [Verbose] > │ false │
00:04:21 #14040 [Verbose] > │ else │
00:04:21 #14041 [Verbose] > │ let v171 : int32 = 0 │
00:04:21 #14042 [Verbose] > │ method3(v163, v165, v171) │
00:04:21 #14043 [Verbose] > │ let v175 : bool = │
00:04:21 #14044 [Verbose] > │ if v173 then │
00:04:21 #14045 [Verbose] > │ true │
00:04:21 #14046 [Verbose] > │ else │
00:04:21 #14047 [Verbose] > │ method4(v173) │
00:04:21 #14048 [Verbose] > │ let v176 : string = $"__expect / actual: %A{v163} / expected: %A{v165}" │
00:04:21 #14049 [Verbose] > │ let v177 : bool = v175 = false │
00:04:21 #14050 [Verbose] > │ if v177 then │
00:04:21 #14051 [Verbose] > │ failwith<unit> v176 │
00:04:21 #14052 [Verbose] > │ method0() │
00:04:21 #14053 [Verbose] > │ │
00:04:21 #14054 [Verbose] > │ [|0; 1; 2; 3; 4; 5; 6; 7; 8; 9|] │
00:04:21 #14055 [Verbose] > │ │
00:04:21 #14056 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:21 #14057 [Verbose] >
00:04:21 #14058 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:21 #14059 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:21 #14060 [Verbose] > │ ## take_while │
00:04:21 #14061 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:21 #14062 [Verbose] >
00:04:21 #14063 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:21 #14064 [Verbose] > inl take_while cond seq =
00:04:21 #14065 [Verbose] > inl rec loop acc i =
00:04:21 #14066 [Verbose] > match seq i with
00:04:21 #14067 [Verbose] > | Some st when cond st i => loop (st :: acc) (i + 1)
00:04:21 #14068 [Verbose] > | _ => acc |> listm.rev
00:04:21 #14069 [Verbose] > loop [[]] 0
00:04:22 #14070 [Verbose] >
00:04:22 #14071 [Verbose] > ╭─[ 284.35ms - stdout ]────────────────────────────────────────────────────────╮
00:04:22 #14072 [Verbose] > │ () │
00:04:22 #14073 [Verbose] > │ │
00:04:22 #14074 [Verbose] > │ │
00:04:22 #14075 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:22 #14076 [Verbose] >
00:04:22 #14077 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:22 #14078 [Verbose] > // // test
00:04:22 #14079 [Verbose] >
00:04:22 #14080 [Verbose] > listm.init 10i32 id
00:04:22 #14081 [Verbose] > |> from_list
00:04:22 #14082 [Verbose] > |> take_while (fun n (_ : i32) => n < 5)
00:04:22 #14083 [Verbose] > |> listm'.sum
00:04:22 #14084 [Verbose] > |> _assert_eq 10
00:04:22 #14085 [Verbose] >
00:04:22 #14086 [Verbose] > ╭─[ 231.39ms - stdout ]────────────────────────────────────────────────────────╮
00:04:22 #14087 [Verbose] > │ let rec method0 () : unit = │
00:04:22 #14088 [Verbose] > │ let v0 : string = $"%A{10}" │
00:04:22 #14089 [Verbose] > │ System.Console.WriteLine v0 │
00:04:22 #14090 [Verbose] > │ let v1 : string = $"__expect / actual: %A{10} / expected: %A{10}" │
00:04:22 #14091 [Verbose] > │ () │
00:04:22 #14092 [Verbose] > │ method0() │
00:04:22 #14093 [Verbose] > │ │
00:04:22 #14094 [Verbose] > │ 10 │
00:04:22 #14095 [Verbose] > │ │
00:04:22 #14096 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:22 #14097 [Verbose] >
00:04:22 #14098 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:22 #14099 [Verbose] > // // test
00:04:22 #14100 [Verbose] >
00:04:22 #14101 [Verbose] > stream.new_finite_stream print_and_return 10i32
00:04:22 #14102 [Verbose] > |> flip stream.try_item
00:04:22 #14103 [Verbose] > |> take_while (fun n (_ : i32) => n < 5)
00:04:22 #14104 [Verbose] > |> listm'.sum
00:04:22 #14105 [Verbose] > |> _assert_eq 10
00:04:22 #14106 [Verbose] >
00:04:22 #14107 [Verbose] > ╭─[ 350.38ms - stdout ]────────────────────────────────────────────────────────╮
00:04:22 #14108 [Verbose] > │ let rec method0 () : unit = │
00:04:22 #14109 [Verbose] > │ printfn $"print_and_return / x: {0}" │
00:04:22 #14110 [Verbose] > │ printfn $"print_and_return / x: {1}" │
00:04:22 #14111 [Verbose] > │ printfn $"print_and_return / x: {1}" │
00:04:22 #14112 [Verbose] > │ printfn $"print_and_return / x: {2}" │
00:04:22 #14113 [Verbose] > │ printfn $"print_and_return / x: {1}" │
00:04:22 #14114 [Verbose] > │ printfn $"print_and_return / x: {2}" │
00:04:22 #14115 [Verbose] > │ printfn $"print_and_return / x: {3}" │
00:04:22 #14116 [Verbose] > │ printfn $"print_and_return / x: {1}" │
00:04:22 #14117 [Verbose] > │ printfn $"print_and_return / x: {2}" │
00:04:22 #14118 [Verbose] > │ printfn $"print_and_return / x: {3}" │
00:04:22 #14119 [Verbose] > │ printfn $"print_and_return / x: {4}" │
00:04:22 #14120 [Verbose] > │ printfn $"print_and_return / x: {1}" │
00:04:22 #14121 [Verbose] > │ printfn $"print_and_return / x: {2}" │
00:04:22 #14122 [Verbose] > │ printfn $"print_and_return / x: {3}" │
00:04:22 #14123 [Verbose] > │ printfn $"print_and_return / x: {4}" │
00:04:22 #14124 [Verbose] > │ printfn $"print_and_return / x: {5}" │
00:04:22 #14125 [Verbose] > │ let v0 : string = $"%A{10}" │
00:04:22 #14126 [Verbose] > │ System.Console.WriteLine v0 │
00:04:22 #14127 [Verbose] > │ let v1 : string = $"__expect / actual: %A{10} / expected: %A{10}" │
00:04:22 #14128 [Verbose] > │ () │
00:04:22 #14129 [Verbose] > │ method0() │
00:04:22 #14130 [Verbose] > │ │
00:04:22 #14131 [Verbose] > │ print_and_return / x: 0 │
00:04:22 #14132 [Verbose] > │ print_and_return / x: 1 │
00:04:22 #14133 [Verbose] > │ print_and_return / x: 1 │
00:04:22 #14134 [Verbose] > │ print_and_return / x: 2 │
00:04:22 #14135 [Verbose] > │ print_and_return / x: 1 │
00:04:22 #14136 [Verbose] > │ print_and_return / x: 2 │
00:04:22 #14137 [Verbose] > │ print_and_return / x: 3 │
00:04:22 #14138 [Verbose] > │ print_and_return / x: 1 │
00:04:22 #14139 [Verbose] > │ print_and_return / x: 2 │
00:04:22 #14140 [Verbose] > │ print_and_return / x: 3 │
00:04:22 #14141 [Verbose] > │ print_and_return / x: 4 │
00:04:22 #14142 [Verbose] > │ print_and_return / x: 1 │
00:04:22 #14143 [Verbose] > │ print_and_return / x: 2 │
00:04:22 #14144 [Verbose] > │ print_and_return / x: 3 │
00:04:22 #14145 [Verbose] > │ print_and_return / x: 4 │
00:04:22 #14146 [Verbose] > │ print_and_return / x: 5 │
00:04:22 #14147 [Verbose] > │ 10 │
00:04:22 #14148 [Verbose] > │ │
00:04:22 #14149 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:22 #14150 [Verbose] >
00:04:22 #14151 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:22 #14152 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:22 #14153 [Verbose] > │ ## take_while_ │
00:04:22 #14154 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:22 #14155 [Verbose] >
00:04:22 #14156 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:22 #14157 [Verbose] > inl take_while_ cond seq =
00:04:22 #14158 [Verbose] > let rec loop acc i =
00:04:22 #14159 [Verbose] > match seq i with
00:04:22 #14160 [Verbose] > | Some st when cond st i => loop (st :: acc) (i + 1)
00:04:22 #14161 [Verbose] > | _ => acc |> listm.rev
00:04:22 #14162 [Verbose] > loop [[]] 0
00:04:23 #14163 [Verbose] >
00:04:23 #14164 [Verbose] > ╭─[ 248.46ms - stdout ]────────────────────────────────────────────────────────╮
00:04:23 #14165 [Verbose] > │ () │
00:04:23 #14166 [Verbose] > │ │
00:04:23 #14167 [Verbose] > │ │
00:04:23 #14168 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:23 #14169 [Verbose] >
00:04:23 #14170 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:23 #14171 [Verbose] > // // test
00:04:23 #14172 [Verbose] >
00:04:23 #14173 [Verbose] > stream.new_infinite_stream_ print_and_return
00:04:23 #14174 [Verbose] > |> flip stream.try_item
00:04:23 #14175 [Verbose] > |> take_while_ (fun n (_ : i32) => n < 5i32)
00:04:23 #14176 [Verbose] > |> listm'.sum
00:04:23 #14177 [Verbose] > |> _assert_eq 10
00:04:23 #14178 [Verbose] >
00:04:23 #14179 [Verbose] > ╭─[ 397.27ms - stdout ]────────────────────────────────────────────────────────╮
00:04:23 #14180 [Verbose] > │ type UH0 = │
00:04:23 #14181 [Verbose] > │ | UH0_0 of int32 * (unit -> UH0) │
00:04:23 #14182 [Verbose] > │ | UH0_1 │
00:04:23 #14183 [Verbose] > │ and UH1 = │
00:04:23 #14184 [Verbose] > │ | UH1_0 of int32 * UH1 │
00:04:23 #14185 [Verbose] > │ | UH1_1 │
00:04:23 #14186 [Verbose] > │ and [<Struct>] US0 = │
00:04:23 #14187 [Verbose] > │ | US0_0 │
00:04:23 #14188 [Verbose] > │ | US0_1 of f1_0 : int32 │
00:04:23 #14189 [Verbose] > │ let rec closure0 (v0 : int32) () : UH0 = │
00:04:23 #14190 [Verbose] > │ let v1 : int32 = v0 + 1 │
00:04:23 #14191 [Verbose] > │ method1(v1) │
00:04:23 #14192 [Verbose] > │ and method1 (v0 : int32) : UH0 = │
00:04:23 #14193 [Verbose] > │ printfn $"print_and_return / x: {v0}" │
00:04:23 #14194 [Verbose] > │ let v1 : (unit -> UH0) = closure0(v0) │
00:04:23 #14195 [Verbose] > │ UH0_0(v0, v1) │
00:04:23 #14196 [Verbose] > │ and method3 (v0 : int32, v1 : UH0) : US0 = │
00:04:23 #14197 [Verbose] > │ match v1 with │
00:04:23 #14198 [Verbose] > │ | UH0_0(v2, v3) -> (* StreamCons *) │
00:04:23 #14199 [Verbose] > │ let v4 : bool = v0 <= 0 │
00:04:23 #14200 [Verbose] > │ if v4 then │
00:04:23 #14201 [Verbose] > │ US0_1(v2) │
00:04:23 #14202 [Verbose] > │ else │
00:04:23 #14203 [Verbose] > │ let v6 : int32 = v0 - 1 │
00:04:23 #14204 [Verbose] > │ let v7 : UH0 = v3 () │
00:04:23 #14205 [Verbose] > │ method3(v6, v7) │
00:04:23 #14206 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:04:23 #14207 [Verbose] > │ US0_0 │
00:04:23 #14208 [Verbose] > │ and method4 (v0 : UH1, v1 : UH1) : UH1 = │
00:04:23 #14209 [Verbose] > │ match v0 with │
00:04:23 #14210 [Verbose] > │ | UH1_0(v2, v3) -> (* Cons *) │
00:04:23 #14211 [Verbose] > │ let v4 : UH1 = UH1_0(v2, v1) │
00:04:23 #14212 [Verbose] > │ method4(v3, v4) │
00:04:23 #14213 [Verbose] > │ | UH1_1 -> (* Nil *) │
00:04:23 #14214 [Verbose] > │ v1 │
00:04:23 #14215 [Verbose] > │ and method2 (v0 : UH0, v1 : UH1, v2 : int32) : UH1 = │
00:04:23 #14216 [Verbose] > │ let v3 : US0 = method3(v2, v0) │
00:04:23 #14217 [Verbose] > │ match v3 with │
00:04:23 #14218 [Verbose] > │ | US0_1(v4) -> (* Some *) │
00:04:23 #14219 [Verbose] > │ let v5 : bool = v4 < 5 │
00:04:23 #14220 [Verbose] > │ if v5 then │
00:04:23 #14221 [Verbose] > │ let v6 : UH1 = UH1_0(v4, v1) │
00:04:23 #14222 [Verbose] > │ let v7 : int32 = v2 + 1 │
00:04:23 #14223 [Verbose] > │ method2(v0, v6, v7) │
00:04:23 #14224 [Verbose] > │ else │
00:04:23 #14225 [Verbose] > │ let v9 : UH1 = UH1_1 │
00:04:23 #14226 [Verbose] > │ method4(v1, v9) │
00:04:23 #14227 [Verbose] > │ | _ -> │
00:04:23 #14228 [Verbose] > │ let v12 : UH1 = UH1_1 │
00:04:23 #14229 [Verbose] > │ method4(v1, v12) │
00:04:23 #14230 [Verbose] > │ and method5 (v0 : UH1, v1 : int32) : int32 = │
00:04:23 #14231 [Verbose] > │ match v0 with │
00:04:23 #14232 [Verbose] > │ | UH1_0(v2, v3) -> (* Cons *) │
00:04:23 #14233 [Verbose] > │ let v4 : int32 = v1 + v2 │
00:04:23 #14234 [Verbose] > │ method5(v3, v4) │
00:04:23 #14235 [Verbose] > │ | UH1_1 -> (* Nil *) │
00:04:23 #14236 [Verbose] > │ v1 │
00:04:23 #14237 [Verbose] > │ and method6 (v0 : bool) : bool = │
00:04:23 #14238 [Verbose] > │ v0 │
00:04:23 #14239 [Verbose] > │ and method0 () : unit = │
00:04:23 #14240 [Verbose] > │ let v0 : int32 = 0 │
00:04:23 #14241 [Verbose] > │ let v1 : UH0 = method1(v0) │
00:04:23 #14242 [Verbose] > │ let v2 : UH1 = UH1_1 │
00:04:23 #14243 [Verbose] > │ let v3 : int32 = 0 │
00:04:23 #14244 [Verbose] > │ let v4 : UH1 = method2(v1, v2, v3) │
00:04:23 #14245 [Verbose] > │ let v5 : int32 = 0 │
00:04:23 #14246 [Verbose] > │ let v6 : int32 = method5(v4, v5) │
00:04:23 #14247 [Verbose] > │ let v7 : string = $"%A{v6}" │
00:04:23 #14248 [Verbose] > │ System.Console.WriteLine v7 │
00:04:23 #14249 [Verbose] > │ let v8 : bool = v6 = 10 │
00:04:23 #14250 [Verbose] > │ let v10 : bool = │
00:04:23 #14251 [Verbose] > │ if v8 then │
00:04:23 #14252 [Verbose] > │ true │
00:04:23 #14253 [Verbose] > │ else │
00:04:23 #14254 [Verbose] > │ method6(v8) │
00:04:23 #14255 [Verbose] > │ let v11 : string = $"__expect / actual: %A{v6} / expected: %A{10}" │
00:04:23 #14256 [Verbose] > │ let v12 : bool = v10 = false │
00:04:23 #14257 [Verbose] > │ if v12 then │
00:04:23 #14258 [Verbose] > │ failwith<unit> v11 │
00:04:23 #14259 [Verbose] > │ method0() │
00:04:23 #14260 [Verbose] > │ │
00:04:23 #14261 [Verbose] > │ print_and_return / x: 0 │
00:04:23 #14262 [Verbose] > │ print_and_return / x: 1 │
00:04:23 #14263 [Verbose] > │ print_and_return / x: 1 │
00:04:23 #14264 [Verbose] > │ print_and_return / x: 2 │
00:04:23 #14265 [Verbose] > │ print_and_return / x: 1 │
00:04:23 #14266 [Verbose] > │ print_and_return / x: 2 │
00:04:23 #14267 [Verbose] > │ print_and_return / x: 3 │
00:04:23 #14268 [Verbose] > │ print_and_return / x: 1 │
00:04:23 #14269 [Verbose] > │ print_and_return / x: 2 │
00:04:23 #14270 [Verbose] > │ print_and_return / x: 3 │
00:04:23 #14271 [Verbose] > │ print_and_return / x: 4 │
00:04:23 #14272 [Verbose] > │ print_and_return / x: 1 │
00:04:23 #14273 [Verbose] > │ print_and_return / x: 2 │
00:04:23 #14274 [Verbose] > │ print_and_return / x: 3 │
00:04:23 #14275 [Verbose] > │ print_and_return / x: 4 │
00:04:23 #14276 [Verbose] > │ print_and_return / x: 5 │
00:04:23 #14277 [Verbose] > │ 10 │
00:04:23 #14278 [Verbose] > │ │
00:04:23 #14279 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:23 #14280 [Verbose] >
00:04:23 #14281 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:23 #14282 [Verbose] > // // test
00:04:23 #14283 [Verbose] >
00:04:23 #14284 [Verbose] > stream.new_infinite_stream_ print_and_return
00:04:23 #14285 [Verbose] > |> stream.memoize
00:04:23 #14286 [Verbose] > |> fun list =>
00:04:23 #14287 [Verbose] > inl list = list ()
00:04:23 #14288 [Verbose] > fun n =>
00:04:23 #14289 [Verbose] > list |> stream.try_item n
00:04:23 #14290 [Verbose] > |> take_while_ (fun n (_ : i32) => n < 5i32)
00:04:23 #14291 [Verbose] > |> listm'.sum
00:04:23 #14292 [Verbose] > |> _assert_eq 10
00:04:23 #14293 [Verbose] >
00:04:23 #14294 [Verbose] > ╭─[ 408.72ms - stdout ]────────────────────────────────────────────────────────╮
00:04:23 #14295 [Verbose] > │ type UH0 = │
00:04:23 #14296 [Verbose] > │ | UH0_0 of int32 * (unit -> UH0) │
00:04:23 #14297 [Verbose] > │ | UH0_1 │
00:04:23 #14298 [Verbose] > │ and [<Struct>] US0 = │
00:04:23 #14299 [Verbose] > │ | US0_0 of f0_0 : UH0 │
00:04:23 #14300 [Verbose] > │ | US0_1 of f1_0 : (unit -> UH0) │
00:04:23 #14301 [Verbose] > │ and Mut0 = {mutable l0 : US0} │
00:04:23 #14302 [Verbose] > │ and UH1 = │
00:04:23 #14303 [Verbose] > │ | UH1_0 of int32 * UH1 │
00:04:23 #14304 [Verbose] > │ | UH1_1 │
00:04:23 #14305 [Verbose] > │ and [<Struct>] US1 = │
00:04:23 #14306 [Verbose] > │ | US1_0 │
00:04:23 #14307 [Verbose] > │ | US1_1 of f1_0 : int32 │
00:04:23 #14308 [Verbose] > │ let rec closure0 (v0 : int32) () : UH0 = │
00:04:23 #14309 [Verbose] > │ let v1 : int32 = v0 + 1 │
00:04:23 #14310 [Verbose] > │ method1(v1) │
00:04:23 #14311 [Verbose] > │ and method1 (v0 : int32) : UH0 = │
00:04:23 #14312 [Verbose] > │ printfn $"print_and_return / x: {v0}" │
00:04:23 #14313 [Verbose] > │ let v1 : (unit -> UH0) = closure0(v0) │
00:04:23 #14314 [Verbose] > │ UH0_0(v0, v1) │
00:04:23 #14315 [Verbose] > │ and closure1 (v0 : UH0) () : UH0 = │
00:04:23 #14316 [Verbose] > │ v0 │
00:04:23 #14317 [Verbose] > │ and closure2 (v0 : UH0, v1 : Mut0) () : UH0 = │
00:04:23 #14318 [Verbose] > │ let v2 : US0 = v1.l0 │
00:04:23 #14319 [Verbose] > │ match v2 with │
00:04:23 #14320 [Verbose] > │ | US0_0(v3) -> (* Computed *) │
00:04:23 #14321 [Verbose] > │ v3 │
00:04:23 #14322 [Verbose] > │ | US0_1(v4) -> (* NotComputed *) │
00:04:23 #14323 [Verbose] > │ let v5 : UH0 = v4 () │
00:04:23 #14324 [Verbose] > │ let v12 : UH0 = │
00:04:23 #14325 [Verbose] > │ match v5 with │
00:04:23 #14326 [Verbose] > │ | UH0_0(v7, v8) -> (* StreamCons *) │
00:04:23 #14327 [Verbose] > │ let v9 : (unit -> UH0) = method2(v0, v8) │
00:04:23 #14328 [Verbose] > │ UH0_0(v7, v9) │
00:04:23 #14329 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:04:23 #14330 [Verbose] > │ UH0_1 │
00:04:23 #14331 [Verbose] > │ let v13 : US0 = US0_0(v12) │
00:04:23 #14332 [Verbose] > │ v1.l0 <- v13 │
00:04:23 #14333 [Verbose] > │ v12 │
00:04:23 #14334 [Verbose] > │ and method2 (v0 : UH0, v1 : (unit -> UH0)) : (unit -> UH0) = │
00:04:23 #14335 [Verbose] > │ let v2 : US0 = US0_1(v1) │
00:04:23 #14336 [Verbose] > │ let v3 : Mut0 = {l0 = v2} : Mut0 │
00:04:23 #14337 [Verbose] > │ closure2(v0, v3) │
00:04:23 #14338 [Verbose] > │ and method4 (v0 : int32, v1 : UH0) : US1 = │
00:04:23 #14339 [Verbose] > │ match v1 with │
00:04:23 #14340 [Verbose] > │ | UH0_0(v2, v3) -> (* StreamCons *) │
00:04:23 #14341 [Verbose] > │ let v4 : bool = v0 <= 0 │
00:04:23 #14342 [Verbose] > │ if v4 then │
00:04:23 #14343 [Verbose] > │ US1_1(v2) │
00:04:23 #14344 [Verbose] > │ else │
00:04:23 #14345 [Verbose] > │ let v6 : int32 = v0 - 1 │
00:04:23 #14346 [Verbose] > │ let v7 : UH0 = v3 () │
00:04:23 #14347 [Verbose] > │ method4(v6, v7) │
00:04:23 #14348 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:04:23 #14349 [Verbose] > │ US1_0 │
00:04:23 #14350 [Verbose] > │ and method5 (v0 : UH1, v1 : UH1) : UH1 = │
00:04:23 #14351 [Verbose] > │ match v0 with │
00:04:23 #14352 [Verbose] > │ | UH1_0(v2, v3) -> (* Cons *) │
00:04:23 #14353 [Verbose] > │ let v4 : UH1 = UH1_0(v2, v1) │
00:04:23 #14354 [Verbose] > │ method5(v3, v4) │
00:04:23 #14355 [Verbose] > │ | UH1_1 -> (* Nil *) │
00:04:23 #14356 [Verbose] > │ v1 │
00:04:23 #14357 [Verbose] > │ and method3 (v0 : UH0, v1 : UH1, v2 : int32) : UH1 = │
00:04:23 #14358 [Verbose] > │ let v3 : US1 = method4(v2, v0) │
00:04:23 #14359 [Verbose] > │ match v3 with │
00:04:24 #14360 [Verbose] > │ | US1_1(v4) -> (* Some *) │
00:04:24 #14361 [Verbose] > │ let v5 : bool = v4 < 5 │
00:04:24 #14362 [Verbose] > │ if v5 then │
00:04:24 #14363 [Verbose] > │ let v6 : UH1 = UH1_0(v4, v1) │
00:04:24 #14364 [Verbose] > │ let v7 : int32 = v2 + 1 │
00:04:24 #14365 [Verbose] > │ method3(v0, v6, v7) │
00:04:24 #14366 [Verbose] > │ else │
00:04:24 #14367 [Verbose] > │ let v9 : UH1 = UH1_1 │
00:04:24 #14368 [Verbose] > │ method5(v1, v9) │
00:04:24 #14369 [Verbose] > │ | _ -> │
00:04:24 #14370 [Verbose] > │ let v12 : UH1 = UH1_1 │
00:04:24 #14371 [Verbose] > │ method5(v1, v12) │
00:04:24 #14372 [Verbose] > │ and method6 (v0 : UH1, v1 : int32) : int32 = │
00:04:24 #14373 [Verbose] > │ match v0 with │
00:04:24 #14374 [Verbose] > │ | UH1_0(v2, v3) -> (* Cons *) │
00:04:24 #14375 [Verbose] > │ let v4 : int32 = v1 + v2 │
00:04:24 #14376 [Verbose] > │ method6(v3, v4) │
00:04:24 #14377 [Verbose] > │ | UH1_1 -> (* Nil *) │
00:04:24 #14378 [Verbose] > │ v1 │
00:04:24 #14379 [Verbose] > │ and method7 (v0 : bool) : bool = │
00:04:24 #14380 [Verbose] > │ v0 │
00:04:24 #14381 [Verbose] > │ and method0 () : unit = │
00:04:24 #14382 [Verbose] > │ let v0 : int32 = 0 │
00:04:24 #14383 [Verbose] > │ let v1 : UH0 = method1(v0) │
00:04:24 #14384 [Verbose] > │ let v2 : (unit -> UH0) = closure1(v1) │
00:04:24 #14385 [Verbose] > │ let v3 : (unit -> UH0) = method2(v1, v2) │
00:04:24 #14386 [Verbose] > │ let v4 : UH0 = v3 () │
00:04:24 #14387 [Verbose] > │ let v5 : UH1 = UH1_1 │
00:04:24 #14388 [Verbose] > │ let v6 : int32 = 0 │
00:04:24 #14389 [Verbose] > │ let v7 : UH1 = method3(v4, v5, v6) │
00:04:24 #14390 [Verbose] > │ let v8 : int32 = 0 │
00:04:24 #14391 [Verbose] > │ let v9 : int32 = method6(v7, v8) │
00:04:24 #14392 [Verbose] > │ let v10 : string = $"%A{v9}" │
00:04:24 #14393 [Verbose] > │ System.Console.WriteLine v10 │
00:04:24 #14394 [Verbose] > │ let v11 : bool = v9 = 10 │
00:04:24 #14395 [Verbose] > │ let v13 : bool = │
00:04:24 #14396 [Verbose] > │ if v11 then │
00:04:24 #14397 [Verbose] > │ true │
00:04:24 #14398 [Verbose] > │ else │
00:04:24 #14399 [Verbose] > │ method7(v11) │
00:04:24 #14400 [Verbose] > │ let v14 : string = $"__expect / actual: %A{v9} / expected: %A{10}" │
00:04:24 #14401 [Verbose] > │ let v15 : bool = v13 = false │
00:04:24 #14402 [Verbose] > │ if v15 then │
00:04:24 #14403 [Verbose] > │ failwith<unit> v14 │
00:04:24 #14404 [Verbose] > │ method0() │
00:04:24 #14405 [Verbose] > │ │
00:04:24 #14406 [Verbose] > │ print_and_return / x: 0 │
00:04:24 #14407 [Verbose] > │ print_and_return / x: 1 │
00:04:24 #14408 [Verbose] > │ print_and_return / x: 2 │
00:04:24 #14409 [Verbose] > │ print_and_return / x: 3 │
00:04:24 #14410 [Verbose] > │ print_and_return / x: 4 │
00:04:24 #14411 [Verbose] > │ print_and_return / x: 5 │
00:04:24 #14412 [Verbose] > │ 10 │
00:04:24 #14413 [Verbose] > │ │
00:04:24 #14414 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:24 #14415 [Verbose] >
00:04:24 #14416 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:24 #14417 [Verbose] > // // test
00:04:24 #14418 [Verbose] >
00:04:24 #14419 [Verbose] > stream.new_finite_stream print_and_return 10i32
00:04:24 #14420 [Verbose] > |> stream.memoize
00:04:24 #14421 [Verbose] > |> fun list =>
00:04:24 #14422 [Verbose] > inl list = list ()
00:04:24 #14423 [Verbose] > fun n =>
00:04:24 #14424 [Verbose] > list |> stream.try_item n
00:04:24 #14425 [Verbose] > |> take_while_ (fun n (_ : i32) => n < 5)
00:04:24 #14426 [Verbose] > |> listm'.sum
00:04:24 #14427 [Verbose] > |> _assert_eq 10
00:04:24 #14428 [Verbose] >
00:04:24 #14429 [Verbose] > ╭─[ 401.56ms - stdout ]────────────────────────────────────────────────────────╮
00:04:24 #14430 [Verbose] > │ type UH0 = │
00:04:24 #14431 [Verbose] > │ | UH0_0 of int32 * (unit -> UH0) │
00:04:24 #14432 [Verbose] > │ | UH0_1 │
00:04:24 #14433 [Verbose] > │ and [<Struct>] US0 = │
00:04:24 #14434 [Verbose] > │ | US0_0 of f0_0 : UH0 │
00:04:24 #14435 [Verbose] > │ | US0_1 of f1_0 : (unit -> UH0) │
00:04:24 #14436 [Verbose] > │ and Mut0 = {mutable l0 : US0} │
00:04:24 #14437 [Verbose] > │ and UH1 = │
00:04:24 #14438 [Verbose] > │ | UH1_0 of int32 * UH1 │
00:04:24 #14439 [Verbose] > │ | UH1_1 │
00:04:24 #14440 [Verbose] > │ and [<Struct>] US1 = │
00:04:24 #14441 [Verbose] > │ | US1_0 │
00:04:24 #14442 [Verbose] > │ | US1_1 of f1_0 : int32 │
00:04:24 #14443 [Verbose] > │ let rec closure10 () () : UH0 = │
00:04:24 #14444 [Verbose] > │ UH0_1 │
00:04:24 #14445 [Verbose] > │ and closure9 () () : UH0 = │
00:04:24 #14446 [Verbose] > │ printfn $"print_and_return / x: {9}" │
00:04:24 #14447 [Verbose] > │ let v0 : (unit -> UH0) = closure10() │
00:04:24 #14448 [Verbose] > │ UH0_0(9, v0) │
00:04:24 #14449 [Verbose] > │ and closure8 () () : UH0 = │
00:04:24 #14450 [Verbose] > │ printfn $"print_and_return / x: {8}" │
00:04:24 #14451 [Verbose] > │ let v0 : (unit -> UH0) = closure9() │
00:04:24 #14452 [Verbose] > │ UH0_0(8, v0) │
00:04:24 #14453 [Verbose] > │ and closure7 () () : UH0 = │
00:04:24 #14454 [Verbose] > │ printfn $"print_and_return / x: {7}" │
00:04:24 #14455 [Verbose] > │ let v0 : (unit -> UH0) = closure8() │
00:04:24 #14456 [Verbose] > │ UH0_0(7, v0) │
00:04:24 #14457 [Verbose] > │ and closure6 () () : UH0 = │
00:04:24 #14458 [Verbose] > │ printfn $"print_and_return / x: {6}" │
00:04:24 #14459 [Verbose] > │ let v0 : (unit -> UH0) = closure7() │
00:04:24 #14460 [Verbose] > │ UH0_0(6, v0) │
00:04:24 #14461 [Verbose] > │ and closure5 () () : UH0 = │
00:04:24 #14462 [Verbose] > │ printfn $"print_and_return / x: {5}" │
00:04:24 #14463 [Verbose] > │ let v0 : (unit -> UH0) = closure6() │
00:04:24 #14464 [Verbose] > │ UH0_0(5, v0) │
00:04:24 #14465 [Verbose] > │ and closure4 () () : UH0 = │
00:04:24 #14466 [Verbose] > │ printfn $"print_and_return / x: {4}" │
00:04:24 #14467 [Verbose] > │ let v0 : (unit -> UH0) = closure5() │
00:04:24 #14468 [Verbose] > │ UH0_0(4, v0) │
00:04:24 #14469 [Verbose] > │ and closure3 () () : UH0 = │
00:04:24 #14470 [Verbose] > │ printfn $"print_and_return / x: {3}" │
00:04:24 #14471 [Verbose] > │ let v0 : (unit -> UH0) = closure4() │
00:04:24 #14472 [Verbose] > │ UH0_0(3, v0) │
00:04:24 #14473 [Verbose] > │ and closure2 () () : UH0 = │
00:04:24 #14474 [Verbose] > │ printfn $"print_and_return / x: {2}" │
00:04:24 #14475 [Verbose] > │ let v0 : (unit -> UH0) = closure3() │
00:04:24 #14476 [Verbose] > │ UH0_0(2, v0) │
00:04:24 #14477 [Verbose] > │ and closure1 () () : UH0 = │
00:04:24 #14478 [Verbose] > │ printfn $"print_and_return / x: {1}" │
00:04:24 #14479 [Verbose] > │ let v0 : (unit -> UH0) = closure2() │
00:04:24 #14480 [Verbose] > │ UH0_0(1, v0) │
00:04:24 #14481 [Verbose] > │ and closure0 () () : UH0 = │
00:04:24 #14482 [Verbose] > │ let v0 : (unit -> UH0) = closure1() │
00:04:24 #14483 [Verbose] > │ UH0_0(0, v0) │
00:04:24 #14484 [Verbose] > │ and closure11 (v0 : Mut0) () : UH0 = │
00:04:24 #14485 [Verbose] > │ let v1 : US0 = v0.l0 │
00:04:24 #14486 [Verbose] > │ match v1 with │
00:04:24 #14487 [Verbose] > │ | US0_0(v2) -> (* Computed *) │
00:04:24 #14488 [Verbose] > │ v2 │
00:04:24 #14489 [Verbose] > │ | US0_1(v3) -> (* NotComputed *) │
00:04:24 #14490 [Verbose] > │ let v4 : UH0 = v3 () │
00:04:24 #14491 [Verbose] > │ let v13 : UH0 = │
00:04:24 #14492 [Verbose] > │ match v4 with │
00:04:24 #14493 [Verbose] > │ | UH0_0(v6, v7) -> (* StreamCons *) │
00:04:24 #14494 [Verbose] > │ let v8 : US0 = US0_1(v7) │
00:04:24 #14495 [Verbose] > │ let v9 : Mut0 = {l0 = v8} : Mut0 │
00:04:24 #14496 [Verbose] > │ let v10 : (unit -> UH0) = closure11(v9) │
00:04:24 #14497 [Verbose] > │ UH0_0(v6, v10) │
00:04:24 #14498 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:04:24 #14499 [Verbose] > │ UH0_1 │
00:04:24 #14500 [Verbose] > │ let v14 : US0 = US0_0(v13) │
00:04:24 #14501 [Verbose] > │ v0.l0 <- v14 │
00:04:24 #14502 [Verbose] > │ v13 │
00:04:24 #14503 [Verbose] > │ and method2 (v0 : int32, v1 : UH0) : US1 = │
00:04:24 #14504 [Verbose] > │ match v1 with │
00:04:24 #14505 [Verbose] > │ | UH0_0(v2, v3) -> (* StreamCons *) │
00:04:24 #14506 [Verbose] > │ let v4 : bool = v0 <= 0 │
00:04:24 #14507 [Verbose] > │ if v4 then │
00:04:24 #14508 [Verbose] > │ US1_1(v2) │
00:04:24 #14509 [Verbose] > │ else │
00:04:24 #14510 [Verbose] > │ let v6 : int32 = v0 - 1 │
00:04:24 #14511 [Verbose] > │ let v7 : UH0 = v3 () │
00:04:24 #14512 [Verbose] > │ method2(v6, v7) │
00:04:24 #14513 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:04:24 #14514 [Verbose] > │ US1_0 │
00:04:24 #14515 [Verbose] > │ and method3 (v0 : UH1, v1 : UH1) : UH1 = │
00:04:24 #14516 [Verbose] > │ match v0 with │
00:04:24 #14517 [Verbose] > │ | UH1_0(v2, v3) -> (* Cons *) │
00:04:24 #14518 [Verbose] > │ let v4 : UH1 = UH1_0(v2, v1) │
00:04:24 #14519 [Verbose] > │ method3(v3, v4) │
00:04:24 #14520 [Verbose] > │ | UH1_1 -> (* Nil *) │
00:04:24 #14521 [Verbose] > │ v1 │
00:04:24 #14522 [Verbose] > │ and method1 (v0 : UH0, v1 : UH1, v2 : int32) : UH1 = │
00:04:24 #14523 [Verbose] > │ let v3 : US1 = method2(v2, v0) │
00:04:24 #14524 [Verbose] > │ match v3 with │
00:04:24 #14525 [Verbose] > │ | US1_1(v4) -> (* Some *) │
00:04:24 #14526 [Verbose] > │ let v5 : bool = v4 < 5 │
00:04:24 #14527 [Verbose] > │ if v5 then │
00:04:24 #14528 [Verbose] > │ let v6 : UH1 = UH1_0(v4, v1) │
00:04:24 #14529 [Verbose] > │ let v7 : int32 = v2 + 1 │
00:04:24 #14530 [Verbose] > │ method1(v0, v6, v7) │
00:04:24 #14531 [Verbose] > │ else │
00:04:24 #14532 [Verbose] > │ let v9 : UH1 = UH1_1 │
00:04:24 #14533 [Verbose] > │ method3(v1, v9) │
00:04:24 #14534 [Verbose] > │ | _ -> │
00:04:24 #14535 [Verbose] > │ let v12 : UH1 = UH1_1 │
00:04:24 #14536 [Verbose] > │ method3(v1, v12) │
00:04:24 #14537 [Verbose] > │ and method4 (v0 : UH1, v1 : int32) : int32 = │
00:04:24 #14538 [Verbose] > │ match v0 with │
00:04:24 #14539 [Verbose] > │ | UH1_0(v2, v3) -> (* Cons *) │
00:04:24 #14540 [Verbose] > │ let v4 : int32 = v1 + v2 │
00:04:24 #14541 [Verbose] > │ method4(v3, v4) │
00:04:24 #14542 [Verbose] > │ | UH1_1 -> (* Nil *) │
00:04:24 #14543 [Verbose] > │ v1 │
00:04:24 #14544 [Verbose] > │ and method5 (v0 : bool) : bool = │
00:04:24 #14545 [Verbose] > │ v0 │
00:04:24 #14546 [Verbose] > │ and method0 () : unit = │
00:04:24 #14547 [Verbose] > │ printfn $"print_and_return / x: {0}" │
00:04:24 #14548 [Verbose] > │ let v0 : (unit -> UH0) = closure0() │
00:04:24 #14549 [Verbose] > │ let v1 : US0 = US0_1(v0) │
00:04:24 #14550 [Verbose] > │ let v2 : Mut0 = {l0 = v1} : Mut0 │
00:04:24 #14551 [Verbose] > │ let v3 : US0 = v2.l0 │
00:04:24 #14552 [Verbose] > │ let v18 : UH0 = │
00:04:24 #14553 [Verbose] > │ match v3 with │
00:04:24 #14554 [Verbose] > │ | US0_0(v4) -> (* Computed *) │
00:04:24 #14555 [Verbose] > │ v4 │
00:04:24 #14556 [Verbose] > │ | US0_1(v5) -> (* NotComputed *) │
00:04:24 #14557 [Verbose] > │ let v6 : UH0 = v5 () │
00:04:24 #14558 [Verbose] > │ let v15 : UH0 = │
00:04:24 #14559 [Verbose] > │ match v6 with │
00:04:24 #14560 [Verbose] > │ | UH0_0(v8, v9) -> (* StreamCons *) │
00:04:24 #14561 [Verbose] > │ let v10 : US0 = US0_1(v9) │
00:04:24 #14562 [Verbose] > │ let v11 : Mut0 = {l0 = v10} : Mut0 │
00:04:24 #14563 [Verbose] > │ let v12 : (unit -> UH0) = closure11(v11) │
00:04:24 #14564 [Verbose] > │ UH0_0(v8, v12) │
00:04:24 #14565 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:04:24 #14566 [Verbose] > │ UH0_1 │
00:04:24 #14567 [Verbose] > │ let v16 : US0 = US0_0(v15) │
00:04:24 #14568 [Verbose] > │ v2.l0 <- v16 │
00:04:24 #14569 [Verbose] > │ v15 │
00:04:24 #14570 [Verbose] > │ let v19 : UH1 = UH1_1 │
00:04:24 #14571 [Verbose] > │ let v20 : int32 = 0 │
00:04:24 #14572 [Verbose] > │ let v21 : UH1 = method1(v18, v19, v20) │
00:04:24 #14573 [Verbose] > │ let v22 : int32 = 0 │
00:04:24 #14574 [Verbose] > │ let v23 : int32 = method4(v21, v22) │
00:04:24 #14575 [Verbose] > │ let v24 : string = $"%A{v23}" │
00:04:24 #14576 [Verbose] > │ System.Console.WriteLine v24 │
00:04:24 #14577 [Verbose] > │ let v25 : bool = v23 = 10 │
00:04:24 #14578 [Verbose] > │ let v27 : bool = │
00:04:24 #14579 [Verbose] > │ if v25 then │
00:04:24 #14580 [Verbose] > │ true │
00:04:24 #14581 [Verbose] > │ else │
00:04:24 #14582 [Verbose] > │ method5(v25) │
00:04:24 #14583 [Verbose] > │ let v28 : string = $"__expect / actual: %A{v23} / expected: %A{10}" │
00:04:24 #14584 [Verbose] > │ let v29 : bool = v27 = false │
00:04:24 #14585 [Verbose] > │ if v29 then │
00:04:24 #14586 [Verbose] > │ failwith<unit> v28 │
00:04:24 #14587 [Verbose] > │ method0() │
00:04:24 #14588 [Verbose] > │ │
00:04:24 #14589 [Verbose] > │ print_and_return / x: 0 │
00:04:24 #14590 [Verbose] > │ print_and_return / x: 1 │
00:04:24 #14591 [Verbose] > │ print_and_return / x: 2 │
00:04:24 #14592 [Verbose] > │ print_and_return / x: 3 │
00:04:24 #14593 [Verbose] > │ print_and_return / x: 4 │
00:04:24 #14594 [Verbose] > │ print_and_return / x: 5 │
00:04:24 #14595 [Verbose] > │ 10 │
00:04:24 #14596 [Verbose] > │ │
00:04:24 #14597 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:24 #14598 [Verbose] >
00:04:24 #14599 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:24 #14600 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:24 #14601 [Verbose] > │ ## memoize │
00:04:24 #14602 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:24 #14603 [Verbose] >
00:04:24 #14604 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:24 #14605 [Verbose] > inl memoize seq =
00:04:24 #14606 [Verbose] > inl state = mut [[]]
00:04:24 #14607 [Verbose] > fun n =>
00:04:24 #14608 [Verbose] > match *state |> listm'.try_find (fun (n', _) => n' = n) with
00:04:24 #14609 [Verbose] > | Some (_, v) => v
00:04:24 #14610 [Verbose] > | None =>
00:04:24 #14611 [Verbose] > inl new_state = seq n
00:04:24 #14612 [Verbose] > state <- (n, new_state) :: *state
00:04:24 #14613 [Verbose] > new_state
00:04:24 #14614 [Verbose] >
00:04:24 #14615 [Verbose] > inl memoize_ seq =
00:04:24 #14616 [Verbose] > inl state = mut [[]]
00:04:24 #14617 [Verbose] > fun n =>
00:04:24 #14618 [Verbose] > match *state |> listm'.try_find_ (fun (n', _) => n' = n) with
00:04:24 #14619 [Verbose] > | Some (_, v) => v
00:04:24 #14620 [Verbose] > | None =>
00:04:24 #14621 [Verbose] > inl new_state = seq n
00:04:24 #14622 [Verbose] > state <- (n, new_state) :: *state
00:04:24 #14623 [Verbose] > new_state
00:04:24 #14624 [Verbose] >
00:04:24 #14625 [Verbose] > ╭─[ 234.30ms - stdout ]────────────────────────────────────────────────────────╮
00:04:24 #14626 [Verbose] > │ () │
00:04:24 #14627 [Verbose] > │ │
00:04:24 #14628 [Verbose] > │ │
00:04:24 #14629 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:24 #14630 [Verbose] >
00:04:24 #14631 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:24 #14632 [Verbose] > // // test
00:04:24 #14633 [Verbose] >
00:04:24 #14634 [Verbose] > inl seq =
00:04:24 #14635 [Verbose] > fun n =>
00:04:24 #14636 [Verbose] > n |> print_and_return |> Some
00:04:24 #14637 [Verbose] > |> memoize_
00:04:24 #14638 [Verbose] >
00:04:24 #14639 [Verbose] > seq
00:04:24 #14640 [Verbose] > |> take_while_ (fun n (_ : i32) => n < 5)
00:04:24 #14641 [Verbose] > |> listm'.sum
00:04:24 #14642 [Verbose] > |> _assert_eq 10
00:04:24 #14643 [Verbose] >
00:04:24 #14644 [Verbose] > seq
00:04:24 #14645 [Verbose] > |> take_while_ (fun n _ => n < 5)
00:04:24 #14646 [Verbose] > |> listm'.sum
00:04:24 #14647 [Verbose] > |> _assert_eq 10
00:04:25 #14648 [Verbose] >
00:04:25 #14649 [Verbose] > ╭─[ 458.03ms - stdout ]────────────────────────────────────────────────────────╮
00:04:25 #14650 [Verbose] > │ type [<Struct>] US0 = │
00:04:25 #14651 [Verbose] > │ | US0_0 │
00:04:25 #14652 [Verbose] > │ | US0_1 of f1_0 : int32 │
00:04:25 #14653 [Verbose] > │ and UH0 = │
00:04:25 #14654 [Verbose] > │ | UH0_0 of int32 * US0 * UH0 │
00:04:25 #14655 [Verbose] > │ | UH0_1 │
00:04:25 #14656 [Verbose] > │ and Mut0 = {mutable l0 : UH0} │
00:04:25 #14657 [Verbose] > │ and UH1 = │
00:04:25 #14658 [Verbose] > │ | UH1_0 of int32 * UH1 │
00:04:25 #14659 [Verbose] > │ | UH1_1 │
00:04:25 #14660 [Verbose] > │ and [<Struct>] US1 = │
00:04:25 #14661 [Verbose] > │ | US1_0 │
00:04:25 #14662 [Verbose] > │ | US1_1 of f1_0 : int32 * f1_1 : US0 │
00:04:25 #14663 [Verbose] > │ let rec method2 (v0 : int32, v1 : UH0) : US1 = │
00:04:25 #14664 [Verbose] > │ match v1 with │
00:04:25 #14665 [Verbose] > │ | UH0_0(v3, v4, v5) -> (* Cons *) │
00:04:25 #14666 [Verbose] > │ let v6 : bool = v3 = v0 │
00:04:25 #14667 [Verbose] > │ if v6 then │
00:04:25 #14668 [Verbose] > │ US1_1(v3, v4) │
00:04:25 #14669 [Verbose] > │ else │
00:04:25 #14670 [Verbose] > │ method2(v0, v5) │
00:04:25 #14671 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:04:25 #14672 [Verbose] > │ US1_0 │
00:04:25 #14673 [Verbose] > │ and method3 (v0 : UH1, v1 : UH1) : UH1 = │
00:04:25 #14674 [Verbose] > │ match v0 with │
00:04:25 #14675 [Verbose] > │ | UH1_0(v2, v3) -> (* Cons *) │
00:04:25 #14676 [Verbose] > │ let v4 : UH1 = UH1_0(v2, v1) │
00:04:25 #14677 [Verbose] > │ method3(v3, v4) │
00:04:25 #14678 [Verbose] > │ | UH1_1 -> (* Nil *) │
00:04:25 #14679 [Verbose] > │ v1 │
00:04:25 #14680 [Verbose] > │ and method1 (v0 : Mut0, v1 : UH1, v2 : int32) : UH1 = │
00:04:25 #14681 [Verbose] > │ let v3 : UH0 = v0.l0 │
00:04:25 #14682 [Verbose] > │ let v4 : US1 = method2(v2, v3) │
00:04:25 #14683 [Verbose] > │ let v12 : US0 = │
00:04:25 #14684 [Verbose] > │ match v4 with │
00:04:25 #14685 [Verbose] > │ | US1_0 -> (* None *) │
00:04:25 #14686 [Verbose] > │ printfn $"print_and_return / x: {v2}" │
00:04:25 #14687 [Verbose] > │ let v7 : UH0 = v0.l0 │
00:04:25 #14688 [Verbose] > │ let v8 : US0 = US0_1(v2) │
00:04:25 #14689 [Verbose] > │ let v9 : UH0 = UH0_0(v2, v8, v7) │
00:04:25 #14690 [Verbose] > │ v0.l0 <- v9 │
00:04:25 #14691 [Verbose] > │ US0_1(v2) │
00:04:25 #14692 [Verbose] > │ | US1_1(v5, v6) -> (* Some *) │
00:04:25 #14693 [Verbose] > │ v6 │
00:04:25 #14694 [Verbose] > │ match v12 with │
00:04:25 #14695 [Verbose] > │ | US0_1(v13) -> (* Some *) │
00:04:25 #14696 [Verbose] > │ let v14 : bool = v13 < 5 │
00:04:25 #14697 [Verbose] > │ if v14 then │
00:04:25 #14698 [Verbose] > │ let v15 : UH1 = UH1_0(v13, v1) │
00:04:25 #14699 [Verbose] > │ let v16 : int32 = v2 + 1 │
00:04:25 #14700 [Verbose] > │ method1(v0, v15, v16) │
00:04:25 #14701 [Verbose] > │ else │
00:04:25 #14702 [Verbose] > │ let v18 : UH1 = UH1_1 │
00:04:25 #14703 [Verbose] > │ method3(v1, v18) │
00:04:25 #14704 [Verbose] > │ | _ -> │
00:04:25 #14705 [Verbose] > │ let v21 : UH1 = UH1_1 │
00:04:25 #14706 [Verbose] > │ method3(v1, v21) │
00:04:25 #14707 [Verbose] > │ and method4 (v0 : UH1, v1 : int32) : int32 = │
00:04:25 #14708 [Verbose] > │ match v0 with │
00:04:25 #14709 [Verbose] > │ | UH1_0(v2, v3) -> (* Cons *) │
00:04:25 #14710 [Verbose] > │ let v4 : int32 = v1 + v2 │
00:04:25 #14711 [Verbose] > │ method4(v3, v4) │
00:04:25 #14712 [Verbose] > │ | UH1_1 -> (* Nil *) │
00:04:25 #14713 [Verbose] > │ v1 │
00:04:25 #14714 [Verbose] > │ and method5 (v0 : bool) : bool = │
00:04:25 #14715 [Verbose] > │ v0 │
00:04:25 #14716 [Verbose] > │ and method6 (v0 : Mut0, v1 : UH1, v2 : int32) : UH1 = │
00:04:25 #14717 [Verbose] > │ let v3 : UH0 = v0.l0 │
00:04:25 #14718 [Verbose] > │ let v4 : US1 = method2(v2, v3) │
00:04:25 #14719 [Verbose] > │ let v12 : US0 = │
00:04:25 #14720 [Verbose] > │ match v4 with │
00:04:25 #14721 [Verbose] > │ | US1_0 -> (* None *) │
00:04:25 #14722 [Verbose] > │ printfn $"print_and_return / x: {v2}" │
00:04:25 #14723 [Verbose] > │ let v7 : UH0 = v0.l0 │
00:04:25 #14724 [Verbose] > │ let v8 : US0 = US0_1(v2) │
00:04:25 #14725 [Verbose] > │ let v9 : UH0 = UH0_0(v2, v8, v7) │
00:04:25 #14726 [Verbose] > │ v0.l0 <- v9 │
00:04:25 #14727 [Verbose] > │ US0_1(v2) │
00:04:25 #14728 [Verbose] > │ | US1_1(v5, v6) -> (* Some *) │
00:04:25 #14729 [Verbose] > │ v6 │
00:04:25 #14730 [Verbose] > │ match v12 with │
00:04:25 #14731 [Verbose] > │ | US0_1(v13) -> (* Some *) │
00:04:25 #14732 [Verbose] > │ let v14 : bool = v13 < 5 │
00:04:25 #14733 [Verbose] > │ if v14 then │
00:04:25 #14734 [Verbose] > │ let v15 : UH1 = UH1_0(v13, v1) │
00:04:25 #14735 [Verbose] > │ let v16 : int32 = v2 + 1 │
00:04:25 #14736 [Verbose] > │ method6(v0, v15, v16) │
00:04:25 #14737 [Verbose] > │ else │
00:04:25 #14738 [Verbose] > │ let v18 : UH1 = UH1_1 │
00:04:25 #14739 [Verbose] > │ method3(v1, v18) │
00:04:25 #14740 [Verbose] > │ | _ -> │
00:04:25 #14741 [Verbose] > │ let v21 : UH1 = UH1_1 │
00:04:25 #14742 [Verbose] > │ method3(v1, v21) │
00:04:25 #14743 [Verbose] > │ and method0 () : unit = │
00:04:25 #14744 [Verbose] > │ let v0 : UH0 = UH0_1 │
00:04:25 #14745 [Verbose] > │ let v1 : Mut0 = {l0 = v0} : Mut0 │
00:04:25 #14746 [Verbose] > │ let v2 : UH1 = UH1_1 │
00:04:25 #14747 [Verbose] > │ let v3 : int32 = 0 │
00:04:25 #14748 [Verbose] > │ let v4 : UH1 = method1(v1, v2, v3) │
00:04:25 #14749 [Verbose] > │ let v5 : int32 = 0 │
00:04:25 #14750 [Verbose] > │ let v6 : int32 = method4(v4, v5) │
00:04:25 #14751 [Verbose] > │ let v7 : string = $"%A{v6}" │
00:04:25 #14752 [Verbose] > │ System.Console.WriteLine v7 │
00:04:25 #14753 [Verbose] > │ let v8 : bool = v6 = 10 │
00:04:25 #14754 [Verbose] > │ let v10 : bool = │
00:04:25 #14755 [Verbose] > │ if v8 then │
00:04:25 #14756 [Verbose] > │ true │
00:04:25 #14757 [Verbose] > │ else │
00:04:25 #14758 [Verbose] > │ method5(v8) │
00:04:25 #14759 [Verbose] > │ let v11 : string = $"__expect / actual: %A{v6} / expected: %A{10}" │
00:04:25 #14760 [Verbose] > │ let v12 : bool = v10 = false │
00:04:25 #14761 [Verbose] > │ if v12 then │
00:04:25 #14762 [Verbose] > │ failwith<unit> v11 │
00:04:25 #14763 [Verbose] > │ let v13 : UH1 = UH1_1 │
00:04:25 #14764 [Verbose] > │ let v14 : int32 = 0 │
00:04:25 #14765 [Verbose] > │ let v15 : UH1 = method6(v1, v13, v14) │
00:04:25 #14766 [Verbose] > │ let v16 : int32 = 0 │
00:04:25 #14767 [Verbose] > │ let v17 : int32 = method4(v15, v16) │
00:04:25 #14768 [Verbose] > │ let v18 : string = $"%A{v17}" │
00:04:25 #14769 [Verbose] > │ System.Console.WriteLine v18 │
00:04:25 #14770 [Verbose] > │ let v19 : bool = v17 = 10 │
00:04:25 #14771 [Verbose] > │ let v21 : bool = │
00:04:25 #14772 [Verbose] > │ if v19 then │
00:04:25 #14773 [Verbose] > │ true │
00:04:25 #14774 [Verbose] > │ else │
00:04:25 #14775 [Verbose] > │ method5(v19) │
00:04:25 #14776 [Verbose] > │ let v22 : string = $"__expect / actual: %A{v17} / expected: %A{10}" │
00:04:25 #14777 [Verbose] > │ let v23 : bool = v21 = false │
00:04:25 #14778 [Verbose] > │ if v23 then │
00:04:25 #14779 [Verbose] > │ failwith<unit> v22 │
00:04:25 #14780 [Verbose] > │ method0() │
00:04:25 #14781 [Verbose] > │ │
00:04:25 #14782 [Verbose] > │ print_and_return / x: 0 │
00:04:25 #14783 [Verbose] > │ print_and_return / x: 1 │
00:04:25 #14784 [Verbose] > │ print_and_return / x: 2 │
00:04:25 #14785 [Verbose] > │ print_and_return / x: 3 │
00:04:25 #14786 [Verbose] > │ print_and_return / x: 4 │
00:04:25 #14787 [Verbose] > │ print_and_return / x: 5 │
00:04:25 #14788 [Verbose] > │ 10 │
00:04:25 #14789 [Verbose] > │ 10 │
00:04:25 #14790 [Verbose] > │ │
00:04:25 #14791 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:25 #14792 [Verbose] >
00:04:25 #14793 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:25 #14794 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:25 #14795 [Verbose] > │ ## iterate │
00:04:25 #14796 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:25 #14797 [Verbose] >
00:04:25 #14798 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:25 #14799 [Verbose] > inl iterate f x0 num_steps =
00:04:25 #14800 [Verbose] > inl rec loop x n =
00:04:25 #14801 [Verbose] > if n <= 0
00:04:25 #14802 [Verbose] > then x
00:04:25 #14803 [Verbose] > else loop (f x) (n - 1)
00:04:25 #14804 [Verbose] > loop x0 num_steps
00:04:25 #14805 [Verbose] >
00:04:25 #14806 [Verbose] > ╭─[ 300.66ms - stdout ]────────────────────────────────────────────────────────╮
00:04:25 #14807 [Verbose] > │ () │
00:04:25 #14808 [Verbose] > │ │
00:04:25 #14809 [Verbose] > │ │
00:04:25 #14810 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:25 #14811 [Verbose] >
00:04:25 #14812 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:25 #14813 [Verbose] > // // test
00:04:25 #14814 [Verbose] >
00:04:25 #14815 [Verbose] > 10i32 |> iterate ((*) 2) 1i32
00:04:25 #14816 [Verbose] > |> _assert_eq 1024
00:04:25 #14817 [Verbose] >
00:04:25 #14818 [Verbose] > ╭─[ 307.72ms - stdout ]────────────────────────────────────────────────────────╮
00:04:25 #14819 [Verbose] > │ let rec method0 () : unit = │
00:04:25 #14820 [Verbose] > │ let v0 : string = $"%A{1024}" │
00:04:25 #14821 [Verbose] > │ System.Console.WriteLine v0 │
00:04:25 #14822 [Verbose] > │ let v1 : string = $"__expect / actual: %A{1024} / expected: %A{1024}" │
00:04:25 #14823 [Verbose] > │ () │
00:04:25 #14824 [Verbose] > │ method0() │
00:04:25 #14825 [Verbose] > │ │
00:04:25 #14826 [Verbose] > │ 1024 │
00:04:25 #14827 [Verbose] > │ │
00:04:25 #14828 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:25 #14829 [Verbose] >
00:04:25 #14830 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:25 #14831 [Verbose] > inl iterate_ f x0 num_steps =
00:04:25 #14832 [Verbose] > let rec loop x n =
00:04:25 #14833 [Verbose] > if n <= 0
00:04:25 #14834 [Verbose] > then x
00:04:25 #14835 [Verbose] > else loop (f x) (n - 1)
00:04:25 #14836 [Verbose] > loop x0 num_steps
00:04:26 #14837 [Verbose] >
00:04:26 #14838 [Verbose] > ╭─[ 233.71ms - stdout ]────────────────────────────────────────────────────────╮
00:04:26 #14839 [Verbose] > │ () │
00:04:26 #14840 [Verbose] > │ │
00:04:26 #14841 [Verbose] > │ │
00:04:26 #14842 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:26 #14843 [Verbose] >
00:04:26 #14844 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:26 #14845 [Verbose] > // // test
00:04:26 #14846 [Verbose] >
00:04:26 #14847 [Verbose] > 10i32 |> iterate_ ((*) 2) 1i32
00:04:26 #14848 [Verbose] > |> _assert_eq 1024
00:04:26 #14849 [Verbose] >
00:04:26 #14850 [Verbose] > ╭─[ 285.00ms - stdout ]────────────────────────────────────────────────────────╮
00:04:26 #14851 [Verbose] > │ let rec method1 (v0 : int32, v1 : int32) : int32 = │
00:04:26 #14852 [Verbose] > │ let v2 : bool = v1 <= 0 │
00:04:26 #14853 [Verbose] > │ if v2 then │
00:04:26 #14854 [Verbose] > │ v0 │
00:04:26 #14855 [Verbose] > │ else │
00:04:26 #14856 [Verbose] > │ let v3 : int32 = 2 * v0 │
00:04:26 #14857 [Verbose] > │ let v4 : int32 = v1 - 1 │
00:04:26 #14858 [Verbose] > │ method1(v3, v4) │
00:04:26 #14859 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:04:26 #14860 [Verbose] > │ v0 │
00:04:26 #14861 [Verbose] > │ and method0 () : unit = │
00:04:26 #14862 [Verbose] > │ let v0 : int32 = 1 │
00:04:26 #14863 [Verbose] > │ let v1 : int32 = 10 │
00:04:26 #14864 [Verbose] > │ let v2 : int32 = method1(v0, v1) │
00:04:26 #14865 [Verbose] > │ let v3 : string = $"%A{v2}" │
00:04:26 #14866 [Verbose] > │ System.Console.WriteLine v3 │
00:04:26 #14867 [Verbose] > │ let v4 : bool = v2 = 1024 │
00:04:26 #14868 [Verbose] > │ let v6 : bool = │
00:04:26 #14869 [Verbose] > │ if v4 then │
00:04:26 #14870 [Verbose] > │ true │
00:04:26 #14871 [Verbose] > │ else │
00:04:26 #14872 [Verbose] > │ method2(v4) │
00:04:26 #14873 [Verbose] > │ let v7 : string = $"__expect / actual: %A{v2} / expected: %A{1024}" │
00:04:26 #14874 [Verbose] > │ let v8 : bool = v6 = false │
00:04:26 #14875 [Verbose] > │ if v8 then │
00:04:26 #14876 [Verbose] > │ failwith<unit> v7 │
00:04:26 #14877 [Verbose] > │ method0() │
00:04:26 #14878 [Verbose] > │ │
00:04:26 #14879 [Verbose] > │ 1024 │
00:04:26 #14880 [Verbose] > │ │
00:04:26 #14881 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:26 #14882 [Verbose] >
00:04:26 #14883 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:26 #14884 [Verbose] > inl iterate' f x0 num_steps =
00:04:26 #14885 [Verbose] > listm.init num_steps id
00:04:26 #14886 [Verbose] > |> listm.fold (fun x _ => f x) x0
00:04:26 #14887 [Verbose] >
00:04:26 #14888 [Verbose] > ╭─[ 281.23ms - stdout ]────────────────────────────────────────────────────────╮
00:04:26 #14889 [Verbose] > │ () │
00:04:26 #14890 [Verbose] > │ │
00:04:26 #14891 [Verbose] > │ │
00:04:26 #14892 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:26 #14893 [Verbose] >
00:04:26 #14894 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:26 #14895 [Verbose] > // // test
00:04:26 #14896 [Verbose] >
00:04:26 #14897 [Verbose] > 10i32 |> iterate' ((*) 2) 1i32
00:04:26 #14898 [Verbose] > |> _assert_eq 1024
00:04:26 #14899 [Verbose] >
00:04:26 #14900 [Verbose] > ╭─[ 249.05ms - stdout ]────────────────────────────────────────────────────────╮
00:04:26 #14901 [Verbose] > │ let rec method0 () : unit = │
00:04:26 #14902 [Verbose] > │ let v0 : string = $"%A{1024}" │
00:04:26 #14903 [Verbose] > │ System.Console.WriteLine v0 │
00:04:26 #14904 [Verbose] > │ let v1 : string = $"__expect / actual: %A{1024} / expected: %A{1024}" │
00:04:26 #14905 [Verbose] > │ () │
00:04:26 #14906 [Verbose] > │ method0() │
00:04:26 #14907 [Verbose] > │ │
00:04:26 #14908 [Verbose] > │ 1024 │
00:04:26 #14909 [Verbose] > │ │
00:04:26 #14910 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:26 #14911 [Verbose] >
00:04:26 #14912 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:26 #14913 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:26 #14914 [Verbose] > │ ## find_last │
00:04:26 #14915 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:26 #14916 [Verbose] >
00:04:26 #14917 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:26 #14918 [Verbose] > inl find_last forall item result. fold_fn fn target : option result =
00:04:26 #14919 [Verbose] > fold_fn (fun (item : item) (result : option result) =>
00:04:26 #14920 [Verbose] > match result with
00:04:26 #14921 [Verbose] > | None => fn item
00:04:26 #14922 [Verbose] > | result => result
00:04:26 #14923 [Verbose] > ) target (None : option result)
00:04:26 #14924 [Verbose] >
00:04:26 #14925 [Verbose] > inl array_find_last forall item result. (fn : item -> option result) (target : a
00:04:26 #14926 [Verbose] > i32 item) : option result =
00:04:26 #14927 [Verbose] > find_last am.foldBack fn target
00:04:26 #14928 [Verbose] >
00:04:26 #14929 [Verbose] > inl list_find_last forall item result. (fn : item -> option result) (target :
00:04:26 #14930 [Verbose] > list item) : option result =
00:04:26 #14931 [Verbose] > find_last listm.foldBack fn target
00:04:27 #14932 [Verbose] >
00:04:27 #14933 [Verbose] > ╭─[ 286.61ms - stdout ]────────────────────────────────────────────────────────╮
00:04:27 #14934 [Verbose] > │ () │
00:04:27 #14935 [Verbose] > │ │
00:04:27 #14936 [Verbose] > │ │
00:04:27 #14937 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:28 #14938 [Verbose] > [NbConvertApp] Converting notebook seq.dib.ipynb to html
00:04:28 #14939 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:04:28 #14940 [Verbose] > validate(nb)
00:04:29 #14941 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:04:29 #14942 [Verbose] > return _pygments_highlight(
00:04:29 #14943 [Verbose] > [NbConvertApp] Writing 411156 bytes to seq.dib.html
00:04:30 #14944 [Debug] executeAsync / exitCode: 0 / output.Length: 139448
00:04:30 #14945 [Debug] main / executeCommand / exitCode: 0
00:04:30 #14946 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 util.dib" -Retries 3"
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:04:32 #14947 [Verbose] >
00:04:32 #14948 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:32 #14949 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:32 #14950 [Verbose] > │ # util │
00:04:32 #14951 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:32 #14952 [Verbose] >
00:04:32 #14953 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:32 #14954 [Verbose] > // // test
00:04:32 #14955 [Verbose] >
00:04:32 #14956 [Verbose] > open testing
00:04:36 #14957 [Verbose] >
00:04:36 #14958 [Verbose] > ╭─[ 3.54s - stdout ]───────────────────────────────────────────────────────────╮
00:04:36 #14959 [Verbose] > │ () │
00:04:36 #14960 [Verbose] > │ │
00:04:36 #14961 [Verbose] > │ │
00:04:36 #14962 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:36 #14963 [Verbose] >
00:04:36 #14964 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:36 #14965 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:36 #14966 [Verbose] > │ ## ski │
00:04:36 #14967 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:36 #14968 [Verbose] >
00:04:36 #14969 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:36 #14970 [Verbose] > union rec ski =
00:04:36 #14971 [Verbose] > | I
00:04:36 #14972 [Verbose] > | K
00:04:36 #14973 [Verbose] > | S
00:04:36 #14974 [Verbose] > | App : ski * ski
00:04:36 #14975 [Verbose] >
00:04:36 #14976 [Verbose] > inl rec eval ski =
00:04:36 #14977 [Verbose] > match ski with
00:04:36 #14978 [Verbose] > | App (App (K, x), y) => eval x
00:04:36 #14979 [Verbose] > | App (App (App (S, x), y), z) => eval (App (App (x, z), App (y, z)))
00:04:36 #14980 [Verbose] > | App (I, x) => eval x
00:04:36 #14981 [Verbose] > | App (K, x) => App (K, eval x)
00:04:36 #14982 [Verbose] > | App (f, x) => eval (App (eval f, x))
00:04:36 #14983 [Verbose] > | _ => ski
00:04:36 #14984 [Verbose] >
00:04:36 #14985 [Verbose] > ╭─[ 262.21ms - stdout ]────────────────────────────────────────────────────────╮
00:04:36 #14986 [Verbose] > │ () │
00:04:36 #14987 [Verbose] > │ │
00:04:36 #14988 [Verbose] > │ │
00:04:36 #14989 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:36 #14990 [Verbose] >
00:04:36 #14991 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:36 #14992 [Verbose] > // // test
00:04:36 #14993 [Verbose] >
00:04:36 #14994 [Verbose] > eval I
00:04:36 #14995 [Verbose] > |> _assert_eq I
00:04:36 #14996 [Verbose] >
00:04:36 #14997 [Verbose] > eval (App (I, I))
00:04:36 #14998 [Verbose] > |> _assert_eq I
00:04:36 #14999 [Verbose] >
00:04:36 #15000 [Verbose] > eval (App (I, App (I, I)))
00:04:36 #15001 [Verbose] > |> _assert_eq I
00:04:36 #15002 [Verbose] >
00:04:36 #15003 [Verbose] > eval (App (App (I, I), I))
00:04:36 #15004 [Verbose] > |> _assert_eq I
00:04:36 #15005 [Verbose] >
00:04:36 #15006 [Verbose] > eval (App (App (App (I, I), I), I))
00:04:36 #15007 [Verbose] > |> _assert_eq I
00:04:36 #15008 [Verbose] >
00:04:36 #15009 [Verbose] > eval K
00:04:36 #15010 [Verbose] > |> _assert_eq K
00:04:36 #15011 [Verbose] >
00:04:36 #15012 [Verbose] > eval (App (K, I))
00:04:36 #15013 [Verbose] > |> _assert_eq (App (K, I))
00:04:36 #15014 [Verbose] >
00:04:36 #15015 [Verbose] > eval (App (K, K))
00:04:36 #15016 [Verbose] > |> _assert_eq (App (K, K))
00:04:36 #15017 [Verbose] >
00:04:36 #15018 [Verbose] > eval (App (App (K, I), K))
00:04:36 #15019 [Verbose] > |> _assert_eq I
00:04:36 #15020 [Verbose] >
00:04:36 #15021 [Verbose] > eval (App (App (K, K), I))
00:04:36 #15022 [Verbose] > |> _assert_eq K
00:04:36 #15023 [Verbose] >
00:04:36 #15024 [Verbose] > eval (App (App (App (App (K, K), I), S), K))
00:04:36 #15025 [Verbose] > |> _assert_eq S
00:04:36 #15026 [Verbose] >
00:04:36 #15027 [Verbose] > eval S
00:04:36 #15028 [Verbose] > |> _assert_eq S
00:04:36 #15029 [Verbose] >
00:04:36 #15030 [Verbose] > eval (App (App (App (S, I), I), I))
00:04:36 #15031 [Verbose] > |> _assert_eq I
00:04:36 #15032 [Verbose] >
00:04:36 #15033 [Verbose] > eval (App (App (App (S, K), K), I))
00:04:36 #15034 [Verbose] > |> _assert_eq I
00:04:36 #15035 [Verbose] >
00:04:36 #15036 [Verbose] > eval (App (App (App (S, K), I), (App (App (K, I), S))))
00:04:36 #15037 [Verbose] > |> _assert_eq I
00:04:36 #15038 [Verbose] >
00:04:36 #15039 [Verbose] > eval (App (App (K, S), App (I, App (App (App (S, K), S), I))))
00:04:36 #15040 [Verbose] > |> _assert_eq S
00:04:36 #15041 [Verbose] >
00:04:36 #15042 [Verbose] > eval (App (App (App (S, K), I), K))
00:04:36 #15043 [Verbose] > |> _assert_eq K
00:04:37 #15044 [Verbose] >
00:04:37 #15045 [Verbose] > ╭─[ 1.35s - stdout ]───────────────────────────────────────────────────────────╮
00:04:37 #15046 [Verbose] > │ type UH0 = │
00:04:37 #15047 [Verbose] > │ | UH0_0 of UH0 * UH0 │
00:04:37 #15048 [Verbose] > │ | UH0_1 │
00:04:37 #15049 [Verbose] > │ | UH0_2 │
00:04:37 #15050 [Verbose] > │ | UH0_3 │
00:04:37 #15051 [Verbose] > │ let rec method0 () : unit = │
00:04:37 #15052 [Verbose] > │ let v0 : UH0 = UH0_1 │
00:04:37 #15053 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:04:37 #15054 [Verbose] > │ System.Console.WriteLine v1 │
00:04:37 #15055 [Verbose] > │ let v5 : UH0 = UH0_1 │
00:04:37 #15056 [Verbose] > │ let v6 : UH0 = UH0_1 │
00:04:37 #15057 [Verbose] > │ let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}" │
00:04:37 #15058 [Verbose] > │ let v8 : UH0 = UH0_1 │
00:04:37 #15059 [Verbose] > │ let v9 : string = $"%A{v8}" │
00:04:37 #15060 [Verbose] > │ System.Console.WriteLine v9 │
00:04:37 #15061 [Verbose] > │ let v13 : UH0 = UH0_1 │
00:04:37 #15062 [Verbose] > │ let v14 : UH0 = UH0_1 │
00:04:37 #15063 [Verbose] > │ let v15 : string = $"__expect / actual: %A{v13} / expected: %A{v14}" │
00:04:37 #15064 [Verbose] > │ let v16 : UH0 = UH0_1 │
00:04:37 #15065 [Verbose] > │ let v17 : string = $"%A{v16}" │
00:04:37 #15066 [Verbose] > │ System.Console.WriteLine v17 │
00:04:37 #15067 [Verbose] > │ let v21 : UH0 = UH0_1 │
00:04:37 #15068 [Verbose] > │ let v22 : UH0 = UH0_1 │
00:04:37 #15069 [Verbose] > │ let v23 : string = $"__expect / actual: %A{v21} / expected: %A{v22}" │
00:04:37 #15070 [Verbose] > │ let v24 : UH0 = UH0_1 │
00:04:37 #15071 [Verbose] > │ let v25 : string = $"%A{v24}" │
00:04:37 #15072 [Verbose] > │ System.Console.WriteLine v25 │
00:04:37 #15073 [Verbose] > │ let v29 : UH0 = UH0_1 │
00:04:37 #15074 [Verbose] > │ let v30 : UH0 = UH0_1 │
00:04:37 #15075 [Verbose] > │ let v31 : string = $"__expect / actual: %A{v29} / expected: %A{v30}" │
00:04:37 #15076 [Verbose] > │ let v32 : UH0 = UH0_1 │
00:04:37 #15077 [Verbose] > │ let v33 : string = $"%A{v32}" │
00:04:37 #15078 [Verbose] > │ System.Console.WriteLine v33 │
00:04:37 #15079 [Verbose] > │ let v37 : UH0 = UH0_1 │
00:04:37 #15080 [Verbose] > │ let v38 : UH0 = UH0_1 │
00:04:37 #15081 [Verbose] > │ let v39 : string = $"__expect / actual: %A{v37} / expected: %A{v38}" │
00:04:37 #15082 [Verbose] > │ let v40 : UH0 = UH0_2 │
00:04:37 #15083 [Verbose] > │ let v41 : string = $"%A{v40}" │
00:04:37 #15084 [Verbose] > │ System.Console.WriteLine v41 │
00:04:37 #15085 [Verbose] > │ let v45 : UH0 = UH0_2 │
00:04:37 #15086 [Verbose] > │ let v46 : UH0 = UH0_2 │
00:04:37 #15087 [Verbose] > │ let v47 : string = $"__expect / actual: %A{v45} / expected: %A{v46}" │
00:04:37 #15088 [Verbose] > │ let v48 : UH0 = UH0_2 │
00:04:37 #15089 [Verbose] > │ let v49 : UH0 = UH0_1 │
00:04:37 #15090 [Verbose] > │ let v50 : UH0 = UH0_0(v48, v49) │
00:04:37 #15091 [Verbose] > │ let v51 : string = $"%A{v50}" │
00:04:37 #15092 [Verbose] > │ System.Console.WriteLine v51 │
00:04:37 #15093 [Verbose] > │ let v63 : UH0 = UH0_2 │
00:04:37 #15094 [Verbose] > │ let v64 : UH0 = UH0_1 │
00:04:37 #15095 [Verbose] > │ let v65 : UH0 = UH0_0(v63, v64) │
00:04:37 #15096 [Verbose] > │ let v66 : UH0 = UH0_2 │
00:04:37 #15097 [Verbose] > │ let v67 : UH0 = UH0_1 │
00:04:37 #15098 [Verbose] > │ let v68 : UH0 = UH0_0(v66, v67) │
00:04:37 #15099 [Verbose] > │ let v69 : string = $"__expect / actual: %A{v65} / expected: %A{v68}" │
00:04:37 #15100 [Verbose] > │ let v70 : UH0 = UH0_2 │
00:04:37 #15101 [Verbose] > │ let v71 : UH0 = UH0_2 │
00:04:37 #15102 [Verbose] > │ let v72 : UH0 = UH0_0(v70, v71) │
00:04:37 #15103 [Verbose] > │ let v73 : string = $"%A{v72}" │
00:04:37 #15104 [Verbose] > │ System.Console.WriteLine v73 │
00:04:37 #15105 [Verbose] > │ let v85 : UH0 = UH0_2 │
00:04:37 #15106 [Verbose] > │ let v86 : UH0 = UH0_2 │
00:04:37 #15107 [Verbose] > │ let v87 : UH0 = UH0_0(v85, v86) │
00:04:37 #15108 [Verbose] > │ let v88 : UH0 = UH0_2 │
00:04:37 #15109 [Verbose] > │ let v89 : UH0 = UH0_2 │
00:04:37 #15110 [Verbose] > │ let v90 : UH0 = UH0_0(v88, v89) │
00:04:37 #15111 [Verbose] > │ let v91 : string = $"__expect / actual: %A{v87} / expected: %A{v90}" │
00:04:37 #15112 [Verbose] > │ let v92 : UH0 = UH0_1 │
00:04:37 #15113 [Verbose] > │ let v93 : string = $"%A{v92}" │
00:04:37 #15114 [Verbose] > │ System.Console.WriteLine v93 │
00:04:37 #15115 [Verbose] > │ let v97 : UH0 = UH0_1 │
00:04:37 #15116 [Verbose] > │ let v98 : UH0 = UH0_1 │
00:04:37 #15117 [Verbose] > │ let v99 : string = $"__expect / actual: %A{v97} / expected: %A{v98}" │
00:04:37 #15118 [Verbose] > │ let v100 : UH0 = UH0_2 │
00:04:37 #15119 [Verbose] > │ let v101 : string = $"%A{v100}" │
00:04:37 #15120 [Verbose] > │ System.Console.WriteLine v101 │
00:04:37 #15121 [Verbose] > │ let v105 : UH0 = UH0_2 │
00:04:37 #15122 [Verbose] > │ let v106 : UH0 = UH0_2 │
00:04:37 #15123 [Verbose] > │ let v107 : string = $"__expect / actual: %A{v105} / expected: %A{v106}" │
00:04:37 #15124 [Verbose] > │ let v108 : UH0 = UH0_3 │
00:04:37 #15125 [Verbose] > │ let v109 : string = $"%A{v108}" │
00:04:37 #15126 [Verbose] > │ System.Console.WriteLine v109 │
00:04:37 #15127 [Verbose] > │ let v113 : UH0 = UH0_3 │
00:04:37 #15128 [Verbose] > │ let v114 : UH0 = UH0_3 │
00:04:37 #15129 [Verbose] > │ let v115 : string = $"__expect / actual: %A{v113} / expected: %A{v114}" │
00:04:37 #15130 [Verbose] > │ let v116 : UH0 = UH0_3 │
00:04:37 #15131 [Verbose] > │ let v117 : string = $"%A{v116}" │
00:04:37 #15132 [Verbose] > │ System.Console.WriteLine v117 │
00:04:37 #15133 [Verbose] > │ let v121 : UH0 = UH0_3 │
00:04:37 #15134 [Verbose] > │ let v122 : UH0 = UH0_3 │
00:04:37 #15135 [Verbose] > │ let v123 : string = $"__expect / actual: %A{v121} / expected: %A{v122}" │
00:04:37 #15136 [Verbose] > │ let v124 : UH0 = UH0_1 │
00:04:37 #15137 [Verbose] > │ let v125 : string = $"%A{v124}" │
00:04:37 #15138 [Verbose] > │ System.Console.WriteLine v125 │
00:04:37 #15139 [Verbose] > │ let v129 : UH0 = UH0_1 │
00:04:37 #15140 [Verbose] > │ let v130 : UH0 = UH0_1 │
00:04:37 #15141 [Verbose] > │ let v131 : string = $"__expect / actual: %A{v129} / expected: %A{v130}" │
00:04:37 #15142 [Verbose] > │ let v132 : UH0 = UH0_1 │
00:04:37 #15143 [Verbose] > │ let v133 : string = $"%A{v132}" │
00:04:37 #15144 [Verbose] > │ System.Console.WriteLine v133 │
00:04:37 #15145 [Verbose] > │ let v137 : UH0 = UH0_1 │
00:04:37 #15146 [Verbose] > │ let v138 : UH0 = UH0_1 │
00:04:37 #15147 [Verbose] > │ let v139 : string = $"__expect / actual: %A{v137} / expected: %A{v138}" │
00:04:37 #15148 [Verbose] > │ let v140 : UH0 = UH0_1 │
00:04:37 #15149 [Verbose] > │ let v141 : string = $"%A{v140}" │
00:04:37 #15150 [Verbose] > │ System.Console.WriteLine v141 │
00:04:37 #15151 [Verbose] > │ let v145 : UH0 = UH0_1 │
00:04:37 #15152 [Verbose] > │ let v146 : UH0 = UH0_1 │
00:04:37 #15153 [Verbose] > │ let v147 : string = $"__expect / actual: %A{v145} / expected: %A{v146}" │
00:04:37 #15154 [Verbose] > │ let v148 : UH0 = UH0_3 │
00:04:37 #15155 [Verbose] > │ let v149 : string = $"%A{v148}" │
00:04:37 #15156 [Verbose] > │ System.Console.WriteLine v149 │
00:04:37 #15157 [Verbose] > │ let v153 : UH0 = UH0_3 │
00:04:37 #15158 [Verbose] > │ let v154 : UH0 = UH0_3 │
00:04:37 #15159 [Verbose] > │ let v155 : string = $"__expect / actual: %A{v153} / expected: %A{v154}" │
00:04:37 #15160 [Verbose] > │ let v156 : UH0 = UH0_2 │
00:04:37 #15161 [Verbose] > │ let v157 : string = $"%A{v156}" │
00:04:37 #15162 [Verbose] > │ System.Console.WriteLine v157 │
00:04:37 #15163 [Verbose] > │ let v161 : UH0 = UH0_2 │
00:04:37 #15164 [Verbose] > │ let v162 : UH0 = UH0_2 │
00:04:37 #15165 [Verbose] > │ let v163 : string = $"__expect / actual: %A{v161} / expected: %A{v162}" │
00:04:37 #15166 [Verbose] > │ () │
00:04:37 #15167 [Verbose] > │ method0() │
00:04:37 #15168 [Verbose] > │ │
00:04:37 #15169 [Verbose] > │ UH0_1 │
00:04:37 #15170 [Verbose] > │ UH0_1 │
00:04:37 #15171 [Verbose] > │ UH0_1 │
00:04:37 #15172 [Verbose] > │ UH0_1 │
00:04:37 #15173 [Verbose] > │ UH0_1 │
00:04:37 #15174 [Verbose] > │ UH0_2 │
00:04:37 #15175 [Verbose] > │ UH0_0 (UH0_2, UH0_1) │
00:04:37 #15176 [Verbose] > │ UH0_0 (UH0_2, UH0_2) │
00:04:37 #15177 [Verbose] > │ UH0_1 │
00:04:37 #15178 [Verbose] > │ UH0_2 │
00:04:37 #15179 [Verbose] > │ UH0_3 │
00:04:37 #15180 [Verbose] > │ UH0_3 │
00:04:37 #15181 [Verbose] > │ UH0_1 │
00:04:37 #15182 [Verbose] > │ UH0_1 │
00:04:37 #15183 [Verbose] > │ UH0_1 │
00:04:37 #15184 [Verbose] > │ UH0_3 │
00:04:37 #15185 [Verbose] > │ UH0_2 │
00:04:37 #15186 [Verbose] > │ │
00:04:37 #15187 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:39 #15188 [Verbose] > [NbConvertApp] Converting notebook util.dib.ipynb to html
00:04:39 #15189 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:04:39 #15190 [Verbose] > validate(nb)
00:04:40 #15191 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:04:40 #15192 [Verbose] > return _pygments_highlight(
00:04:40 #15193 [Verbose] > [NbConvertApp] Writing 288561 bytes to util.dib.html
00:04:40 #15194 [Debug] executeAsync / exitCode: 0 / output.Length: 15199
00:04:40 #15195 [Debug] main / executeCommand / exitCode: 0
00:04:40 #15196 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 file_system.dib" -Retries 3"
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:04:43 #15197 [Verbose] >
00:04:43 #15198 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:43 #15199 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:43 #15200 [Verbose] > │ # file_system │
00:04:43 #15201 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:43 #15202 [Verbose] >
00:04:43 #15203 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:43 #15204 [Verbose] > open rust_operators
00:04:43 #15205 [Verbose] > open sm'_operators
00:04:46 #15206 [Verbose] >
00:04:46 #15207 [Verbose] > ╭─[ 3.66s - stdout ]───────────────────────────────────────────────────────────╮
00:04:46 #15208 [Verbose] > │ () │
00:04:46 #15209 [Verbose] > │ │
00:04:46 #15210 [Verbose] > │ │
00:04:46 #15211 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:46 #15212 [Verbose] >
00:04:46 #15213 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:46 #15214 [Verbose] > // // test
00:04:46 #15215 [Verbose] >
00:04:46 #15216 [Verbose] > open testing
00:04:46 #15217 [Verbose] >
00:04:46 #15218 [Verbose] > ╭─[ 226.82ms - stdout ]────────────────────────────────────────────────────────╮
00:04:46 #15219 [Verbose] > │ () │
00:04:46 #15220 [Verbose] > │ │
00:04:46 #15221 [Verbose] > │ │
00:04:46 #15222 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:46 #15223 [Verbose] >
00:04:46 #15224 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:46 #15225 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:46 #15226 [Verbose] > │ ## types │
00:04:46 #15227 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:46 #15228 [Verbose] >
00:04:46 #15229 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:46 #15230 [Verbose] > inl types () =
00:04:46 #15231 [Verbose] > ()
00:04:47 #15232 [Verbose] >
00:04:47 #15233 [Verbose] > ╭─[ 251.32ms - stdout ]────────────────────────────────────────────────────────╮
00:04:47 #15234 [Verbose] > │ () │
00:04:47 #15235 [Verbose] > │ │
00:04:47 #15236 [Verbose] > │ │
00:04:47 #15237 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:47 #15238 [Verbose] >
00:04:47 #15239 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:47 #15240 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:47 #15241 [Verbose] > │ ## (</>) │
00:04:47 #15242 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:47 #15243 [Verbose] >
00:04:47 #15244 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:47 #15245 [Verbose] > inl (</>) (a : string) (b : string) : string =
00:04:47 #15246 [Verbose] > $'System.IO.Path.Combine (!a, !b)'
00:04:47 #15247 [Verbose] >
00:04:47 #15248 [Verbose] > ╭─[ 235.19ms - stdout ]────────────────────────────────────────────────────────╮
00:04:47 #15249 [Verbose] > │ () │
00:04:47 #15250 [Verbose] > │ │
00:04:47 #15251 [Verbose] > │ │
00:04:47 #15252 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:47 #15253 [Verbose] >
00:04:47 #15254 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:47 #15255 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:47 #15256 [Verbose] > │ ## create_temp_directory_name │
00:04:47 #15257 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:47 #15258 [Verbose] >
00:04:47 #15259 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:47 #15260 [Verbose] > inl create_temp_directory_name () =
00:04:47 #15261 [Verbose] > run_target function
00:04:47 #15262 [Verbose] > | Fsharp (Native) => fun () =>
00:04:47 #15263 [Verbose] > inl root =
00:04:47 #15264 [Verbose] > $'System.Reflection.Assembly.GetEntryAssembly().GetName().Name' : string
00:04:47 #15265 [Verbose] >
00:04:47 #15266 [Verbose] > ($'System.IO.Path.GetTempPath' () : string)
00:04:47 #15267 [Verbose] > </> ($'$"{!root}"' : string)
00:04:47 #15268 [Verbose] > </> (date_time.new_guid_from_date_time $'System.DateTime.Now' |>
00:04:47 #15269 [Verbose] > sm'.obj_to_string)
00:04:47 #15270 [Verbose] > | x => fun () => failwith $'$"create_temp_directory_name target: {!x}"'
00:04:47 #15271 [Verbose] >
00:04:47 #15272 [Verbose] > ╭─[ 315.51ms - stdout ]────────────────────────────────────────────────────────╮
00:04:47 #15273 [Verbose] > │ () │
00:04:47 #15274 [Verbose] > │ │
00:04:47 #15275 [Verbose] > │ │
00:04:47 #15276 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:47 #15277 [Verbose] >
00:04:47 #15278 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:47 #15279 [Verbose] > // // test
00:04:47 #15280 [Verbose] >
00:04:47 #15281 [Verbose] > create_temp_directory_name ()
00:04:47 #15282 [Verbose] > |> _contains ($'System.IO.Path.DirectorySeparatorChar' : char)
00:04:49 #15283 [Verbose] >
00:04:49 #15284 [Verbose] > ╭─[ 1.50s - stdout ]───────────────────────────────────────────────────────────╮
00:04:49 #15285 [Verbose] > │ type [<Struct>] US0 = │
00:04:49 #15286 [Verbose] > │ | US0_0 │
00:04:49 #15287 [Verbose] > │ | US0_1 │
00:04:49 #15288 [Verbose] > │ | US0_2 │
00:04:49 #15289 [Verbose] > │ and [<Struct>] US1 = │
00:04:49 #15290 [Verbose] > │ | US1_0 of f0_0 : US0 │
00:04:49 #15291 [Verbose] > │ | US1_1 of f1_0 : US0 │
00:04:49 #15292 [Verbose] > │ and [<Struct>] US2 = │
00:04:49 #15293 [Verbose] > │ | US2_0 │
00:04:49 #15294 [Verbose] > │ | US2_1 of f1_0 : char │
00:04:49 #15295 [Verbose] > │ let rec closure0 (v0 : char) (v1 : char) : bool = │
00:04:49 #15296 [Verbose] > │ let v2 : bool = v0 = v1 │
00:04:49 #15297 [Verbose] > │ v2 │
00:04:49 #15298 [Verbose] > │ and closure1 () (v0 : char) : US2 = │
00:04:49 #15299 [Verbose] > │ US2_1(v0) │
00:04:49 #15300 [Verbose] > │ and method1 (v0 : bool) : bool = │
00:04:49 #15301 [Verbose] > │ v0 │
00:04:49 #15302 [Verbose] > │ and method0 () : unit = │
00:04:49 #15303 [Verbose] > │ let mutable result = None │
00:04:49 #15304 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:04:49 #15305 [Verbose] > │ let v0 : US0 = US0_1 │
00:04:49 #15306 [Verbose] > │ let v1 : US1 = US1_1(v0) │
00:04:49 #15307 [Verbose] > │ let v2 : string = $"create_temp_directory_name target: {v1}" │
00:04:49 #15308 [Verbose] > │ let v3 : string = failwith<string> v2 │
00:04:49 #15309 [Verbose] > │ v3 │
00:04:49 #15310 [Verbose] > │ #endif │
00:04:49 #15311 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:04:49 #15312 [Verbose] > │ let v4 : US0 = US0_2 │
00:04:49 #15313 [Verbose] > │ let v5 : US1 = US1_1(v4) │
00:04:49 #15314 [Verbose] > │ let v6 : string = $"create_temp_directory_name target: {v5}" │
00:04:49 #15315 [Verbose] > │ let v7 : string = failwith<string> v6 │
00:04:49 #15316 [Verbose] > │ v7 │
00:04:49 #15317 [Verbose] > │ #endif │
00:04:49 #15318 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:04:49 #15319 [Verbose] > │ let v8 : string = │
00:04:49 #15320 [Verbose] > │ System.Reflection.Assembly.GetEntryAssembly().GetName().Name │
00:04:49 #15321 [Verbose] > │ let v9 : (unit -> string) = System.IO.Path.GetTempPath │
00:04:49 #15322 [Verbose] > │ let v10 : string = v9 () │
00:04:49 #15323 [Verbose] > │ let v11 : string = $"{v8}" │
00:04:49 #15324 [Verbose] > │ let v12 : string = System.IO.Path.Combine (v10, v11) │
00:04:49 #15325 [Verbose] > │ let v13 : System.DateTime = System.DateTime.Now │
00:04:49 #15326 [Verbose] > │ let v14 : System.Guid = System.Guid.NewGuid () │
00:04:49 #15327 [Verbose] > │ let v15 : (System.Guid -> string) = _.ToString() │
00:04:49 #15328 [Verbose] > │ let v16 : string = v15 v14 │
00:04:49 #15329 [Verbose] > │ let v17 : string = v13.ToString "yyyyMMdd-HHmm-ssff-ffff-f" │
00:04:49 #15330 [Verbose] > │ let v18 : System.Guid = System.Guid $"{v17}{v16.[v17.Length..]}" │
00:04:49 #15331 [Verbose] > │ let v19 : (System.Guid -> string) = _.ToString() │
00:04:49 #15332 [Verbose] > │ let v20 : string = v19 v18 │
00:04:49 #15333 [Verbose] > │ let v21 : string = System.IO.Path.Combine (v12, v20) │
00:04:49 #15334 [Verbose] > │ v21 │
00:04:49 #15335 [Verbose] > │ #endif │
00:04:49 #15336 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:04:49 #15337 [Verbose] > │ let v22 : US0 = US0_0 │
00:04:49 #15338 [Verbose] > │ let v23 : US1 = US1_0(v22) │
00:04:49 #15339 [Verbose] > │ let v24 : string = $"create_temp_directory_name target: {v23}" │
00:04:49 #15340 [Verbose] > │ let v25 : string = failwith<string> v24 │
00:04:49 #15341 [Verbose] > │ v25 │
00:04:49 #15342 [Verbose] > │ #endif │
00:04:49 #15343 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:04:49 #15344 [Verbose] > │ let v26 : US0 = US0_2 │
00:04:49 #15345 [Verbose] > │ let v27 : US1 = US1_0(v26) │
00:04:49 #15346 [Verbose] > │ let v28 : string = $"create_temp_directory_name target: {v27}" │
00:04:49 #15347 [Verbose] > │ let v29 : string = failwith<string> v28 │
00:04:49 #15348 [Verbose] > │ v29 │
00:04:49 #15349 [Verbose] > │ #endif │
00:04:49 #15350 [Verbose] > │ |> fun x -> result <- Some x │
00:04:49 #15351 [Verbose] > │ let v30 : string = result |> Option.get │
00:04:49 #15352 [Verbose] > │ let v31 : char = System.IO.Path.DirectorySeparatorChar │
00:04:49 #15353 [Verbose] > │ let v32 : string = $"%A{v30}" │
00:04:49 #15354 [Verbose] > │ System.Console.WriteLine v32 │
00:04:49 #15355 [Verbose] > │ let v33 : ((char -> bool) -> (string -> char option)) = Seq.tryFind │
00:04:49 #15356 [Verbose] > │ let v34 : (char -> bool) = closure0(v31) │
00:04:49 #15357 [Verbose] > │ let v35 : (string -> char option) = v33 v34 │
00:04:49 #15358 [Verbose] > │ let v36 : char option = v35 v30 │
00:04:49 #15359 [Verbose] > │ let v37 : (char -> US2) = closure1() │
00:04:49 #15360 [Verbose] > │ let v38 : US2 = US2_0 │
00:04:49 #15361 [Verbose] > │ let v39 : US2 = v36 |> Option.map v37 |> Option.defaultValue v38 │
00:04:49 #15362 [Verbose] > │ let v41 : bool = │
00:04:49 #15363 [Verbose] > │ match v39 with │
00:04:49 #15364 [Verbose] > │ | US2_0 -> (* None *) │
00:04:49 #15365 [Verbose] > │ true │
00:04:49 #15366 [Verbose] > │ | _ -> │
00:04:49 #15367 [Verbose] > │ false │
00:04:49 #15368 [Verbose] > │ let v42 : bool = v41 <> true │
00:04:49 #15369 [Verbose] > │ let v44 : bool = │
00:04:49 #15370 [Verbose] > │ if v42 then │
00:04:49 #15371 [Verbose] > │ true │
00:04:49 #15372 [Verbose] > │ else │
00:04:49 #15373 [Verbose] > │ method1(v42) │
00:04:49 #15374 [Verbose] > │ let v45 : string = $"__expect / actual: %A{v30} / expected: %A{v31}" │
00:04:49 #15375 [Verbose] > │ let v46 : bool = v44 = false │
00:04:49 #15376 [Verbose] > │ if v46 then │
00:04:49 #15377 [Verbose] > │ failwith<unit> v45 │
00:04:49 #15378 [Verbose] > │ method0() │
00:04:49 #15379 [Verbose] > │ │
00:04:49 #15380 [Verbose] > │ "C:\Users\i574n\AppData\Local\Temp\dotnet-repl\20240330-1717-4568-6861-6d126 │
00:04:49 #15381 [Verbose] > │ 680c77d" │
00:04:49 #15382 [Verbose] > │ │
00:04:49 #15383 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:49 #15384 [Verbose] >
00:04:49 #15385 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:49 #15386 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:49 #15387 [Verbose] > │ ## main │
00:04:49 #15388 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:49 #15389 [Verbose] >
00:04:49 #15390 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:49 #15391 [Verbose] > inl main () =
00:04:49 #15392 [Verbose] > $"let create_temp_directory_name () = !create_temp_directory_name ()" : ()
00:04:49 #15393 [Verbose] >
00:04:49 #15394 [Verbose] > ╭─[ 344.81ms - stdout ]────────────────────────────────────────────────────────╮
00:04:49 #15395 [Verbose] > │ type [<Struct>] US0 = │
00:04:49 #15396 [Verbose] > │ | US0_0 │
00:04:49 #15397 [Verbose] > │ | US0_1 │
00:04:49 #15398 [Verbose] > │ | US0_2 │
00:04:49 #15399 [Verbose] > │ and [<Struct>] US1 = │
00:04:49 #15400 [Verbose] > │ | US1_0 of f0_0 : US0 │
00:04:49 #15401 [Verbose] > │ | US1_1 of f1_0 : US0 │
00:04:49 #15402 [Verbose] > │ let rec closure0 () () : string = │
00:04:49 #15403 [Verbose] > │ let mutable result = None │
00:04:49 #15404 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:04:49 #15405 [Verbose] > │ let v0 : US0 = US0_1 │
00:04:49 #15406 [Verbose] > │ let v1 : US1 = US1_1(v0) │
00:04:49 #15407 [Verbose] > │ let v2 : string = $"create_temp_directory_name target: {v1}" │
00:04:49 #15408 [Verbose] > │ let v3 : string = failwith<string> v2 │
00:04:49 #15409 [Verbose] > │ v3 │
00:04:49 #15410 [Verbose] > │ #endif │
00:04:49 #15411 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:04:49 #15412 [Verbose] > │ let v4 : US0 = US0_2 │
00:04:49 #15413 [Verbose] > │ let v5 : US1 = US1_1(v4) │
00:04:49 #15414 [Verbose] > │ let v6 : string = $"create_temp_directory_name target: {v5}" │
00:04:49 #15415 [Verbose] > │ let v7 : string = failwith<string> v6 │
00:04:49 #15416 [Verbose] > │ v7 │
00:04:49 #15417 [Verbose] > │ #endif │
00:04:49 #15418 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:04:49 #15419 [Verbose] > │ let v8 : string = │
00:04:49 #15420 [Verbose] > │ System.Reflection.Assembly.GetEntryAssembly().GetName().Name │
00:04:49 #15421 [Verbose] > │ let v9 : (unit -> string) = System.IO.Path.GetTempPath │
00:04:49 #15422 [Verbose] > │ let v10 : string = v9 () │
00:04:49 #15423 [Verbose] > │ let v11 : string = $"{v8}" │
00:04:49 #15424 [Verbose] > │ let v12 : string = System.IO.Path.Combine (v10, v11) │
00:04:49 #15425 [Verbose] > │ let v13 : System.DateTime = System.DateTime.Now │
00:04:49 #15426 [Verbose] > │ let v14 : System.Guid = System.Guid.NewGuid () │
00:04:49 #15427 [Verbose] > │ let v15 : (System.Guid -> string) = _.ToString() │
00:04:49 #15428 [Verbose] > │ let v16 : string = v15 v14 │
00:04:49 #15429 [Verbose] > │ let v17 : string = v13.ToString "yyyyMMdd-HHmm-ssff-ffff-f" │
00:04:49 #15430 [Verbose] > │ let v18 : System.Guid = System.Guid $"{v17}{v16.[v17.Length..]}" │
00:04:49 #15431 [Verbose] > │ let v19 : (System.Guid -> string) = _.ToString() │
00:04:49 #15432 [Verbose] > │ let v20 : string = v19 v18 │
00:04:49 #15433 [Verbose] > │ let v21 : string = System.IO.Path.Combine (v12, v20) │
00:04:49 #15434 [Verbose] > │ v21 │
00:04:49 #15435 [Verbose] > │ #endif │
00:04:49 #15436 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:04:49 #15437 [Verbose] > │ let v22 : US0 = US0_0 │
00:04:49 #15438 [Verbose] > │ let v23 : US1 = US1_0(v22) │
00:04:49 #15439 [Verbose] > │ let v24 : string = $"create_temp_directory_name target: {v23}" │
00:04:49 #15440 [Verbose] > │ let v25 : string = failwith<string> v24 │
00:04:49 #15441 [Verbose] > │ v25 │
00:04:49 #15442 [Verbose] > │ #endif │
00:04:49 #15443 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:04:49 #15444 [Verbose] > │ let v26 : US0 = US0_2 │
00:04:49 #15445 [Verbose] > │ let v27 : US1 = US1_0(v26) │
00:04:49 #15446 [Verbose] > │ let v28 : string = $"create_temp_directory_name target: {v27}" │
00:04:49 #15447 [Verbose] > │ let v29 : string = failwith<string> v28 │
00:04:49 #15448 [Verbose] > │ v29 │
00:04:49 #15449 [Verbose] > │ #endif │
00:04:49 #15450 [Verbose] > │ |> fun x -> result <- Some x │
00:04:49 #15451 [Verbose] > │ let v30 : string = result |> Option.get │
00:04:49 #15452 [Verbose] > │ v30 │
00:04:49 #15453 [Verbose] > │ let v0 : (unit -> string) = closure0() │
00:04:49 #15454 [Verbose] > │ let create_temp_directory_name () = v0 () │
00:04:49 #15455 [Verbose] > │ () │
00:04:49 #15456 [Verbose] > │ │
00:04:49 #15457 [Verbose] > │ │
00:04:49 #15458 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:51 #15459 [Verbose] > [NbConvertApp] Converting notebook file_system.dib.ipynb to html
00:04:51 #15460 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:04:51 #15461 [Verbose] > validate(nb)
00:04:51 #15462 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:04:51 #15463 [Verbose] > return _pygments_highlight(
00:04:52 #15464 [Verbose] > [NbConvertApp] Writing 287818 bytes to file_system.dib.html
00:04:52 #15465 [Debug] executeAsync / exitCode: 0 / output.Length: 19188
00:04:52 #15466 [Debug] main / executeCommand / exitCode: 0
00:04:52 #15467 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 rust.dib" -Retries 3"
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:04:54 #15468 [Verbose] >
00:04:54 #15469 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:54 #15470 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:55 #15471 [Verbose] > │ # rust │
00:04:55 #15472 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:55 #15473 [Verbose] >
00:04:55 #15474 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:55 #15475 [Verbose] > // // test
00:04:55 #15476 [Verbose] >
00:04:55 #15477 [Verbose] > open testing
00:04:58 #15478 [Verbose] >
00:04:58 #15479 [Verbose] > ╭─[ 3.60s - stdout ]───────────────────────────────────────────────────────────╮
00:04:58 #15480 [Verbose] > │ () │
00:04:58 #15481 [Verbose] > │ │
00:04:58 #15482 [Verbose] > │ │
00:04:58 #15483 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:58 #15484 [Verbose] >
00:04:58 #15485 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:58 #15486 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:58 #15487 [Verbose] > │ ## emit_expr │
00:04:58 #15488 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:58 #15489 [Verbose] >
00:04:58 #15490 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:58 #15491 [Verbose] > inl emit_expr forall a t. (args : a) (code : string) : t =
00:04:58 #15492 [Verbose] > real
00:04:58 #15493 [Verbose] > $"Fable.Core.RustInterop.emitRustExpr !args !code" : t
00:04:58 #15494 [Verbose] >
00:04:58 #15495 [Verbose] > ╭─[ 310.27ms - stdout ]────────────────────────────────────────────────────────╮
00:04:58 #15496 [Verbose] > │ () │
00:04:58 #15497 [Verbose] > │ │
00:04:58 #15498 [Verbose] > │ │
00:04:58 #15499 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:58 #15500 [Verbose] >
00:04:58 #15501 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:58 #15502 [Verbose] > inl types () =
00:04:58 #15503 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"Func0<$0>\")>]] type
00:04:58 #15504 [Verbose] > Func0<'T> = class end"
00:04:58 #15505 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"Func1<$0, $1>\")>]] type
00:04:58 #15506 [Verbose] > Func0<'T, 'U> = class end"
00:04:58 #15507 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"Box<$0>\")>]] type Box<'T> =
00:04:58 #15508 [Verbose] > class end"
00:04:58 #15509 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"dyn $0\")>]] type Dyn<'T> =
00:04:58 #15510 [Verbose] > class end"
00:04:58 #15511 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"Fn() -> $0\")>]] type Fn<'T>
00:04:58 #15512 [Verbose] > = class end"
00:04:58 #15513 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"Fn()\")>]] type FnUnit =
00:04:58 #15514 [Verbose] > class end"
00:04:58 #15515 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"FnOnce() -> $0\")>]] type
00:04:58 #15516 [Verbose] > FnOnce<'T> = class end"
00:04:58 #15517 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"Fn($0, $1)\")>]] type
00:04:58 #15518 [Verbose] > ActionFn2<'T, 'U> = class end"
00:04:58 #15519 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"impl $0\")>]] type Impl<'T> =
00:04:58 #15520 [Verbose] > class end"
00:04:58 #15521 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"mut $0\")>]] type Mut<'T> =
00:04:58 #15522 [Verbose] > class end"
00:04:58 #15523 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"&$0\")>]] type Ref<'T> =
00:04:58 #15524 [Verbose] > class end"
00:04:58 #15525 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"&'static $0\")>]] type
00:04:58 #15526 [Verbose] > StaticRef<'T> = class end"
00:04:58 #15527 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"MutCell<$0>\")>]] type
00:04:58 #15528 [Verbose] > MutCell<'T> = class end"
00:04:58 #15529 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::any::Any\")>]] type
00:04:58 #15530 [Verbose] > std_any_Any = class end"
00:04:58 #15531 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::cell::RefCell<$0>\")>]]
00:04:58 #15532 [Verbose] > type std_cell_RefCell<'T> = class end"
00:04:58 #15533 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::pin::Pin<$0>\")>]] type
00:04:58 #15534 [Verbose] > std_pin_Pin<'T> = class end"
00:04:58 #15535 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::rc::Rc<$0>\")>]] type
00:04:58 #15536 [Verbose] > std_rc_Rc<'T> = class end"
00:04:58 #15537 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::rc::Weak<$0>\")>]] type
00:04:58 #15538 [Verbose] > std_rc_Weak<'T> = class end"
00:04:58 #15539 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::sync::Arc<$0>\")>]] type
00:04:58 #15540 [Verbose] > std_sync_Arc<'T> = class end"
00:04:59 #15541 [Verbose] >
00:04:59 #15542 [Verbose] > ╭─[ 282.11ms - stdout ]────────────────────────────────────────────────────────╮
00:04:59 #15543 [Verbose] > │ () │
00:04:59 #15544 [Verbose] > │ │
00:04:59 #15545 [Verbose] > │ │
00:04:59 #15546 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:59 #15547 [Verbose] >
00:04:59 #15548 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:59 #15549 [Verbose] > nominal ref_cell t = $"std_cell_RefCell<`t>"
00:04:59 #15550 [Verbose] > nominal rc t = $"std_rc_Rc<`t>"
00:04:59 #15551 [Verbose] > nominal weak_rc t = $"std_rc_Weak<`t>"
00:04:59 #15552 [Verbose] > nominal box t = $"Box<`t>"
00:04:59 #15553 [Verbose] > nominal mut_cell t = $"MutCell<`t>"
00:04:59 #15554 [Verbose] > nominal pin t = $"std_pin_Pin<`t>"
00:04:59 #15555 [Verbose] > nominal arc t = $"std_sync_Arc<`t>"
00:04:59 #15556 [Verbose] > nominal dyn' t = $"Dyn<`t>"
00:04:59 #15557 [Verbose] > nominal fn' t = $"Fn<`t>"
00:04:59 #15558 [Verbose] > nominal action_fn2 t u = $"ActionFn2<`t, `u>"
00:04:59 #15559 [Verbose] > nominal fn_once t = $"FnOnce<`t>"
00:04:59 #15560 [Verbose] > nominal fn_unit = $"FnUnit"
00:04:59 #15561 [Verbose] > nominal func0 t = $"Func0<`t>"
00:04:59 #15562 [Verbose] > nominal func1 t u = $"Func0<`t, `u>"
00:04:59 #15563 [Verbose] > nominal impl t = $"Impl<`t>"
00:04:59 #15564 [Verbose] > nominal mut' t = $"Mut<`t>"
00:04:59 #15565 [Verbose] > nominal ref' t = $"Ref<`t>"
00:04:59 #15566 [Verbose] > nominal static_ref' t = $"StaticRef<`t>"
00:04:59 #15567 [Verbose] >
00:04:59 #15568 [Verbose] > ╭─[ 239.81ms - stdout ]────────────────────────────────────────────────────────╮
00:04:59 #15569 [Verbose] > │ () │
00:04:59 #15570 [Verbose] > │ │
00:04:59 #15571 [Verbose] > │ │
00:04:59 #15572 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:59 #15573 [Verbose] >
00:04:59 #15574 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:59 #15575 [Verbose] > inl (~!\) forall t. (code : string) : t =
00:04:59 #15576 [Verbose] > emit_expr () code
00:04:59 #15577 [Verbose] >
00:04:59 #15578 [Verbose] > inl (~!\\) forall t u. ((args : t), (code : string)) : u =
00:04:59 #15579 [Verbose] > emit_expr args code
00:04:59 #15580 [Verbose] >
00:04:59 #15581 [Verbose] > inl new_box forall t. (x : t) : box t =
00:04:59 #15582 [Verbose] > inl x = join x
00:04:59 #15583 [Verbose] > !\($'"Box::new(!x)"')
00:04:59 #15584 [Verbose] >
00:04:59 #15585 [Verbose] > inl new_rc forall t. (x : t) : rc t =
00:04:59 #15586 [Verbose] > inl x = join x
00:04:59 #15587 [Verbose] > !\($'"std::rc::Rc::new(!x)"')
00:04:59 #15588 [Verbose] >
00:04:59 #15589 [Verbose] > inl rc_clone forall t. (x : rc t) : rc t =
00:04:59 #15590 [Verbose] > inl x = join x
00:04:59 #15591 [Verbose] > !\($'"std::rc::Rc::clone(&!x)"')
00:04:59 #15592 [Verbose] >
00:04:59 #15593 [Verbose] > inl rc_downgrade forall t. (x : rc t) : weak_rc t =
00:04:59 #15594 [Verbose] > inl x = join x
00:04:59 #15595 [Verbose] > !\($'"std::rc::Rc::downgrade(&!x)"')
00:04:59 #15596 [Verbose] >
00:04:59 #15597 [Verbose] > inl new_ref_cell forall t. (x : t) : ref_cell t =
00:04:59 #15598 [Verbose] > inl x = join x
00:04:59 #15599 [Verbose] > !\($'"std::cell::RefCell::new(!x)"')
00:04:59 #15600 [Verbose] >
00:04:59 #15601 [Verbose] > inl ref_cell_borrow forall t. (x : rc (ref_cell t)) : t =
00:04:59 #15602 [Verbose] > inl x = join x
00:04:59 #15603 [Verbose] > !\($'"*std::cell::RefCell::borrow(&std::rc::Rc::clone(&!x))"')
00:04:59 #15604 [Verbose] >
00:04:59 #15605 [Verbose] > inl ref_cell_borrow_mut forall t. (x : rc (ref_cell t)) : mut' t =
00:04:59 #15606 [Verbose] > inl x = join x
00:04:59 #15607 [Verbose] > !\($'"*std::cell::RefCell::borrow_mut(&std::rc::Rc::clone(&!x))"')
00:04:59 #15608 [Verbose] >
00:04:59 #15609 [Verbose] > inl to_mut forall t. (x : t) : mut' t =
00:04:59 #15610 [Verbose] > // !\($'"let mut !x = !x"')
00:04:59 #15611 [Verbose] > // !\($'"!x"')
00:04:59 #15612 [Verbose] > emit_expr () $"\"let mut !x = !x\""
00:04:59 #15613 [Verbose] > emit_expr () $"\"!x\""
00:04:59 #15614 [Verbose] >
00:04:59 #15615 [Verbose] > inl ref_map forall t u. (fn : t -> u) (x : ref' t) : ref' u =
00:04:59 #15616 [Verbose] > !\($'"!fn(!x)"')
00:04:59 #15617 [Verbose] >
00:04:59 #15618 [Verbose] > inl from_mut forall t. (x : mut' t) : t =
00:04:59 #15619 [Verbose] > !\($'"!x"')
00:04:59 #15620 [Verbose] >
00:04:59 #15621 [Verbose] > inl new_arc forall t. (x : t) : arc t =
00:04:59 #15622 [Verbose] > inl x = join x
00:04:59 #15623 [Verbose] > !\($'"std::sync::Arc::new(!x)"')
00:04:59 #15624 [Verbose] >
00:04:59 #15625 [Verbose] > inl box_fn forall t. (x : () -> ()) : box t =
00:04:59 #15626 [Verbose] > inl x = join x
00:04:59 #15627 [Verbose] > !\($'"Box::new(move || !x())"')
00:04:59 #15628 [Verbose] >
00:04:59 #15629 [Verbose] > inl new_pin forall t. (x : t) : pin (box t) =
00:04:59 #15630 [Verbose] > inl x = join x
00:04:59 #15631 [Verbose] > !\($'"Box::pin(!x)"')
00:04:59 #15632 [Verbose] >
00:04:59 #15633 [Verbose] > inl deref forall t. (ref : ref' t) : t =
00:04:59 #15634 [Verbose] > inl ref = join ref
00:04:59 #15635 [Verbose] > !\($'"*!ref"')
00:04:59 #15636 [Verbose] >
00:04:59 #15637 [Verbose] > inl ops_deref forall t. (ref : t) : t =
00:04:59 #15638 [Verbose] > inl ref = join ref
00:04:59 #15639 [Verbose] > !\($'"core::ops::Deref::deref(&!ref)"')
00:04:59 #15640 [Verbose] >
00:04:59 #15641 [Verbose] > inl func0_get forall t. (x : func0 t) : t =
00:04:59 #15642 [Verbose] > inl x = join x
00:04:59 #15643 [Verbose] > !\($'"!x()"')
00:04:59 #15644 [Verbose] >
00:04:59 #15645 [Verbose] > inl func0_move forall t. (fn : func0 t) : t =
00:04:59 #15646 [Verbose] > inl fn = join fn
00:04:59 #15647 [Verbose] > !\($'"(move || !fn())()"')
00:04:59 #15648 [Verbose] >
00:04:59 #15649 [Verbose] > inl move forall t. (fn : () -> t) : func0 t =
00:04:59 #15650 [Verbose] > inl fn = join fn
00:04:59 #15651 [Verbose] > !\($'"Func0::new(move || !fn())"')
00:04:59 #15652 [Verbose] >
00:04:59 #15653 [Verbose] > inl to_static_ref_unbox forall t. (x : ref' t) : static_ref' t =
00:04:59 #15654 [Verbose] > $"!x |> unbox"
00:04:59 #15655 [Verbose] >
00:04:59 #15656 [Verbose] > inl from_static_ref_unbox forall t. (x : static_ref' t) : ref' t =
00:04:59 #15657 [Verbose] > $"!x |> unbox"
00:04:59 #15658 [Verbose] >
00:04:59 #15659 [Verbose] > inl box_leak forall t. (x : box t) : static_ref' (mut' t) =
00:04:59 #15660 [Verbose] > emit_expr () $"\"Box::leak(!x)\""
00:04:59 #15661 [Verbose] >
00:04:59 #15662 [Verbose] >
00:04:59 #15663 [Verbose] > inl fix_closure depth' x' =
00:04:59 #15664 [Verbose] > inl depth = depth' |> fst
00:04:59 #15665 [Verbose] > if depth = 1
00:04:59 #15666 [Verbose] > then !\($'"!x' })"')
00:04:59 #15667 [Verbose] > elif depth = 2
00:04:59 #15668 [Verbose] > then !\($'"!x' }})"')
00:04:59 #15669 [Verbose] > elif depth = 3
00:04:59 #15670 [Verbose] > then !\($'"!x' }}})"')
00:04:59 #15671 [Verbose] > elif depth = 4
00:04:59 #15672 [Verbose] > then !\($'"!x' }}}})"')
00:04:59 #15673 [Verbose] > elif depth = 5
00:04:59 #15674 [Verbose] > then !\($'"!x' }}}}})"')
00:04:59 #15675 [Verbose] > elif depth = 6 // , 4) // ?
00:04:59 #15676 [Verbose] > then !\($'"!x' }}}}}})"')
00:04:59 #15677 [Verbose] > elif depth = 7 // , 5) // 7
00:04:59 #15678 [Verbose] > then !\($'"!x' }}}}}}})"')
00:04:59 #15679 [Verbose] > elif depth = 8 // , 5) // 7
00:04:59 #15680 [Verbose] > then !\($'"!x' }}}}}}}})"')
00:04:59 #15681 [Verbose] >
00:04:59 #15682 [Verbose] > inl depth = depth' |> snd
00:04:59 #15683 [Verbose] > if depth = 1
00:04:59 #15684 [Verbose] > then !\($'"{ //"')
00:04:59 #15685 [Verbose] > elif depth = 2
00:04:59 #15686 [Verbose] > then !\($'"{{ //"')
00:04:59 #15687 [Verbose] > elif depth = 3
00:04:59 #15688 [Verbose] > then !\($'"{{{ //"')
00:04:59 #15689 [Verbose] > elif depth = 4
00:04:59 #15690 [Verbose] > then !\($'"{{{{ //"')
00:04:59 #15691 [Verbose] > elif depth = 5
00:04:59 #15692 [Verbose] > then !\($'"{{{{{ //"')
00:04:59 #15693 [Verbose] > elif depth = 6
00:04:59 #15694 [Verbose] > then !\($'"{{{{{{ //"')
00:04:59 #15695 [Verbose] > elif depth = 7
00:04:59 #15696 [Verbose] > then !\($'"{{{{{{{ //"')
00:04:59 #15697 [Verbose] > elif depth = 8
00:04:59 #15698 [Verbose] > then !\($'"{{{{{{{{ //"')
00:04:59 #15699 [Verbose] >
00:04:59 #15700 [Verbose] > ╭─[ 281.91ms - stdout ]────────────────────────────────────────────────────────╮
00:04:59 #15701 [Verbose] > │ () │
00:04:59 #15702 [Verbose] > │ │
00:04:59 #15703 [Verbose] > │ │
00:04:59 #15704 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:01 #15705 [Verbose] > [NbConvertApp] Converting notebook rust.dib.ipynb to html
00:05:01 #15706 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:05:01 #15707 [Verbose] > validate(nb)
00:05:01 #15708 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:05:01 #15709 [Verbose] > return _pygments_highlight(
00:05:02 #15710 [Verbose] > [NbConvertApp] Writing 304811 bytes to rust.dib.html
00:05:02 #15711 [Debug] executeAsync / exitCode: 0 / output.Length: 9675
00:05:02 #15712 [Debug] main / executeCommand / exitCode: 0
00:05:02 #15713 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 physics.dib" -Retries 3"
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:05:05 #15714 [Verbose] >
00:05:05 #15715 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:05 #15716 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:05 #15717 [Verbose] > │ # physics │
00:05:05 #15718 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:05 #15719 [Verbose] >
00:05:05 #15720 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:05:05 #15721 [Verbose] > #!import ../../lib/fsharp/Plotting.dib
00:05:05 #15722 [Verbose] >
00:05:05 #15723 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:05:05 #15724 [Verbose] > #r
00:05:05 #15725 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
00:05:05 #15726 [Verbose] > spNetCore.Html.Abstractions.dll"
00:05:05 #15727 [Verbose] > #r
00:05:05 #15728 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:05:05 #15729 [Verbose] > otNet.Interactive.dll"
00:05:05 #15730 [Verbose] > #r
00:05:05 #15731 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:05:05 #15732 [Verbose] > otNet.Interactive.FSharp.dll"
00:05:05 #15733 [Verbose] > #r
00:05:05 #15734 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:05:05 #15735 [Verbose] > otNet.Interactive.Formatting.dll"
00:05:05 #15736 [Verbose] > open System
00:05:05 #15737 [Verbose] > open System.IO
00:05:05 #15738 [Verbose] > open System.Text
00:05:05 #15739 [Verbose] > open Microsoft.DotNet.Interactive.Formatting
00:05:08 #15740 [Verbose] >
00:05:08 #15741 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:05:08 #15742 [Verbose] > #r
00:05:08 #15743 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:05:08 #15744 [Verbose] > otNet.Interactive.FSharp.dll"
00:05:08 #15745 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
00:05:08 #15746 [Verbose] > #r
00:05:08 #15747 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:05:08 #15748 [Verbose] > otNet.Interactive.dll"
00:05:08 #15749 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel
00:05:08 #15750 [Verbose] >
00:05:08 #15751 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:05:08 #15752 [Verbose] > //// test
00:05:08 #15753 [Verbose] >
00:05:08 #15754 [Verbose] > Formatter.ListExpansionLimit <- 100
00:05:08 #15755 [Verbose] >
00:05:08 #15756 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:05:08 #15757 [Verbose] > #r
00:05:08 #15758 [Verbose] > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
00:05:08 #15759 [Verbose] > dard2.1/FSharp.Control.AsyncSeq.dll"
00:05:08 #15760 [Verbose] > #r
00:05:08 #15761 [Verbose] > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
00:05:08 #15762 [Verbose] > 0/System.Reactive.dll"
00:05:08 #15763 [Verbose] > #r
00:05:08 #15764 [Verbose] > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib
00:05:08 #15765 [Verbose] > netstandard2.0/System.Reactive.Linq.dll"
00:05:08 #15766 [Verbose] > #r
00:05:08 #15767 [Verbose] > @"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
00:05:08 #15768 [Verbose] > #r
00:05:08 #15769 [Verbose] > @"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
00:05:08 #15770 [Verbose] > b/net6.0/System.CommandLine.dll"
00:05:08 #15771 [Verbose] > #r
00:05:08 #15772 [Verbose] > @"../../../../../../../.nuget/packages/fsharp.json/0.4.1/lib/netstandard2.0/FSha
00:05:08 #15773 [Verbose] > rp.Json.dll"
00:05:08 #15774 [Verbose] >
00:05:08 #15775 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:05:08 #15776 [Verbose] > type [[<Struct>]] US0 =
00:05:08 #15777 [Verbose] > | US0_0
00:05:08 #15778 [Verbose] > | US0_1
00:05:08 #15779 [Verbose] > and [[<Struct>]] US1 =
00:05:08 #15780 [Verbose] > | US1_0
00:05:08 #15781 [Verbose] > | US1_1 of f1_0 : US0
00:05:08 #15782 [Verbose] > let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
00:05:08 #15783 [Verbose] > v0
00:05:08 #15784 [Verbose] > and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
00:05:08 #15785 [Verbose] > let mutable result = None
00:05:08 #15786 [Verbose] > #if FABLE_COMPILER_RUST && !WASM
00:05:08 #15787 [Verbose] > let v1 : (unit -> unit) = method0(v0)
00:05:08 #15788 [Verbose] > let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
00:05:08 #15789 [Verbose] > () = Fable.Core.RustInterop.emitRustExpr () "v1()" }
00:05:08 #15790 [Verbose] > v2
00:05:08 #15791 [Verbose] > #endif
00:05:08 #15792 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:05:08 #15793 [Verbose] > let v3 : (unit -> unit) = method0(v0)
00:05:08 #15794 [Verbose] > let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
00:05:08 #15795 [Verbose] > () = Fable.Core.RustInterop.emitRustExpr () "v3()" }
00:05:08 #15796 [Verbose] > v4
00:05:08 #15797 [Verbose] > #endif
00:05:08 #15798 [Verbose] > #if !FABLE_COMPILER && !F...
00:05:09 #15799 [Verbose] >
00:05:09 #15800 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:05:09 #15801 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}
00:05:09 #15802 [Verbose] > and Mut1 = {mutable l0 : int32}
00:05:09 #15803 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =
00:05:09 #15804 [Verbose] > let v2 : bool = v1.Contains v0
00:05:09 #15805 [Verbose] > v2
00:05:09 #15806 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =
00:05:09 #15807 [Verbose] > closure1(v0)
00:05:09 #15808 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =
00:05:09 #15809 [Verbose] > let v2 : bool = v1.EndsWith v0
00:05:09 #15810 [Verbose] > v2
00:05:09 #15811 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =
00:05:09 #15812 [Verbose] > closure3(v0)
00:05:09 #15813 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
00:05:09 #15814 [Verbose] > let v3 : string = v2.PadLeft (v0, v1)
00:05:09 #15815 [Verbose] > v3
00:05:09 #15816 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =
00:05:09 #15817 [Verbose] > closure6(v0, v1)
00:05:09 #15818 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =
00:05:09 #15819 [Verbose] > closure5(v0)
00:05:09 #15820 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =
00:05:09 #15821 [Verbose] > let v2 : stri...
00:05:10 #15822 [Verbose] >
00:05:10 #15823 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:05:10 #15824 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
00:05:10 #15825 [Verbose] > let v2 : (System.Guid -> string) = _.ToString()
00:05:10 #15826 [Verbose] > let v3 : string = v2 v0
00:05:10 #15827 [Verbose] > let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
00:05:10 #15828 [Verbose] > let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
00:05:10 #15829 [Verbose] > v5
00:05:10 #15830 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
00:05:10 #15831 [Verbose] > closure1(v0)
00:05:10 #15832 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =
00:05:10 #15833 [Verbose] > let v3 : string = v2.Replace (v0, v1)
00:05:10 #15834 [Verbose] > v3
00:05:10 #15835 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =
00:05:10 #15836 [Verbose] > closure5(v0, v1)
00:05:10 #15837 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =
00:05:10 #15838 [Verbose] > closure4(v0)
00:05:10 #15839 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =
00:05:10 #15840 [Verbose] > closure3()
00:05:10 #15841 [Verbose] > and closure2 (...
00:05:10 #15842 [Verbose] >
00:05:10 #15843 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:05:10 #15844 [Verbose] > type [[<Struct>]] US0 =
00:05:10 #15845 [Verbose] > | US0_0
00:05:10 #15846 [Verbose] > | US0_1
00:05:10 #15847 [Verbose] > | US0_2
00:05:10 #15848 [Verbose] > and [[<Struct>]] US1 =
00:05:10 #15849 [Verbose] > | US1_0 of f0_0 : US0
00:05:10 #15850 [Verbose] > | US1_1 of f1_0 : US0
00:05:10 #15851 [Verbose] > let rec closure0 () () : string =
00:05:10 #15852 [Verbose] > let mutable result = None
00:05:10 #15853 [Verbose] > #if FABLE_COMPILER_RUST && !WASM
00:05:10 #15854 [Verbose] > let v0 : US0 = US0_1
00:05:10 #15855 [Verbose] > let v1 : US1 = US1_1(v0)
00:05:10 #15856 [Verbose] > let v2 : string = $"create_temp_directory_name target: {v1}"
00:05:10 #15857 [Verbose] > let v3 : string = failwith<string> v2
00:05:10 #15858 [Verbose] > v3
00:05:10 #15859 [Verbose] > #endif
00:05:10 #15860 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:05:10 #15861 [Verbose] > let v4 : US0 = US0_2
00:05:10 #15862 [Verbose] > let v5 : US1 = US1_1(v4)
00:05:10 #15863 [Verbose] > let v6 : string = $"create_temp_directory_name target: {v5}"
00:05:10 #15864 [Verbose] > let v7 : string = failwith<string> v6
00:05:10 #15865 [Verbose] > v7
00:05:10 #15866 [Verbose] > #endif
00:05:10 #15867 [Verbose] > #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM
00:05:10 #15868 [Verbose] > let v8 : string = System.Reflection.Assembly.GetEntryAssembly()...
00:05:10 #15869 [Verbose] >
00:05:10 #15870 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:05:10 #15871 [Verbose] > #if !WASM && !FABLE_COMPILER
00:05:10 #15872 [Verbose] > module Date_time =
00:05:10 #15873 [Verbose] > let new_guid_from_date_time x =
00:05:10 #15874 [Verbose] > #if !INTERACTIVE
00:05:10 #15875 [Verbose] > Date_time.new_guid_from_date_time x
00:05:10 #15876 [Verbose] > #else
00:05:10 #15877 [Verbose] > new_guid_from_date_time x
00:05:10 #15878 [Verbose] > #endif
00:05:10 #15879 [Verbose] > #endif
00:05:10 #15880 [Verbose] >
00:05:10 #15881 [Verbose] > module Sm =
00:05:10 #15882 [Verbose] > let concat x =
00:05:10 #15883 [Verbose] > #if !INTERACTIVE
00:05:10 #15884 [Verbose] > Sm.concat x
00:05:10 #15885 [Verbose] > #else
00:05:10 #15886 [Verbose] > concat x
00:05:10 #15887 [Verbose] > #endif
00:05:10 #15888 [Verbose] >
00:05:10 #15889 [Verbose] > let contains x =
00:05:10 #15890 [Verbose] > #if !INTERACTIVE
00:05:10 #15891 [Verbose] > Sm.contains x
00:05:10 #15892 [Verbose] > #else
00:05:10 #15893 [Verbose] > contains x
00:05:10 #15894 [Verbose] > #endif
00:05:10 #15895 [Verbose] >
00:05:10 #15896 [Verbose] > let ellipsis x =
00:05:10 #15897 [Verbose] > #if !INTERACTIVE
00:05:10 #15898 [Verbose] > Sm.ellipsis x
00:05:10 #15899 [Verbose] > #else
00:05:10 #15900 [Verbose] > ellipsis x
00:05:10 #15901 [Verbose] > #endif
00:05:10 #15902 [Verbose] >
00:05:10 #15903 [Verbose] > let ellipsis_end x =
00:05:10 #15904 [Verbose] > #if !INTERACTIVE
00:05:10 #15905 [Verbose] > Sm.ellipsis_end x
00:05:10 #15906 [Verbose] > #else
00:05:10 #15907 [Verbose] > ellipsis_end x
00:05:10 #15908 [Verbose] > #endif
00:05:10 #15909 [Verbose] >
00:05:10 #15910 [Verbose] > let ends_with x =
00:05:10 #15911 [Verbose] > #if !INTERACTIVE
00:05:10 #15912 [Verbose] > Sm.ends_with x
00:05:10 #15913 [Verbose] > #else
00:05:10 #15914 [Verbose] > ends_with x
00:05:10 #15915 [Verbose] > #endif
00:05:10 #15916 [Verbose] >
00:05:10 #15917 [Verbose] > let format_exception x =
00:05:10 #15918 [Verbose] > #if !INTERACTIVE
00:05:10 #15919 [Verbose] > Sm.format_...
00:05:10 #15920 [Verbose] >
00:05:10 #15921 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:05:10 #15922 [Verbose] > #if !INTERACTIVE
00:05:10 #15923 [Verbose] > namespace Polyglot
00:05:10 #15924 [Verbose] > #endif
00:05:10 #15925 [Verbose] >
00:05:10 #15926 [Verbose] > module Common =
00:05:10 #15927 [Verbose] >
00:05:10 #15928 [Verbose] > #if !INTERACTIVE
00:05:10 #15929 [Verbose] > open Lib
00:05:10 #15930 [Verbose] > #endif
00:05:10 #15931 [Verbose] >
00:05:10 #15932 [Verbose] > let nl = System.Environment.NewLine
00:05:10 #15933 [Verbose] > let q = @""""
00:05:10 #15934 [Verbose] >
00:05:10 #15935 [Verbose] > let inline cons head tail = head :: tail
00:05:10 #15936 [Verbose] >
00:05:10 #15937 [Verbose] > /// ## memoize
00:05:10 #15938 [Verbose] >
00:05:10 #15939 [Verbose] > let inline memoize fn =
00:05:10 #15940 [Verbose] > let result = lazy fn ()
00:05:10 #15941 [Verbose] > fun () -> result.Value
00:05:10 #15942 [Verbose] >
00:05:10 #15943 [Verbose] > /// ## TraceLevel
00:05:10 #15944 [Verbose] >
00:05:10 #15945 [Verbose] > type TraceLevel =
00:05:10 #15946 [Verbose] > | Verbose
00:05:10 #15947 [Verbose] > | Debug
00:05:10 #15948 [Verbose] > | Info
00:05:10 #15949 [Verbose] > | Warning
00:05:10 #15950 [Verbose] > | Critical
00:05:10 #15951 [Verbose] >
00:05:10 #15952 [Verbose] > let inline getLocals () = ""
00:05:10 #15953 [Verbose] >
00:05:10 #15954 [Verbose] > let mutable traceEnabled = true
00:05:10 #15955 [Verbose] > let mutable traceCount = 0
00:05:10 #15956 [Verbose] > let mutable traceLevel = Verbose
00:05:10 #15957 [Verbose] > let mutable traceDump = false
00:05:10 #15958 [Verbose] >
00:05:10 #15959 [Verbose] > let testTraceLevel level =
00:05:10 #15960 [Verbose] > traceEnabled && level >= traceLevel
00:05:10 #15961 [Verbose] >
00:05:10 #15962 [Verbose] > /// ## traceRaw
00:05:10 #15963 [Verbose] >
00:05:10 #15964 [Verbose] > let rec traceRaw level fn =
00:05:10 #15965 [Verbose] > ...
00:05:10 #15966 [Verbose] >
00:05:10 #15967 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:05:10 #15968 [Verbose] > #if !INTERACTIVE
00:05:10 #15969 [Verbose] > namespace Polyglot
00:05:10 #15970 [Verbose] > #endif
00:05:10 #15971 [Verbose] >
00:05:10 #15972 [Verbose] > module CommonFSharp =
00:05:10 #15973 [Verbose] >
00:05:10 #15974 [Verbose] > open Common
00:05:10 #15975 [Verbose] >
00:05:10 #15976 [Verbose] > /// ## getUnionCaseName
00:05:10 #15977 [Verbose] >
00:05:10 #15978 [Verbose] > let inline getUnionCaseName<'T> (x: 'T) =
00:05:10 #15979 [Verbose] > match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
00:05:10 #15980 [Verbose] > | case, _ -> case.Name
00:05:10 #15981 [Verbose] >
00:05:10 #15982 [Verbose] >
00:05:10 #15983 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:05:10 #15984 [Verbose] > #if !INTERACTIVE
00:05:10 #15985 [Verbose] > namespace Polyglot
00:05:10 #15986 [Verbose] > #endif
00:05:10 #15987 [Verbose] >
00:05:10 #15988 [Verbose] > module Crypto =
00:05:10 #15989 [Verbose] >
00:05:10 #15990 [Verbose] > open Common
00:05:10 #15991 [Verbose] >
00:05:10 #15992 [Verbose] > /// ## hashText
00:05:10 #15993 [Verbose] >
00:05:10 #15994 [Verbose] > let hashText (input : string) =
00:05:10 #15995 [Verbose] > use sha256 = System.Security.Cryptography.SHA256.Create ()
00:05:10 #15996 [Verbose] > input
00:05:10 #15997 [Verbose] > |> System.Text.Encoding.UTF8.GetBytes
00:05:10 #15998 [Verbose] > |> sha256.ComputeHash
00:05:10 #15999 [Verbose] > |> Array.map (fun b -> b.ToString "x2")
00:05:10 #16000 [Verbose] > |> Sm.concat ""
00:05:10 #16001 [Verbose] >
00:05:10 #16002 [Verbose] >
00:05:10 #16003 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:05:10 #16004 [Verbose] > #if !INTERACTIVE
00:05:10 #16005 [Verbose] > namespace Polyglot
00:05:10 #16006 [Verbose] > #endif
00:05:10 #16007 [Verbose] >
00:05:10 #16008 [Verbose] > module Async =
00:05:10 #16009 [Verbose] >
00:05:10 #16010 [Verbose] > #if !INTERACTIVE
00:05:10 #16011 [Verbose] > open Lib
00:05:10 #16012 [Verbose] > #endif
00:05:10 #16013 [Verbose] >
00:05:10 #16014 [Verbose] > open Common
00:05:10 #16015 [Verbose] >
00:05:10 #16016 [Verbose] > /// ## choice
00:05:10 #16017 [Verbose] >
00:05:10 #16018 [Verbose] > let inline choice asyncs = async {
00:05:10 #16019 [Verbose] > let e = Event<_> ()
00:05:10 #16020 [Verbose] > use cts = new System.Threading.CancellationTokenSource ()
00:05:10 #16021 [Verbose] > let fn =
00:05:10 #16022 [Verbose] > asyncs
00:05:10 #16023 [Verbose] > |> Seq.map (fun a -> async {
00:05:10 #16024 [Verbose] > let! x = a
00:05:10 #16025 [Verbose] > e.Trigger x
00:05:10 #16026 [Verbose] > })
00:05:10 #16027 [Verbose] > |> Async.Parallel
00:05:10 #16028 [Verbose] > |> Async.Ignore
00:05:10 #16029 [Verbose] > Async.Start (fn, cts.Token)
00:05:10 #16030 [Verbose] > let! result = Async.AwaitEvent e.Publish
00:05:10 #16031 [Verbose] > cts.Cancel ()
00:05:10 #16032 [Verbose] > return result
00:05:10 #16033 [Verbose] > }
00:05:10 #16034 [Verbose] >
00:05:10 #16035 [Verbose] > /// ## map
00:05:10 #16036 [Verbose] >
00:05:10 #16037 [Verbose] > let inline map fn a = async {
00:05:10 #16038 [Verbose] > let! x = a
00:05:10 #16039 [Verbose] > return fn x
00:05:10 #16040 [Verbose] > }
00:05:10 #16041 [Verbose] >
00:05:10 #16042 [Verbose] > /// ## catch
00:05:10 #16043 [Verbose] >
00:05:10 #16044 [Verbose] > let inline catch a =
00:05:10 #16045 [Verbose] > ...
00:05:11 #16046 [Verbose] >
00:05:11 #16047 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:05:11 #16048 [Verbose] > #if !INTERACTIVE
00:05:11 #16049 [Verbose] > namespace Polyglot
00:05:11 #16050 [Verbose] > #endif
00:05:11 #16051 [Verbose] >
00:05:11 #16052 [Verbose] > module AsyncSeq =
00:05:11 #16053 [Verbose] >
00:05:11 #16054 [Verbose] > #if !INTERACTIVE
00:05:11 #16055 [Verbose] > open Lib
00:05:11 #16056 [Verbose] > #endif
00:05:11 #16057 [Verbose] >
00:05:11 #16058 [Verbose] > open Common
00:05:11 #16059 [Verbose] >
00:05:11 #16060 [Verbose] > /// ## subscribeEvent
00:05:11 #16061 [Verbose] >
00:05:11 #16062 [Verbose] > let inline subscribeEvent (event: IEvent<'H, 'A>) map =
00:05:11 #16063 [Verbose] > let observable = System.Reactive.Linq.Observable.FromEventPattern<'H,
00:05:11 #16064 [Verbose] > 'A>(event.AddHandler, event.RemoveHandler)
00:05:11 #16065 [Verbose] > System.Reactive.Linq.Observable.Select (observable, fun event -> map
00:05:11 #16066 [Verbose] > event.EventArgs)
00:05:11 #16067 [Verbose] > |> FSharp.Control.AsyncSeq.ofObservableBuffered
00:05:11 #16068 [Verbose] >
00:05:11 #16069 [Verbose] > let subscribeToken (token : System.Threading.CancellationToken) =
00:05:11 #16070 [Verbose] > let tcs = new System.Threading.Tasks.TaskCompletionSource ()
00:05:11 #16071 [Verbose] > System.Action tcs.SetResult |> token.Register |> ignore
00:05:11 #16072 [Verbose] > let start = System.DateTime.Now.Ticks
00:05:11 #16073 [Verbose] > FSharp.Control.A...
00:05:11 #16074 [Verbose] >
00:05:11 #16075 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:05:11 #16076 [Verbose] > #if !INTERACTIVE
00:05:11 #16077 [Verbose] > namespace Polyglot
00:05:11 #16078 [Verbose] > #endif
00:05:11 #16079 [Verbose] >
00:05:11 #16080 [Verbose] > module Networking =
00:05:11 #16081 [Verbose] >
00:05:11 #16082 [Verbose] > #if !INTERACTIVE
00:05:11 #16083 [Verbose] > open Lib
00:05:11 #16084 [Verbose] > #endif
00:05:11 #16085 [Verbose] >
00:05:11 #16086 [Verbose] > open Common
00:05:11 #16087 [Verbose] >
00:05:11 #16088 [Verbose] > /// ## testPortOpen
00:05:11 #16089 [Verbose] >
00:05:11 #16090 [Verbose] > let inline testPortOpen port = async {
00:05:11 #16091 [Verbose] > let! ct = Async.CancellationToken
00:05:11 #16092 [Verbose] > use client = new System.Net.Sockets.TcpClient ()
00:05:11 #16093 [Verbose] > try
00:05:11 #16094 [Verbose] > do! client.ConnectAsync ("127.0.0.1", port, ct) |>
00:05:11 #16095 [Verbose] > Async.awaitValueTaskUnit
00:05:11 #16096 [Verbose] > return true
00:05:11 #16097 [Verbose] > with ex ->
00:05:11 #16098 [Verbose] > trace Verbose (fun () -> $"testPortOpen / ex: {ex |>
00:05:11 #16099 [Verbose] > Sm.format_exception}") getLocals
00:05:11 #16100 [Verbose] > return false
00:05:11 #16101 [Verbose] > }
00:05:11 #16102 [Verbose] >
00:05:11 #16103 [Verbose] > let inline testPortOpenTimeout timeout port = async {
00:05:11 #16104 [Verbose] > let! result =
00:05:11 #16105 [Verbose] > testPortOpen port
00:05:11 #16106 [Verbose] > |> Async.runWithTimeoutAsync timeout
00:05:11 #16107 [Verbose] > return
00:05:11 #16108 [Verbose] > matc...
00:05:12 #16109 [Verbose] >
00:05:12 #16110 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:05:12 #16111 [Verbose] > #if !INTERACTIVE
00:05:12 #16112 [Verbose] > namespace Polyglot
00:05:12 #16113 [Verbose] > #endif
00:05:12 #16114 [Verbose] >
00:05:12 #16115 [Verbose] > module Runtime =
00:05:12 #16116 [Verbose] >
00:05:12 #16117 [Verbose] > #if !INTERACTIVE
00:05:12 #16118 [Verbose] > open Lib
00:05:12 #16119 [Verbose] > #endif
00:05:12 #16120 [Verbose] >
00:05:12 #16121 [Verbose] > open Common
00:05:12 #16122 [Verbose] >
00:05:12 #16123 [Verbose] > /// ## isWindows
00:05:12 #16124 [Verbose] >
00:05:12 #16125 [Verbose] > let isWindows =
00:05:12 #16126 [Verbose] > fun () ->
00:05:12 #16127 [Verbose] > System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
00:05:12 #16128 [Verbose] > System.Runtime.InteropServices.OSPlatform.Windows
00:05:12 #16129 [Verbose] > |> memoize
00:05:12 #16130 [Verbose] >
00:05:12 #16131 [Verbose] > /// ## getExecutableSuffix
00:05:12 #16132 [Verbose] >
00:05:12 #16133 [Verbose] > let inline getExecutableSuffix () =
00:05:12 #16134 [Verbose] > if isWindows ()
00:05:12 #16135 [Verbose] > then ".exe"
00:05:12 #16136 [Verbose] > else ""
00:05:12 #16137 [Verbose] >
00:05:12 #16138 [Verbose] > /// ## splitCommand
00:05:12 #16139 [Verbose] >
00:05:12 #16140 [Verbose] > type private CommandParseStep =
00:05:12 #16141 [Verbose] > | Start
00:05:12 #16142 [Verbose] > | Path of quoted: bool
00:05:12 #16143 [Verbose] > | Arguments
00:05:12 #16144 [Verbose] >
00:05:12 #16145 [Verbose] > let splitCommand (command: string) =
00:05:12 #16146 [Verbose] > let rec loop (path, args) chars step =
00:05:12 #16147 [Verbose] > match chars, step with
00:05:12 #16148 [Verbose] > | ('"' | '\'') ...
00:05:12 #16149 [Verbose] >
00:05:12 #16150 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:05:12 #16151 [Verbose] > #if !INTERACTIVE
00:05:12 #16152 [Verbose] > namespace Polyglot
00:05:12 #16153 [Verbose] > #endif
00:05:12 #16154 [Verbose] >
00:05:12 #16155 [Verbose] > module FileSystem =
00:05:12 #16156 [Verbose] >
00:05:12 #16157 [Verbose] > #if !INTERACTIVE
00:05:12 #16158 [Verbose] > open Lib
00:05:12 #16159 [Verbose] > #endif
00:05:12 #16160 [Verbose] >
00:05:12 #16161 [Verbose] > open Common
00:05:12 #16162 [Verbose] >
00:05:12 #16163 [Verbose] > /// ## Operators
00:05:12 #16164 [Verbose] >
00:05:12 #16165 [Verbose] > module Operators =
00:05:12 #16166 [Verbose] > let inline (</>) a b =
00:05:12 #16167 [Verbose] > System.IO.Path.Combine (a, b)
00:05:12 #16168 [Verbose] >
00:05:12 #16169 [Verbose] > open Operators
00:05:12 #16170 [Verbose] >
00:05:12 #16171 [Verbose] > /// ## createTempDirectory
00:05:12 #16172 [Verbose] >
00:05:12 #16173 [Verbose] > let inline createTempDirectory () =
00:05:12 #16174 [Verbose] > let tempFolder = File_system.create_temp_directory_name ()
00:05:12 #16175 [Verbose] > let result = System.IO.Directory.CreateDirectory tempFolder
00:05:12 #16176 [Verbose] >
00:05:12 #16177 [Verbose] > if not result.Exists then
00:05:12 #16178 [Verbose] > let getLocals () =
00:05:12 #16179 [Verbose] > $"tempFolder: {tempFolder} / result: {({|
00:05:12 #16180 [Verbose] > Exists = result.Exists
00:05:12 #16181 [Verbose] > CreationTime = result.CreationTime
00:05:12 #16182 [Verbose] > |})} {getLocals ()}"
00:05:12 #16183 [Verbose] >
00:05:12 #16184 [Verbose] > trace Debug ...
00:05:14 #16185 [Verbose] >
00:05:15 #16186 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:05:15 #16187 [Verbose] > open Common
00:05:15 #16188 [Verbose] > open FileSystem.Operators
00:05:15 #16189 [Verbose] >
00:05:15 #16190 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:05:15 #16191 [Verbose] > let tmpSpiralPath = Path.GetTempPath () </> "!dotnet-interactive-spiral"
00:05:15 #16192 [Verbose] > let linePlotsDataPath = tmpSpiralPath </> "line-plots-data"
00:05:15 #16193 [Verbose] > let linePlotsSvgPath = tmpSpiralPath </> "line-plots-svg"
00:05:15 #16194 [Verbose] >
00:05:15 #16195 [Verbose] > [[ tmpSpiralPath; linePlotsDataPath; linePlotsSvgPath ]]
00:05:15 #16196 [Verbose] > |> List.iter (fun dir -> if Directory.Exists dir |> not then
00:05:15 #16197 [Verbose] > Directory.CreateDirectory dir |> ignore)
00:05:15 #16198 [Verbose] >
00:05:15 #16199 [Verbose] > Formatter.Register<struct (string * string * string * struct (string * float
00:05:15 #16200 [Verbose] > array * float array) array)> (
00:05:15 #16201 [Verbose] > (fun struct (caption, x_desc, y_desc, ys) ->
00:05:15 #16202 [Verbose] > let json = (caption, x_desc, y_desc, ys) |> FSharp.Json.Json.serialize
00:05:15 #16203 [Verbose] > async {
00:05:15 #16204 [Verbose] > let hashHex = json |> Crypto.hashText
00:05:15 #16205 [Verbose] > let svgPath = linePlotsSvgPath </> $"{hashHex}.svg"
00:05:15 #16206 [Verbose] >
00:05:15 #16207 [Verbose] > if System.IO.File.Exi...
00:05:15 #16208 [Verbose] >
00:05:15 #16209 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:15 #16210 [Verbose] > // // test
00:05:15 #16211 [Verbose] >
00:05:15 #16212 [Verbose] > open testing
00:05:16 #16213 [Verbose] >
00:05:16 #16214 [Verbose] > ╭─[ 1.26s - stdout ]───────────────────────────────────────────────────────────╮
00:05:16 #16215 [Verbose] > │ () │
00:05:16 #16216 [Verbose] > │ │
00:05:16 #16217 [Verbose] > │ │
00:05:16 #16218 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:16 #16219 [Verbose] >
00:05:16 #16220 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:16 #16221 [Verbose] > open listm'_operators
00:05:16 #16222 [Verbose] >
00:05:16 #16223 [Verbose] > ╭─[ 300.24ms - stdout ]────────────────────────────────────────────────────────╮
00:05:16 #16224 [Verbose] > │ () │
00:05:16 #16225 [Verbose] > │ │
00:05:16 #16226 [Verbose] > │ │
00:05:16 #16227 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:16 #16228 [Verbose] >
00:05:16 #16229 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:16 #16230 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:16 #16231 [Verbose] > │ ## init_series │
00:05:16 #16232 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:16 #16233 [Verbose] >
00:05:16 #16234 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:16 #16235 [Verbose] > // // test
00:05:16 #16236 [Verbose] >
00:05:16 #16237 [Verbose] > inl x : a _ f64 = am'.init_series -3 3 0.01
00:05:16 #16238 [Verbose] > inl y = x |> am.map math.square
00:05:16 #16239 [Verbose] > "square", "x", "y", ;[[ "square", x, y ]]
00:05:17 #16240 [Verbose] >
00:05:17 #16241 [Verbose] > ╭─[ 321.26ms - return value ]──────────────────────────────────────────────────╮
00:05:17 #16242 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:05:17 #16243 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:05:17 #16244 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:05:17 #16245 [Verbose] > │ stroke="none"/> │
00:05:17 #16246 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:05:17 #16247 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:05:17 #16248 [Verbose] > │ fill="#FFFFFF"> │
00:05:17 #16249 [Verbose] > │ square │
00:05:17 #16250 [Verbose] > │ </text> │
00:05:17 #16251 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="61" y1="424" x2="61" │
00:05:17 #16252 [Verbose] > │ y2="75"/> │
00:05:17 #16253 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:05:17 #16254 [Verbose] > │ y2="75"/> │
00:05:17 #16255 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="78" y1="424" x2="78" │
00:05:17 #16256 [Verbose] > │ y2="75"/> │
00:05:17 #16257 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="86" y1="424" x2="86" │
00:05:17 #16258 [Verbose] > │ y2="75"/> │
00:05:17 #16259 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="94" y1="424" x2="94" │
00:05:17 #16260 [Verbose] > │ ... │
00:05:17 #16261 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:17 #16262 [Verbose] >
00:05:17 #16263 [Verbose] > ╭─[ 336.90ms - stdout ]────────────────────────────────────────────────────────╮
00:05:17 #16264 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:05:17 #16265 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:05:17 #16266 [Verbose] > │ let v1 : int32 = v0.l0 │
00:05:17 #16267 [Verbose] > │ let v2 : bool = v1 < 601 │
00:05:17 #16268 [Verbose] > │ v2 │
00:05:17 #16269 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool = │
00:05:17 #16270 [Verbose] > │ let v2 : int32 = v1.l0 │
00:05:17 #16271 [Verbose] > │ let v3 : bool = v2 < v0 │
00:05:17 #16272 [Verbose] > │ v3 │
00:05:17 #16273 [Verbose] > │ and method3 (v0 : (struct (string * (float []) * (float [])) [])) : (struct │
00:05:17 #16274 [Verbose] > │ (string * (float []) * (float [])) []) = │
00:05:17 #16275 [Verbose] > │ v0 │
00:05:17 #16276 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:05:17 #16277 [Verbose] > │ []) * (float [])) [])) = │
00:05:17 #16278 [Verbose] > │ let v0 : (float []) = Array.zeroCreate<float> (601) │
00:05:17 #16279 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:05:17 #16280 [Verbose] > │ while method1(v1) do │
00:05:17 #16281 [Verbose] > │ let v3 : int32 = v1.l0 │
00:05:17 #16282 [Verbose] > │ let v4 : float = float v3 │
00:05:17 #16283 [Verbose] > │ let v5 : float = 0.01 * v4 │
00:05:17 #16284 [Verbose] > │ let v6 : float = -3.0 + v5 │
00:05:17 #16285 [Verbose] > │ v0.[int v3] <- v6 │
00:05:17 #16286 [Verbose] > │ let v7 : int32 = v3 + 1 │
00:05:17 #16287 [Verbose] > │ v1.l0 <- v7 │
00:05:17 #16288 [Verbose] > │ () │
00:05:17 #16289 [Verbose] > │ let v8 : int32 = v0.Length │
00:05:17 #16290 [Verbose] > │ let v9 : (float []) = Array.zeroCreate<float> (v8) │
00:05:17 #16291 [Verbose] > │ let v10 : Mut0 = {l0 = 0} : Mut0 │
00:05:17 #16292 [Verbose] > │ while method2(v8, v10) do │
00:05:17 #16293 [Verbose] > │ let v12 : int32 = v10.l0 │
00:05:17 #16294 [Verbose] > │ let v13 : float = v0.[int v12] │
00:05:17 #16295 [Verbose] > │ let v14 : float = v13 ** 2.0 │
00:05:17 #16296 [Verbose] > │ v9.[int v12] <- v14 │
00:05:17 #16297 [Verbose] > │ let v15 : int32 = v12 + 1 │
00:05:17 #16298 [Verbose] > │ v10.l0 <- v15 │
00:05:17 #16299 [Verbose] > │ () │
00:05:17 #16300 [Verbose] > │ let v16 : string = "square" │
00:05:17 #16301 [Verbose] > │ let v17 : (struct (string * (float []) * (float [])) []) = [|struct │
00:05:17 #16302 [Verbose] > │ (v16, v0, v9)|] │
00:05:17 #16303 [Verbose] > │ let v18 : (struct (string * (float []) * (float [])) []) = method3(v17) │
00:05:17 #16304 [Verbose] > │ let v19 : string = "x" │
00:05:17 #16305 [Verbose] > │ let v20 : string = "y" │
00:05:17 #16306 [Verbose] > │ struct (v16, v19, v20, v18) │
00:05:17 #16307 [Verbose] > │ method0() │
00:05:17 #16308 [Verbose] > │ │
00:05:17 #16309 [Verbose] > │ │
00:05:17 #16310 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:17 #16311 [Verbose] >
00:05:17 #16312 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:17 #16313 [Verbose] > // // test
00:05:17 #16314 [Verbose] >
00:05:17 #16315 [Verbose] > inl x : a _ f64 = am'.init_series -10 10 0.1
00:05:17 #16316 [Verbose] > inl y_sin = x |> am.map sin
00:05:17 #16317 [Verbose] > inl y_cos = x |> am.map cos
00:05:17 #16318 [Verbose] > "sin cos", "x", "y", ;[[ "sin", x, y_sin; "cos", x, y_cos ]]
00:05:17 #16319 [Verbose] >
00:05:17 #16320 [Verbose] > ╭─[ 338.80ms - return value ]──────────────────────────────────────────────────╮
00:05:17 #16321 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:05:17 #16322 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:05:17 #16323 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:05:17 #16324 [Verbose] > │ stroke="none"/> │
00:05:17 #16325 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:05:17 #16326 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:05:17 #16327 [Verbose] > │ fill="#FFFFFF"> │
00:05:17 #16328 [Verbose] > │ sin cos │
00:05:17 #16329 [Verbose] > │ </text> │
00:05:17 #16330 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="57" y1="424" x2="57" │
00:05:17 #16331 [Verbose] > │ y2="75"/> │
00:05:17 #16332 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:05:17 #16333 [Verbose] > │ y2="75"/> │
00:05:17 #16334 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="82" y1="424" x2="82" │
00:05:17 #16335 [Verbose] > │ y2="75"/> │
00:05:17 #16336 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="94" y1="424" x2="94" │
00:05:17 #16337 [Verbose] > │ y2="75"/> │
00:05:17 #16338 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="107" y1="424" │
00:05:17 #16339 [Verbose] > │ x2="10... │
00:05:17 #16340 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:17 #16341 [Verbose] >
00:05:17 #16342 [Verbose] > ╭─[ 349.04ms - stdout ]────────────────────────────────────────────────────────╮
00:05:17 #16343 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:05:17 #16344 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:05:17 #16345 [Verbose] > │ let v1 : int32 = v0.l0 │
00:05:17 #16346 [Verbose] > │ let v2 : bool = v1 < 201 │
00:05:17 #16347 [Verbose] > │ v2 │
00:05:17 #16348 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool = │
00:05:17 #16349 [Verbose] > │ let v2 : int32 = v1.l0 │
00:05:17 #16350 [Verbose] > │ let v3 : bool = v2 < v0 │
00:05:17 #16351 [Verbose] > │ v3 │
00:05:17 #16352 [Verbose] > │ and method3 (v0 : (struct (string * (float []) * (float [])) [])) : (struct │
00:05:17 #16353 [Verbose] > │ (string * (float []) * (float [])) []) = │
00:05:17 #16354 [Verbose] > │ v0 │
00:05:17 #16355 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:05:17 #16356 [Verbose] > │ []) * (float [])) [])) = │
00:05:17 #16357 [Verbose] > │ let v0 : (float []) = Array.zeroCreate<float> (201) │
00:05:17 #16358 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:05:17 #16359 [Verbose] > │ while method1(v1) do │
00:05:17 #16360 [Verbose] > │ let v3 : int32 = v1.l0 │
00:05:17 #16361 [Verbose] > │ let v4 : float = float v3 │
00:05:17 #16362 [Verbose] > │ let v5 : float = 0.1 * v4 │
00:05:17 #16363 [Verbose] > │ let v6 : float = -10.0 + v5 │
00:05:17 #16364 [Verbose] > │ v0.[int v3] <- v6 │
00:05:17 #16365 [Verbose] > │ let v7 : int32 = v3 + 1 │
00:05:17 #16366 [Verbose] > │ v1.l0 <- v7 │
00:05:17 #16367 [Verbose] > │ () │
00:05:17 #16368 [Verbose] > │ let v8 : int32 = v0.Length │
00:05:17 #16369 [Verbose] > │ let v9 : (float []) = Array.zeroCreate<float> (v8) │
00:05:17 #16370 [Verbose] > │ let v10 : Mut0 = {l0 = 0} : Mut0 │
00:05:17 #16371 [Verbose] > │ while method2(v8, v10) do │
00:05:17 #16372 [Verbose] > │ let v12 : int32 = v10.l0 │
00:05:17 #16373 [Verbose] > │ let v13 : float = v0.[int v12] │
00:05:17 #16374 [Verbose] > │ let v14 : float = sin v13 │
00:05:17 #16375 [Verbose] > │ v9.[int v12] <- v14 │
00:05:17 #16376 [Verbose] > │ let v15 : int32 = v12 + 1 │
00:05:17 #16377 [Verbose] > │ v10.l0 <- v15 │
00:05:17 #16378 [Verbose] > │ () │
00:05:17 #16379 [Verbose] > │ let v16 : (float []) = Array.zeroCreate<float> (v8) │
00:05:17 #16380 [Verbose] > │ let v17 : Mut0 = {l0 = 0} : Mut0 │
00:05:17 #16381 [Verbose] > │ while method2(v8, v17) do │
00:05:17 #16382 [Verbose] > │ let v19 : int32 = v17.l0 │
00:05:17 #16383 [Verbose] > │ let v20 : float = v0.[int v19] │
00:05:17 #16384 [Verbose] > │ let v21 : float = cos v20 │
00:05:17 #16385 [Verbose] > │ v16.[int v19] <- v21 │
00:05:17 #16386 [Verbose] > │ let v22 : int32 = v19 + 1 │
00:05:17 #16387 [Verbose] > │ v17.l0 <- v22 │
00:05:17 #16388 [Verbose] > │ () │
00:05:17 #16389 [Verbose] > │ let v23 : string = "sin" │
00:05:17 #16390 [Verbose] > │ let v24 : string = "cos" │
00:05:17 #16391 [Verbose] > │ let v25 : (struct (string * (float []) * (float [])) []) = [|struct │
00:05:17 #16392 [Verbose] > │ (v23, v0, v9); struct (v24, v0, v16)|] │
00:05:17 #16393 [Verbose] > │ let v26 : (struct (string * (float []) * (float [])) []) = method3(v25) │
00:05:17 #16394 [Verbose] > │ let v27 : string = "sin cos" │
00:05:17 #16395 [Verbose] > │ let v28 : string = "x" │
00:05:17 #16396 [Verbose] > │ let v29 : string = "y" │
00:05:17 #16397 [Verbose] > │ struct (v27, v28, v29, v26) │
00:05:17 #16398 [Verbose] > │ method0() │
00:05:17 #16399 [Verbose] > │ │
00:05:17 #16400 [Verbose] > │ │
00:05:17 #16401 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:17 #16402 [Verbose] >
00:05:17 #16403 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:17 #16404 [Verbose] > // // test
00:05:17 #16405 [Verbose] >
00:05:17 #16406 [Verbose] > inl y_pos y0 vy0 ay t =
00:05:17 #16407 [Verbose] > y0 + vy0 * t + ay * (t |> math.square) / 2
00:05:17 #16408 [Verbose] >
00:05:17 #16409 [Verbose] > inl x : a _ f64 = am'.init_series 0 5 0.01
00:05:17 #16410 [Verbose] > inl y = x |> am.map (y_pos 0 20 -9.8)
00:05:17 #16411 [Verbose] > "projectile motion", "time (s)", "", ;[[ "height of projectile (m)", x, y ]]
00:05:18 #16412 [Verbose] >
00:05:18 #16413 [Verbose] > ╭─[ 349.63ms - return value ]──────────────────────────────────────────────────╮
00:05:18 #16414 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:05:18 #16415 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:05:18 #16416 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:05:18 #16417 [Verbose] > │ stroke="none"/> │
00:05:18 #16418 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:05:18 #16419 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:05:18 #16420 [Verbose] > │ fill="#FFFFFF"> │
00:05:18 #16421 [Verbose] > │ projectile motion │
00:05:18 #16422 [Verbose] > │ </text> │
00:05:18 #16423 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" y1="424" x2="59" │
00:05:18 #16424 [Verbose] > │ y2="75"/> │
00:05:18 #16425 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:05:18 #16426 [Verbose] > │ y2="75"/> │
00:05:18 #16427 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" y1="424" x2="79" │
00:05:18 #16428 [Verbose] > │ y2="75"/> │
00:05:18 #16429 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" y1="424" x2="89" │
00:05:18 #16430 [Verbose] > │ y2="75"/> │
00:05:18 #16431 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="99" y1="42... │
00:05:18 #16432 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:18 #16433 [Verbose] >
00:05:18 #16434 [Verbose] > ╭─[ 358.71ms - stdout ]────────────────────────────────────────────────────────╮
00:05:18 #16435 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:05:18 #16436 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:05:18 #16437 [Verbose] > │ let v1 : int32 = v0.l0 │
00:05:18 #16438 [Verbose] > │ let v2 : bool = v1 < 501 │
00:05:18 #16439 [Verbose] > │ v2 │
00:05:18 #16440 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool = │
00:05:18 #16441 [Verbose] > │ let v2 : int32 = v1.l0 │
00:05:18 #16442 [Verbose] > │ let v3 : bool = v2 < v0 │
00:05:18 #16443 [Verbose] > │ v3 │
00:05:18 #16444 [Verbose] > │ and method3 (v0 : (struct (string * (float []) * (float [])) [])) : (struct │
00:05:18 #16445 [Verbose] > │ (string * (float []) * (float [])) []) = │
00:05:18 #16446 [Verbose] > │ v0 │
00:05:18 #16447 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:05:18 #16448 [Verbose] > │ []) * (float [])) [])) = │
00:05:18 #16449 [Verbose] > │ let v0 : (float []) = Array.zeroCreate<float> (501) │
00:05:18 #16450 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:05:18 #16451 [Verbose] > │ while method1(v1) do │
00:05:18 #16452 [Verbose] > │ let v3 : int32 = v1.l0 │
00:05:18 #16453 [Verbose] > │ let v4 : float = float v3 │
00:05:18 #16454 [Verbose] > │ let v5 : float = 0.01 * v4 │
00:05:18 #16455 [Verbose] > │ v0.[int v3] <- v5 │
00:05:18 #16456 [Verbose] > │ let v6 : int32 = v3 + 1 │
00:05:18 #16457 [Verbose] > │ v1.l0 <- v6 │
00:05:18 #16458 [Verbose] > │ () │
00:05:18 #16459 [Verbose] > │ let v7 : int32 = v0.Length │
00:05:18 #16460 [Verbose] > │ let v8 : (float []) = Array.zeroCreate<float> (v7) │
00:05:18 #16461 [Verbose] > │ let v9 : Mut0 = {l0 = 0} : Mut0 │
00:05:18 #16462 [Verbose] > │ while method2(v7, v9) do │
00:05:18 #16463 [Verbose] > │ let v11 : int32 = v9.l0 │
00:05:18 #16464 [Verbose] > │ let v12 : float = v0.[int v11] │
00:05:18 #16465 [Verbose] > │ let v13 : float = 20.0 * v12 │
00:05:18 #16466 [Verbose] > │ let v14 : float = v12 ** 2.0 │
00:05:18 #16467 [Verbose] > │ let v15 : float = -9.8 * v14 │
00:05:18 #16468 [Verbose] > │ let v16 : float = v15 / 2.0 │
00:05:18 #16469 [Verbose] > │ let v17 : float = v13 + v16 │
00:05:18 #16470 [Verbose] > │ v8.[int v11] <- v17 │
00:05:18 #16471 [Verbose] > │ let v18 : int32 = v11 + 1 │
00:05:18 #16472 [Verbose] > │ v9.l0 <- v18 │
00:05:18 #16473 [Verbose] > │ () │
00:05:18 #16474 [Verbose] > │ let v19 : string = "height of projectile (m)" │
00:05:18 #16475 [Verbose] > │ let v20 : (struct (string * (float []) * (float [])) []) = [|struct │
00:05:18 #16476 [Verbose] > │ (v19, v0, v8)|] │
00:05:18 #16477 [Verbose] > │ let v21 : (struct (string * (float []) * (float [])) []) = method3(v20) │
00:05:18 #16478 [Verbose] > │ let v22 : string = "projectile motion" │
00:05:18 #16479 [Verbose] > │ let v23 : string = "time (s)" │
00:05:18 #16480 [Verbose] > │ let v24 : string = "" │
00:05:18 #16481 [Verbose] > │ struct (v22, v23, v24, v21) │
00:05:18 #16482 [Verbose] > │ method0() │
00:05:18 #16483 [Verbose] > │ │
00:05:18 #16484 [Verbose] > │ │
00:05:18 #16485 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:18 #16486 [Verbose] >
00:05:18 #16487 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:18 #16488 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:18 #16489 [Verbose] > │ ## velocity_cf │
00:05:18 #16490 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:18 #16491 [Verbose] >
00:05:18 #16492 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:18 #16493 [Verbose] > type mass = f64
00:05:18 #16494 [Verbose] > type time = f64
00:05:18 #16495 [Verbose] > type position = f64
00:05:18 #16496 [Verbose] > type velocity = f64
00:05:18 #16497 [Verbose] > type force = f64
00:05:18 #16498 [Verbose] >
00:05:18 #16499 [Verbose] > type velocity_cf = mass -> velocity -> list force -> (time -> velocity)
00:05:18 #16500 [Verbose] >
00:05:18 #16501 [Verbose] > inl velocity_cf m v0 fs =
00:05:18 #16502 [Verbose] > inl f_net = fs |> listm'.sum
00:05:18 #16503 [Verbose] > inl a0 = f_net / m
00:05:18 #16504 [Verbose] > inl v t = v0 + a0 * t
00:05:18 #16505 [Verbose] > v
00:05:18 #16506 [Verbose] >
00:05:18 #16507 [Verbose] > ╭─[ 262.62ms - stdout ]────────────────────────────────────────────────────────╮
00:05:18 #16508 [Verbose] > │ () │
00:05:18 #16509 [Verbose] > │ │
00:05:18 #16510 [Verbose] > │ │
00:05:18 #16511 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:18 #16512 [Verbose] >
00:05:18 #16513 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:18 #16514 [Verbose] > // // test
00:05:18 #16515 [Verbose] >
00:05:18 #16516 [Verbose] > velocity_cf 0.1f64 0.6 [[ 0.04; -0.08 ]] 0
00:05:18 #16517 [Verbose] > |> _assert_eq 0.6
00:05:18 #16518 [Verbose] >
00:05:18 #16519 [Verbose] > velocity_cf 0.1f64 0.6 [[ 0.04; -0.08 ]] 1
00:05:18 #16520 [Verbose] > |> _assert_eq 0.2
00:05:18 #16521 [Verbose] >
00:05:18 #16522 [Verbose] > ╭─[ 256.25ms - stdout ]────────────────────────────────────────────────────────╮
00:05:18 #16523 [Verbose] > │ let rec method0 () : unit = │
00:05:18 #16524 [Verbose] > │ let v0 : string = $"%A{0.6}" │
00:05:18 #16525 [Verbose] > │ System.Console.WriteLine v0 │
00:05:18 #16526 [Verbose] > │ let v1 : string = $"__expect / actual: %A{0.6} / expected: %A{0.6}" │
00:05:18 #16527 [Verbose] > │ let v2 : string = $"%A{0.2}" │
00:05:18 #16528 [Verbose] > │ System.Console.WriteLine v2 │
00:05:18 #16529 [Verbose] > │ let v3 : string = $"__expect / actual: %A{0.2} / expected: %A{0.2}" │
00:05:18 #16530 [Verbose] > │ () │
00:05:18 #16531 [Verbose] > │ method0() │
00:05:18 #16532 [Verbose] > │ │
00:05:18 #16533 [Verbose] > │ 0.6 │
00:05:18 #16534 [Verbose] > │ 0.2 │
00:05:18 #16535 [Verbose] > │ │
00:05:18 #16536 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:18 #16537 [Verbose] >
00:05:18 #16538 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:18 #16539 [Verbose] > // // test
00:05:18 #16540 [Verbose] >
00:05:18 #16541 [Verbose] > inl x = am'.init_series 0 4 0.1
00:05:18 #16542 [Verbose] > inl y = x |> am.map (velocity_cf 0.1f64 0.6 [[ 0.04; -0.08 ]])
00:05:18 #16543 [Verbose] > "car on an air track", "time (s)", "", ;[[ "velocity of car (m/s)", x, y ]]
00:05:18 #16544 [Verbose] >
00:05:18 #16545 [Verbose] > ╭─[ 319.64ms - return value ]──────────────────────────────────────────────────╮
00:05:18 #16546 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:05:18 #16547 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:05:18 #16548 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:05:18 #16549 [Verbose] > │ stroke="none"/> │
00:05:18 #16550 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:05:18 #16551 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:05:18 #16552 [Verbose] > │ fill="#FFFFFF"> │
00:05:18 #16553 [Verbose] > │ car on an air track │
00:05:18 #16554 [Verbose] > │ </text> │
00:05:18 #16555 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="57" y1="424" x2="57" │
00:05:18 #16556 [Verbose] > │ y2="75"/> │
00:05:18 #16557 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:05:18 #16558 [Verbose] > │ y2="75"/> │
00:05:18 #16559 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="82" y1="424" x2="82" │
00:05:18 #16560 [Verbose] > │ y2="75"/> │
00:05:18 #16561 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="94" y1="424" x2="94" │
00:05:18 #16562 [Verbose] > │ y2="75"/> │
00:05:18 #16563 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="107" y1=... │
00:05:18 #16564 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:18 #16565 [Verbose] >
00:05:18 #16566 [Verbose] > ╭─[ 328.31ms - stdout ]────────────────────────────────────────────────────────╮
00:05:18 #16567 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:05:18 #16568 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:05:18 #16569 [Verbose] > │ let v1 : int32 = v0.l0 │
00:05:18 #16570 [Verbose] > │ let v2 : bool = v1 < 41 │
00:05:18 #16571 [Verbose] > │ v2 │
00:05:18 #16572 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool = │
00:05:18 #16573 [Verbose] > │ let v2 : int32 = v1.l0 │
00:05:18 #16574 [Verbose] > │ let v3 : bool = v2 < v0 │
00:05:18 #16575 [Verbose] > │ v3 │
00:05:18 #16576 [Verbose] > │ and method3 (v0 : (struct (string * (float []) * (float [])) [])) : (struct │
00:05:18 #16577 [Verbose] > │ (string * (float []) * (float [])) []) = │
00:05:18 #16578 [Verbose] > │ v0 │
00:05:18 #16579 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:05:18 #16580 [Verbose] > │ []) * (float [])) [])) = │
00:05:18 #16581 [Verbose] > │ let v0 : (float []) = Array.zeroCreate<float> (41) │
00:05:18 #16582 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:05:18 #16583 [Verbose] > │ while method1(v1) do │
00:05:18 #16584 [Verbose] > │ let v3 : int32 = v1.l0 │
00:05:18 #16585 [Verbose] > │ let v4 : float = float v3 │
00:05:18 #16586 [Verbose] > │ let v5 : float = 0.1 * v4 │
00:05:18 #16587 [Verbose] > │ v0.[int v3] <- v5 │
00:05:18 #16588 [Verbose] > │ let v6 : int32 = v3 + 1 │
00:05:18 #16589 [Verbose] > │ v1.l0 <- v6 │
00:05:18 #16590 [Verbose] > │ () │
00:05:18 #16591 [Verbose] > │ let v7 : int32 = v0.Length │
00:05:18 #16592 [Verbose] > │ let v8 : (float []) = Array.zeroCreate<float> (v7) │
00:05:18 #16593 [Verbose] > │ let v9 : Mut0 = {l0 = 0} : Mut0 │
00:05:18 #16594 [Verbose] > │ while method2(v7, v9) do │
00:05:18 #16595 [Verbose] > │ let v11 : int32 = v9.l0 │
00:05:18 #16596 [Verbose] > │ let v12 : float = v0.[int v11] │
00:05:18 #16597 [Verbose] > │ let v13 : float = -0.39999999999999997 * v12 │
00:05:18 #16598 [Verbose] > │ let v14 : float = 0.6 + v13 │
00:05:18 #16599 [Verbose] > │ v8.[int v11] <- v14 │
00:05:18 #16600 [Verbose] > │ let v15 : int32 = v11 + 1 │
00:05:18 #16601 [Verbose] > │ v9.l0 <- v15 │
00:05:18 #16602 [Verbose] > │ () │
00:05:18 #16603 [Verbose] > │ let v16 : string = "velocity of car (m/s)" │
00:05:18 #16604 [Verbose] > │ let v17 : (struct (string * (float []) * (float [])) []) = [|struct │
00:05:18 #16605 [Verbose] > │ (v16, v0, v8)|] │
00:05:18 #16606 [Verbose] > │ let v18 : (struct (string * (float []) * (float [])) []) = method3(v17) │
00:05:18 #16607 [Verbose] > │ let v19 : string = "car on an air track" │
00:05:18 #16608 [Verbose] > │ let v20 : string = "time (s)" │
00:05:18 #16609 [Verbose] > │ let v21 : string = "" │
00:05:18 #16610 [Verbose] > │ struct (v19, v20, v21, v18) │
00:05:18 #16611 [Verbose] > │ method0() │
00:05:18 #16612 [Verbose] > │ │
00:05:18 #16613 [Verbose] > │ │
00:05:18 #16614 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:18 #16615 [Verbose] >
00:05:18 #16616 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:18 #16617 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:18 #16618 [Verbose] > │ ## derivative │
00:05:18 #16619 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:18 #16620 [Verbose] >
00:05:18 #16621 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:18 #16622 [Verbose] > type derivative = (f64 -> f64) -> f64 -> f64
00:05:18 #16623 [Verbose] >
00:05:18 #16624 [Verbose] > inl derivative dt : derivative =
00:05:18 #16625 [Verbose] > fun x t =>
00:05:18 #16626 [Verbose] > (x (t + dt / 2) - x (t - dt / 2)) / dt
00:05:19 #16627 [Verbose] >
00:05:19 #16628 [Verbose] > ╭─[ 237.65ms - stdout ]────────────────────────────────────────────────────────╮
00:05:19 #16629 [Verbose] > │ () │
00:05:19 #16630 [Verbose] > │ │
00:05:19 #16631 [Verbose] > │ │
00:05:19 #16632 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:19 #16633 [Verbose] >
00:05:19 #16634 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:19 #16635 [Verbose] > // // test
00:05:19 #16636 [Verbose] >
00:05:19 #16637 [Verbose] > derivative 1 (fun x => x ** 4 / 4) 1 - 1
00:05:19 #16638 [Verbose] > |> _assert_approx_eq None 0.25
00:05:19 #16639 [Verbose] >
00:05:19 #16640 [Verbose] > derivative 0.001 (fun x => x ** 4 / 4) 1 - 1
00:05:19 #16641 [Verbose] > |> _assert_approx_eq None 0.0000002499998827953931
00:05:19 #16642 [Verbose] >
00:05:19 #16643 [Verbose] > derivative 0.000001 (fun x => x ** 4 / 4) 1 - 1
00:05:19 #16644 [Verbose] > |> _assert_approx_eq None 0.000000000001000088900582341
00:05:19 #16645 [Verbose] >
00:05:19 #16646 [Verbose] > derivative 0.000000001 (fun x => x ** 4 / 4) 1 - 1
00:05:19 #16647 [Verbose] > |> _assert_approx_eq None 0.00000008274037099909037
00:05:19 #16648 [Verbose] >
00:05:19 #16649 [Verbose] > derivative 0.000000000001 (fun x => x ** 4 / 4) 1 - 1
00:05:19 #16650 [Verbose] > |> _assert_approx_eq None 0.00008890058234101161
00:05:19 #16651 [Verbose] >
00:05:19 #16652 [Verbose] > derivative 0.000000000000001 (fun x => x ** 4 / 4) 1 - 1
00:05:19 #16653 [Verbose] > |> _assert_approx_eq None -0.0007992778373592246
00:05:19 #16654 [Verbose] >
00:05:19 #16655 [Verbose] > derivative 0.000000000000000001 (fun x => x ** 4 / 4) 1 - 1
00:05:19 #16656 [Verbose] > |> _assert_approx_eq None -1
00:05:19 #16657 [Verbose] >
00:05:19 #16658 [Verbose] > ╭─[ 297.41ms - stdout ]────────────────────────────────────────────────────────╮
00:05:19 #16659 [Verbose] > │ let rec method0 () : unit = │
00:05:19 #16660 [Verbose] > │ let v0 : string = $"%A{0.25}" │
00:05:19 #16661 [Verbose] > │ System.Console.WriteLine v0 │
00:05:19 #16662 [Verbose] > │ let v1 : string = $"__expect / actual: %A{0.25} / expected: %A{0.25}" │
00:05:19 #16663 [Verbose] > │ let v2 : string = $"%A{2.499998827953931E-07}" │
00:05:19 #16664 [Verbose] > │ System.Console.WriteLine v2 │
00:05:19 #16665 [Verbose] > │ let v3 : string = $"__expect / actual: %A{2.499998827953931E-07} / │
00:05:19 #16666 [Verbose] > │ expected: %A{2.499998827953931E-07}" │
00:05:19 #16667 [Verbose] > │ let v4 : string = $"%A{1.000088900582341E-12}" │
00:05:19 #16668 [Verbose] > │ System.Console.WriteLine v4 │
00:05:19 #16669 [Verbose] > │ let v5 : string = $"__expect / actual: %A{1.000088900582341E-12} / │
00:05:19 #16670 [Verbose] > │ expected: %A{1.000088900582341E-12}" │
00:05:19 #16671 [Verbose] > │ let v6 : string = $"%A{8.274037099909037E-08}" │
00:05:19 #16672 [Verbose] > │ System.Console.WriteLine v6 │
00:05:19 #16673 [Verbose] > │ let v7 : string = $"__expect / actual: %A{8.274037099909037E-08} / │
00:05:19 #16674 [Verbose] > │ expected: %A{8.274037099909037E-08}" │
00:05:19 #16675 [Verbose] > │ let v8 : string = $"%A{8.890058234101161E-05}" │
00:05:19 #16676 [Verbose] > │ System.Console.WriteLine v8 │
00:05:19 #16677 [Verbose] > │ let v9 : string = $"__expect / actual: %A{8.890058234101161E-05} / │
00:05:19 #16678 [Verbose] > │ expected: %A{8.890058234101161E-05}" │
00:05:19 #16679 [Verbose] > │ let v10 : string = $"%A{-0.0007992778373592246}" │
00:05:19 #16680 [Verbose] > │ System.Console.WriteLine v10 │
00:05:19 #16681 [Verbose] > │ let v11 : string = $"__expect / actual: %A{-0.0007992778373592246} / │
00:05:19 #16682 [Verbose] > │ expected: %A{-0.0007992778373592246}" │
00:05:19 #16683 [Verbose] > │ let v12 : string = $"%A{-1.0}" │
00:05:19 #16684 [Verbose] > │ System.Console.WriteLine v12 │
00:05:19 #16685 [Verbose] > │ let v13 : string = $"__expect / actual: %A{-1.0} / expected: %A{-1.0}" │
00:05:19 #16686 [Verbose] > │ () │
00:05:19 #16687 [Verbose] > │ method0() │
00:05:19 #16688 [Verbose] > │ │
00:05:19 #16689 [Verbose] > │ 0.25 │
00:05:19 #16690 [Verbose] > │ 2.499998828e-07 │
00:05:19 #16691 [Verbose] > │ 1.000088901e-12 │
00:05:19 #16692 [Verbose] > │ 8.2740371e-08 │
00:05:19 #16693 [Verbose] > │ 8.890058234e-05 │
00:05:19 #16694 [Verbose] > │ -0.0007992778374 │
00:05:19 #16695 [Verbose] > │ -1.0 │
00:05:19 #16696 [Verbose] > │ │
00:05:19 #16697 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:19 #16698 [Verbose] >
00:05:19 #16699 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:19 #16700 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:19 #16701 [Verbose] > │ ## integration │
00:05:19 #16702 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:19 #16703 [Verbose] >
00:05:19 #16704 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:19 #16705 [Verbose] > type integration = (f64 -> f64) -> f64 -> f64 -> f64
00:05:19 #16706 [Verbose] >
00:05:19 #16707 [Verbose] > inl integral dt : integration =
00:05:19 #16708 [Verbose] > fun f a b =>
00:05:19 #16709 [Verbose] > inl rec loop t y =
00:05:19 #16710 [Verbose] > if t < b
00:05:19 #16711 [Verbose] > then loop (t + dt) (y + f t * dt)
00:05:19 #16712 [Verbose] > else t, y
00:05:19 #16713 [Verbose] > loop (a + dt / 2) 0
00:05:19 #16714 [Verbose] > |> snd
00:05:19 #16715 [Verbose] >
00:05:19 #16716 [Verbose] > ╭─[ 259.93ms - stdout ]────────────────────────────────────────────────────────╮
00:05:19 #16717 [Verbose] > │ () │
00:05:19 #16718 [Verbose] > │ │
00:05:19 #16719 [Verbose] > │ │
00:05:19 #16720 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:19 #16721 [Verbose] >
00:05:19 #16722 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:19 #16723 [Verbose] > // // test
00:05:19 #16724 [Verbose] >
00:05:19 #16725 [Verbose] > integral 0.01 math.square 0 1
00:05:19 #16726 [Verbose] > |> _assert_approx_eq None 0.33332500000000004
00:05:19 #16727 [Verbose] >
00:05:19 #16728 [Verbose] > ╭─[ 223.65ms - stdout ]────────────────────────────────────────────────────────╮
00:05:19 #16729 [Verbose] > │ let rec method0 () : unit = │
00:05:19 #16730 [Verbose] > │ let v0 : string = $"%A{0.3333250000000004}" │
00:05:19 #16731 [Verbose] > │ System.Console.WriteLine v0 │
00:05:19 #16732 [Verbose] > │ let v1 : string = $"__expect / actual: %A{0.3333250000000004} / │
00:05:19 #16733 [Verbose] > │ expected: %A{0.33332500000000004}" │
00:05:19 #16734 [Verbose] > │ () │
00:05:19 #16735 [Verbose] > │ method0() │
00:05:19 #16736 [Verbose] > │ │
00:05:19 #16737 [Verbose] > │ 0.333325 │
00:05:19 #16738 [Verbose] > │ │
00:05:19 #16739 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:19 #16740 [Verbose] >
00:05:19 #16741 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:19 #16742 [Verbose] > inl integral' dt : integration =
00:05:19 #16743 [Verbose] > fun f a b =>
00:05:19 #16744 [Verbose] > listm'.init_series (a + dt / 2) (b - dt / 2) dt
00:05:19 #16745 [Verbose] > |> listm.map (f >> (*) dt)
00:05:19 #16746 [Verbose] > |> listm'.sum
00:05:20 #16747 [Verbose] >
00:05:20 #16748 [Verbose] > ╭─[ 277.15ms - stdout ]────────────────────────────────────────────────────────╮
00:05:20 #16749 [Verbose] > │ () │
00:05:20 #16750 [Verbose] > │ │
00:05:20 #16751 [Verbose] > │ │
00:05:20 #16752 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:20 #16753 [Verbose] >
00:05:20 #16754 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:20 #16755 [Verbose] > // // test
00:05:20 #16756 [Verbose] >
00:05:20 #16757 [Verbose] > integral' 0.1 math.square 0 1
00:05:20 #16758 [Verbose] > |> _assert_approx_eq None (integral 0.1 math.square 0 1)
00:05:20 #16759 [Verbose] >
00:05:20 #16760 [Verbose] > ╭─[ 234.37ms - stdout ]────────────────────────────────────────────────────────╮
00:05:20 #16761 [Verbose] > │ let rec method0 () : unit = │
00:05:20 #16762 [Verbose] > │ let v0 : string = $"%A{0.3325000000000001}" │
00:05:20 #16763 [Verbose] > │ System.Console.WriteLine v0 │
00:05:20 #16764 [Verbose] > │ let v1 : string = $"__expect / actual: %A{0.3325000000000001} / │
00:05:20 #16765 [Verbose] > │ expected: %A{0.33249999999999996}" │
00:05:20 #16766 [Verbose] > │ () │
00:05:20 #16767 [Verbose] > │ method0() │
00:05:20 #16768 [Verbose] > │ │
00:05:20 #16769 [Verbose] > │ 0.3325 │
00:05:20 #16770 [Verbose] > │ │
00:05:20 #16771 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:20 #16772 [Verbose] >
00:05:20 #16773 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:20 #16774 [Verbose] > inl integral'' dt : integration =
00:05:20 #16775 [Verbose] > fun f a b =>
00:05:20 #16776 [Verbose] > am'.init_series (a + dt / 2) (b - dt / 2) dt
00:05:20 #16777 [Verbose] > |> am.map (f >> (*) dt)
00:05:20 #16778 [Verbose] > |> am'.sum
00:05:20 #16779 [Verbose] >
00:05:20 #16780 [Verbose] > ╭─[ 242.02ms - stdout ]────────────────────────────────────────────────────────╮
00:05:20 #16781 [Verbose] > │ () │
00:05:20 #16782 [Verbose] > │ │
00:05:20 #16783 [Verbose] > │ │
00:05:20 #16784 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:20 #16785 [Verbose] >
00:05:20 #16786 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:20 #16787 [Verbose] > // // test
00:05:20 #16788 [Verbose] >
00:05:20 #16789 [Verbose] > integral'' 0.01 math.square 0 1
00:05:20 #16790 [Verbose] > |> _assert_approx_eq None (integral 0.01 math.square 0 1)
00:05:21 #16791 [Verbose] >
00:05:21 #16792 [Verbose] > ╭─[ 302.51ms - stdout ]────────────────────────────────────────────────────────╮
00:05:21 #16793 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:05:21 #16794 [Verbose] > │ and Mut1 = {mutable l0 : int32; mutable l1 : float} │
00:05:21 #16795 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:05:21 #16796 [Verbose] > │ let v1 : int32 = v0.l0 │
00:05:21 #16797 [Verbose] > │ let v2 : bool = v1 < 100 │
00:05:21 #16798 [Verbose] > │ v2 │
00:05:21 #16799 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool = │
00:05:21 #16800 [Verbose] > │ let v2 : int32 = v1.l0 │
00:05:21 #16801 [Verbose] > │ let v3 : bool = v2 < v0 │
00:05:21 #16802 [Verbose] > │ v3 │
00:05:21 #16803 [Verbose] > │ and method3 (v0 : int32, v1 : Mut1) : bool = │
00:05:21 #16804 [Verbose] > │ let v2 : int32 = v1.l0 │
00:05:21 #16805 [Verbose] > │ let v3 : bool = v2 < v0 │
00:05:21 #16806 [Verbose] > │ v3 │
00:05:21 #16807 [Verbose] > │ and method4 (v0 : bool) : bool = │
00:05:21 #16808 [Verbose] > │ v0 │
00:05:21 #16809 [Verbose] > │ and method0 () : unit = │
00:05:21 #16810 [Verbose] > │ let v0 : (float []) = Array.zeroCreate<float> (100) │
00:05:21 #16811 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:05:21 #16812 [Verbose] > │ while method1(v1) do │
00:05:21 #16813 [Verbose] > │ let v3 : int32 = v1.l0 │
00:05:21 #16814 [Verbose] > │ let v4 : float = float v3 │
00:05:21 #16815 [Verbose] > │ let v5 : float = 0.01 * v4 │
00:05:21 #16816 [Verbose] > │ let v6 : float = 0.005 + v5 │
00:05:21 #16817 [Verbose] > │ v0.[int v3] <- v6 │
00:05:21 #16818 [Verbose] > │ let v7 : int32 = v3 + 1 │
00:05:21 #16819 [Verbose] > │ v1.l0 <- v7 │
00:05:21 #16820 [Verbose] > │ () │
00:05:21 #16821 [Verbose] > │ let v8 : int32 = v0.Length │
00:05:21 #16822 [Verbose] > │ let v9 : (float []) = Array.zeroCreate<float> (v8) │
00:05:21 #16823 [Verbose] > │ let v10 : Mut0 = {l0 = 0} : Mut0 │
00:05:21 #16824 [Verbose] > │ while method2(v8, v10) do │
00:05:21 #16825 [Verbose] > │ let v12 : int32 = v10.l0 │
00:05:21 #16826 [Verbose] > │ let v13 : float = v0.[int v12] │
00:05:21 #16827 [Verbose] > │ let v14 : float = v13 ** 2.0 │
00:05:21 #16828 [Verbose] > │ let v15 : float = 0.01 * v14 │
00:05:21 #16829 [Verbose] > │ v9.[int v12] <- v15 │
00:05:21 #16830 [Verbose] > │ let v16 : int32 = v12 + 1 │
00:05:21 #16831 [Verbose] > │ v10.l0 <- v16 │
00:05:21 #16832 [Verbose] > │ () │
00:05:21 #16833 [Verbose] > │ let v17 : int32 = v9.Length │
00:05:21 #16834 [Verbose] > │ let v18 : Mut1 = {l0 = 0; l1 = 0.0} : Mut1 │
00:05:21 #16835 [Verbose] > │ while method3(v17, v18) do │
00:05:21 #16836 [Verbose] > │ let v20 : int32 = v18.l0 │
00:05:21 #16837 [Verbose] > │ let v21 : float = v18.l1 │
00:05:21 #16838 [Verbose] > │ let v22 : float = v9.[int v20] │
00:05:21 #16839 [Verbose] > │ let v23 : float = v21 + v22 │
00:05:21 #16840 [Verbose] > │ let v24 : int32 = v20 + 1 │
00:05:21 #16841 [Verbose] > │ v18.l0 <- v24 │
00:05:21 #16842 [Verbose] > │ v18.l1 <- v23 │
00:05:21 #16843 [Verbose] > │ () │
00:05:21 #16844 [Verbose] > │ let v25 : float = v18.l1 │
00:05:21 #16845 [Verbose] > │ let v26 : string = $"%A{v25}" │
00:05:21 #16846 [Verbose] > │ System.Console.WriteLine v26 │
00:05:21 #16847 [Verbose] > │ let v27 : float = 0.3333250000000004 - v25 │
00:05:21 #16848 [Verbose] > │ let v28 : float = -v27 │
00:05:21 #16849 [Verbose] > │ let v29 : bool = v27 >= v28 │
00:05:21 #16850 [Verbose] > │ let v30 : float = │
00:05:21 #16851 [Verbose] > │ if v29 then │
00:05:21 #16852 [Verbose] > │ v27 │
00:05:21 #16853 [Verbose] > │ else │
00:05:21 #16854 [Verbose] > │ v28 │
00:05:21 #16855 [Verbose] > │ let v31 : bool = v30 < 1E-08 │
00:05:21 #16856 [Verbose] > │ let v33 : bool = │
00:05:21 #16857 [Verbose] > │ if v31 then │
00:05:21 #16858 [Verbose] > │ true │
00:05:21 #16859 [Verbose] > │ else │
00:05:21 #16860 [Verbose] > │ method4(v31) │
00:05:21 #16861 [Verbose] > │ let v34 : string = $"__expect / actual: %A{v25} / expected: │
00:05:21 #16862 [Verbose] > │ %A{0.3333250000000004}" │
00:05:21 #16863 [Verbose] > │ let v35 : bool = v33 = false │
00:05:21 #16864 [Verbose] > │ if v35 then │
00:05:21 #16865 [Verbose] > │ failwith<unit> v34 │
00:05:21 #16866 [Verbose] > │ method0() │
00:05:21 #16867 [Verbose] > │ │
00:05:21 #16868 [Verbose] > │ 0.333325 │
00:05:21 #16869 [Verbose] > │ │
00:05:21 #16870 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:21 #16871 [Verbose] >
00:05:21 #16872 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:21 #16873 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:21 #16874 [Verbose] > │ ## anti_derivative │
00:05:21 #16875 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:21 #16876 [Verbose] >
00:05:21 #16877 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:21 #16878 [Verbose] > inl anti_derivative dt v0 a t =
00:05:21 #16879 [Verbose] > v0 + integral' dt a 0 t
00:05:21 #16880 [Verbose] >
00:05:21 #16881 [Verbose] > ╭─[ 250.36ms - stdout ]────────────────────────────────────────────────────────╮
00:05:21 #16882 [Verbose] > │ () │
00:05:21 #16883 [Verbose] > │ │
00:05:21 #16884 [Verbose] > │ │
00:05:21 #16885 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:21 #16886 [Verbose] >
00:05:21 #16887 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:21 #16888 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:21 #16889 [Verbose] > │ ## velocity_ft │
00:05:21 #16890 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:21 #16891 [Verbose] >
00:05:21 #16892 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:21 #16893 [Verbose] > type velocity_ft = mass -> velocity -> list (time -> force) -> (time ->
00:05:21 #16894 [Verbose] > velocity)
00:05:21 #16895 [Verbose] >
00:05:21 #16896 [Verbose] > inl velocity_ft dt : velocity_ft =
00:05:21 #16897 [Verbose] > fun m v0 fs =>
00:05:21 #16898 [Verbose] > inl f_net t = fs |> listm.map (fun f => f t) |> listm'.sum
00:05:21 #16899 [Verbose] > inl a t = f_net t / m
00:05:21 #16900 [Verbose] > anti_derivative dt v0 a
00:05:21 #16901 [Verbose] >
00:05:21 #16902 [Verbose] > ╭─[ 242.16ms - stdout ]────────────────────────────────────────────────────────╮
00:05:21 #16903 [Verbose] > │ () │
00:05:21 #16904 [Verbose] > │ │
00:05:21 #16905 [Verbose] > │ │
00:05:21 #16906 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:21 #16907 [Verbose] >
00:05:21 #16908 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:21 #16909 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:21 #16910 [Verbose] > │ ## position_ft │
00:05:21 #16911 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:21 #16912 [Verbose] >
00:05:21 #16913 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:21 #16914 [Verbose] > type position_ft = mass -> position -> velocity -> list (time -> force) -> (time
00:05:21 #16915 [Verbose] > -> position)
00:05:21 #16916 [Verbose] >
00:05:21 #16917 [Verbose] > inl position_ft dt : position_ft =
00:05:21 #16918 [Verbose] > fun m x0 v0 fs =>
00:05:21 #16919 [Verbose] > velocity_ft dt m v0 fs
00:05:21 #16920 [Verbose] > |> anti_derivative dt x0
00:05:21 #16921 [Verbose] >
00:05:21 #16922 [Verbose] > ╭─[ 284.82ms - stdout ]────────────────────────────────────────────────────────╮
00:05:21 #16923 [Verbose] > │ () │
00:05:21 #16924 [Verbose] > │ │
00:05:21 #16925 [Verbose] > │ │
00:05:21 #16926 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:21 #16927 [Verbose] >
00:05:21 #16928 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:21 #16929 [Verbose] > // // test
00:05:21 #16930 [Verbose] >
00:05:21 #16931 [Verbose] > inl pedal_coast (t : time) : force =
00:05:21 #16932 [Verbose] > inl t_cycle = 20
00:05:21 #16933 [Verbose] > inl n_complete : i32 = t / t_cycle |> conv
00:05:21 #16934 [Verbose] > inl remainder = t - conv n_complete * t_cycle
00:05:21 #16935 [Verbose] > if remainder > 0 && remainder < 10
00:05:21 #16936 [Verbose] > then 10
00:05:21 #16937 [Verbose] > else 0
00:05:21 #16938 [Verbose] >
00:05:21 #16939 [Verbose] > inl x = am'.init_series -5 45 0.1
00:05:21 #16940 [Verbose] > inl y = x |> am.map pedal_coast
00:05:21 #16941 [Verbose] > "child pedaling then coasting", "time (s)", "", ;[[ "force on bike (N)", x, y ]]
00:05:22 #16942 [Verbose] >
00:05:22 #16943 [Verbose] > ╭─[ 354.22ms - return value ]──────────────────────────────────────────────────╮
00:05:22 #16944 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:05:22 #16945 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:05:22 #16946 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:05:22 #16947 [Verbose] > │ stroke="none"/> │
00:05:22 #16948 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:05:22 #16949 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:05:22 #16950 [Verbose] > │ fill="#FFFFFF"> │
00:05:22 #16951 [Verbose] > │ child pedaling then coasting │
00:05:22 #16952 [Verbose] > │ </text> │
00:05:22 #16953 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" y1="424" x2="59" │
00:05:22 #16954 [Verbose] > │ y2="75"/> │
00:05:22 #16955 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:05:22 #16956 [Verbose] > │ y2="75"/> │
00:05:22 #16957 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" y1="424" x2="79" │
00:05:22 #16958 [Verbose] > │ y2="75"/> │
00:05:22 #16959 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" y1="424" x2="89" │
00:05:22 #16960 [Verbose] > │ y2="75"/> │
00:05:22 #16961 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1=... │
00:05:22 #16962 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:22 #16963 [Verbose] >
00:05:22 #16964 [Verbose] > ╭─[ 362.80ms - stdout ]────────────────────────────────────────────────────────╮
00:05:22 #16965 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:05:22 #16966 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:05:22 #16967 [Verbose] > │ let v1 : int32 = v0.l0 │
00:05:22 #16968 [Verbose] > │ let v2 : bool = v1 < 501 │
00:05:22 #16969 [Verbose] > │ v2 │
00:05:22 #16970 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool = │
00:05:22 #16971 [Verbose] > │ let v2 : int32 = v1.l0 │
00:05:22 #16972 [Verbose] > │ let v3 : bool = v2 < v0 │
00:05:22 #16973 [Verbose] > │ v3 │
00:05:22 #16974 [Verbose] > │ and method3 (v0 : (struct (string * (float []) * (float [])) [])) : (struct │
00:05:22 #16975 [Verbose] > │ (string * (float []) * (float [])) []) = │
00:05:22 #16976 [Verbose] > │ v0 │
00:05:22 #16977 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:05:22 #16978 [Verbose] > │ []) * (float [])) [])) = │
00:05:22 #16979 [Verbose] > │ let v0 : (float []) = Array.zeroCreate<float> (501) │
00:05:22 #16980 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:05:22 #16981 [Verbose] > │ while method1(v1) do │
00:05:22 #16982 [Verbose] > │ let v3 : int32 = v1.l0 │
00:05:22 #16983 [Verbose] > │ let v4 : float = float v3 │
00:05:22 #16984 [Verbose] > │ let v5 : float = 0.1 * v4 │
00:05:22 #16985 [Verbose] > │ let v6 : float = -5.0 + v5 │
00:05:22 #16986 [Verbose] > │ v0.[int v3] <- v6 │
00:05:22 #16987 [Verbose] > │ let v7 : int32 = v3 + 1 │
00:05:22 #16988 [Verbose] > │ v1.l0 <- v7 │
00:05:22 #16989 [Verbose] > │ () │
00:05:22 #16990 [Verbose] > │ let v8 : int32 = v0.Length │
00:05:22 #16991 [Verbose] > │ let v9 : (float []) = Array.zeroCreate<float> (v8) │
00:05:22 #16992 [Verbose] > │ let v10 : Mut0 = {l0 = 0} : Mut0 │
00:05:22 #16993 [Verbose] > │ while method2(v8, v10) do │
00:05:22 #16994 [Verbose] > │ let v12 : int32 = v10.l0 │
00:05:22 #16995 [Verbose] > │ let v13 : float = v0.[int v12] │
00:05:22 #16996 [Verbose] > │ let v14 : float = v13 / 20.0 │
00:05:22 #16997 [Verbose] > │ let v15 : int32 = int32 v14 │
00:05:22 #16998 [Verbose] > │ let v16 : float = float v15 │
00:05:22 #16999 [Verbose] > │ let v17 : float = v16 * 20.0 │
00:05:22 #17000 [Verbose] > │ let v18 : float = v13 - v17 │
00:05:22 #17001 [Verbose] > │ let v19 : bool = v18 > 0.0 │
00:05:22 #17002 [Verbose] > │ let v21 : bool = │
00:05:22 #17003 [Verbose] > │ if v19 then │
00:05:22 #17004 [Verbose] > │ let v20 : bool = v18 < 10.0 │
00:05:22 #17005 [Verbose] > │ v20 │
00:05:22 #17006 [Verbose] > │ else │
00:05:22 #17007 [Verbose] > │ false │
00:05:22 #17008 [Verbose] > │ let v22 : float = │
00:05:22 #17009 [Verbose] > │ if v21 then │
00:05:22 #17010 [Verbose] > │ 10.0 │
00:05:22 #17011 [Verbose] > │ else │
00:05:22 #17012 [Verbose] > │ 0.0 │
00:05:22 #17013 [Verbose] > │ v9.[int v12] <- v22 │
00:05:22 #17014 [Verbose] > │ let v23 : int32 = v12 + 1 │
00:05:22 #17015 [Verbose] > │ v10.l0 <- v23 │
00:05:22 #17016 [Verbose] > │ () │
00:05:22 #17017 [Verbose] > │ let v24 : string = "force on bike (N)" │
00:05:22 #17018 [Verbose] > │ let v25 : (struct (string * (float []) * (float [])) []) = [|struct │
00:05:22 #17019 [Verbose] > │ (v24, v0, v9)|] │
00:05:22 #17020 [Verbose] > │ let v26 : (struct (string * (float []) * (float [])) []) = method3(v25) │
00:05:22 #17021 [Verbose] > │ let v27 : string = "child pedaling then coasting" │
00:05:22 #17022 [Verbose] > │ let v28 : string = "time (s)" │
00:05:22 #17023 [Verbose] > │ let v29 : string = "" │
00:05:22 #17024 [Verbose] > │ struct (v27, v28, v29, v26) │
00:05:22 #17025 [Verbose] > │ method0() │
00:05:22 #17026 [Verbose] > │ │
00:05:22 #17027 [Verbose] > │ │
00:05:22 #17028 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:22 #17029 [Verbose] >
00:05:22 #17030 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:22 #17031 [Verbose] > // // test
00:05:22 #17032 [Verbose] >
00:05:22 #17033 [Verbose] > inl x = am'.init_series -5 45 1
00:05:22 #17034 [Verbose] > inl y = x |> am.map (position_ft 0.1f64 20 0 0 [[ pedal_coast ]])
00:05:22 #17035 [Verbose] > "child pedaling then coasting", "time (s)", "", ;[[ "position of bike (m)", x, y
00:05:22 #17036 [Verbose] > ]]
00:05:22 #17037 [Verbose] >
00:05:22 #17038 [Verbose] > ╭─[ 545.41ms - return value ]──────────────────────────────────────────────────╮
00:05:22 #17039 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:05:22 #17040 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:05:22 #17041 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:05:22 #17042 [Verbose] > │ stroke="none"/> │
00:05:22 #17043 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:05:22 #17044 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:05:22 #17045 [Verbose] > │ fill="#FFFFFF"> │
00:05:22 #17046 [Verbose] > │ child pedaling then coasting │
00:05:22 #17047 [Verbose] > │ </text> │
00:05:22 #17048 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" y1="424" x2="59" │
00:05:22 #17049 [Verbose] > │ y2="75"/> │
00:05:22 #17050 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:05:22 #17051 [Verbose] > │ y2="75"/> │
00:05:22 #17052 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" y1="424" x2="79" │
00:05:22 #17053 [Verbose] > │ y2="75"/> │
00:05:22 #17054 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" y1="424" x2="89" │
00:05:22 #17055 [Verbose] > │ y2="75"/> │
00:05:22 #17056 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1=... │
00:05:22 #17057 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:22 #17058 [Verbose] >
00:05:22 #17059 [Verbose] > ╭─[ 554.68ms - stdout ]────────────────────────────────────────────────────────╮
00:05:22 #17060 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:05:22 #17061 [Verbose] > │ and UH0 = │
00:05:22 #17062 [Verbose] > │ | UH0_0 of float * UH0 │
00:05:22 #17063 [Verbose] > │ | UH0_1 │
00:05:22 #17064 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:05:22 #17065 [Verbose] > │ let v1 : int32 = v0.l0 │
00:05:22 #17066 [Verbose] > │ let v2 : bool = v1 < 51 │
00:05:22 #17067 [Verbose] > │ v2 │
00:05:22 #17068 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool = │
00:05:22 #17069 [Verbose] > │ let v2 : int32 = v1.l0 │
00:05:22 #17070 [Verbose] > │ let v3 : bool = v2 < v0 │
00:05:22 #17071 [Verbose] > │ v3 │
00:05:22 #17072 [Verbose] > │ and method3 (v0 : float, v1 : float) : UH0 = │
00:05:22 #17073 [Verbose] > │ let v2 : bool = v1 < v0 │
00:05:22 #17074 [Verbose] > │ if v2 then │
00:05:22 #17075 [Verbose] > │ let v3 : float = 0.1 * v1 │
00:05:22 #17076 [Verbose] > │ let v4 : float = 0.05 + v3 │
00:05:22 #17077 [Verbose] > │ let v5 : float = v1 + 1.0 │
00:05:22 #17078 [Verbose] > │ let v6 : UH0 = method3(v0, v5) │
00:05:22 #17079 [Verbose] > │ UH0_0(v4, v6) │
00:05:22 #17080 [Verbose] > │ else │
00:05:22 #17081 [Verbose] > │ UH0_1 │
00:05:22 #17082 [Verbose] > │ and method5 (v0 : UH0, v1 : UH0) : UH0 = │
00:05:22 #17083 [Verbose] > │ match v0 with │
00:05:22 #17084 [Verbose] > │ | UH0_0(v2, v3) -> (* Cons *) │
00:05:22 #17085 [Verbose] > │ let v4 : UH0 = method5(v3, v1) │
00:05:22 #17086 [Verbose] > │ let v5 : float = v2 / 20.0 │
00:05:22 #17087 [Verbose] > │ let v6 : int32 = int32 v5 │
00:05:22 #17088 [Verbose] > │ let v7 : float = float v6 │
00:05:22 #17089 [Verbose] > │ let v8 : float = v7 * 20.0 │
00:05:22 #17090 [Verbose] > │ let v9 : float = v2 - v8 │
00:05:22 #17091 [Verbose] > │ let v10 : bool = v9 > 0.0 │
00:05:22 #17092 [Verbose] > │ let v12 : bool = │
00:05:22 #17093 [Verbose] > │ if v10 then │
00:05:22 #17094 [Verbose] > │ let v11 : bool = v9 < 10.0 │
00:05:22 #17095 [Verbose] > │ v11 │
00:05:22 #17096 [Verbose] > │ else │
00:05:22 #17097 [Verbose] > │ false │
00:05:22 #17098 [Verbose] > │ let v13 : float = │
00:05:22 #17099 [Verbose] > │ if v12 then │
00:05:22 #17100 [Verbose] > │ 10.0 │
00:05:22 #17101 [Verbose] > │ else │
00:05:22 #17102 [Verbose] > │ 0.0 │
00:05:22 #17103 [Verbose] > │ let v14 : float = v13 / 20.0 │
00:05:22 #17104 [Verbose] > │ let v15 : float = 0.1 * v14 │
00:05:22 #17105 [Verbose] > │ UH0_0(v15, v4) │
00:05:22 #17106 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:05:22 #17107 [Verbose] > │ v1 │
00:05:22 #17108 [Verbose] > │ and method6 (v0 : UH0, v1 : float) : float = │
00:05:22 #17109 [Verbose] > │ match v0 with │
00:05:22 #17110 [Verbose] > │ | UH0_0(v2, v3) -> (* Cons *) │
00:05:22 #17111 [Verbose] > │ let v4 : float = v1 + v2 │
00:05:22 #17112 [Verbose] > │ method6(v3, v4) │
00:05:22 #17113 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:05:22 #17114 [Verbose] > │ v1 │
00:05:22 #17115 [Verbose] > │ and method4 (v0 : UH0, v1 : UH0) : UH0 = │
00:05:22 #17116 [Verbose] > │ match v0 with │
00:05:22 #17117 [Verbose] > │ | UH0_0(v2, v3) -> (* Cons *) │
00:05:22 #17118 [Verbose] > │ let v4 : UH0 = method4(v3, v1) │
00:05:22 #17119 [Verbose] > │ let v5 : float = v2 - 0.05 │
00:05:22 #17120 [Verbose] > │ let v6 : float = v5 - 0.05 │
00:05:22 #17121 [Verbose] > │ let v7 : float = v6 / 0.1 │
00:05:22 #17122 [Verbose] > │ let v8 : float = v7 + 1.0 │
00:05:22 #17123 [Verbose] > │ let v9 : float = 0.0 │
00:05:22 #17124 [Verbose] > │ let v10 : UH0 = method3(v8, v9) │
00:05:22 #17125 [Verbose] > │ let v11 : UH0 = UH0_1 │
00:05:22 #17126 [Verbose] > │ let v12 : UH0 = method5(v10, v11) │
00:05:22 #17127 [Verbose] > │ let v13 : float = 0.0 │
00:05:22 #17128 [Verbose] > │ let v14 : float = method6(v12, v13) │
00:05:22 #17129 [Verbose] > │ let v15 : float = 0.1 * v14 │
00:05:22 #17130 [Verbose] > │ UH0_0(v15, v4) │
00:05:22 #17131 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:05:22 #17132 [Verbose] > │ v1 │
00:05:22 #17133 [Verbose] > │ and method7 (v0 : (struct (string * (float []) * (float [])) [])) : (struct │
00:05:22 #17134 [Verbose] > │ (string * (float []) * (float [])) []) = │
00:05:22 #17135 [Verbose] > │ v0 │
00:05:22 #17136 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:05:22 #17137 [Verbose] > │ []) * (float [])) [])) = │
00:05:22 #17138 [Verbose] > │ let v0 : (float []) = Array.zeroCreate<float> (51) │
00:05:22 #17139 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:05:22 #17140 [Verbose] > │ while method1(v1) do │
00:05:22 #17141 [Verbose] > │ let v3 : int32 = v1.l0 │
00:05:22 #17142 [Verbose] > │ let v4 : float = float v3 │
00:05:22 #17143 [Verbose] > │ let v5 : float = -5.0 + v4 │
00:05:22 #17144 [Verbose] > │ v0.[int v3] <- v5 │
00:05:22 #17145 [Verbose] > │ let v6 : int32 = v3 + 1 │
00:05:22 #17146 [Verbose] > │ v1.l0 <- v6 │
00:05:22 #17147 [Verbose] > │ () │
00:05:22 #17148 [Verbose] > │ let v7 : int32 = v0.Length │
00:05:22 #17149 [Verbose] > │ let v8 : (float []) = Array.zeroCreate<float> (v7) │
00:05:22 #17150 [Verbose] > │ let v9 : Mut0 = {l0 = 0} : Mut0 │
00:05:22 #17151 [Verbose] > │ while method2(v7, v9) do │
00:05:22 #17152 [Verbose] > │ let v11 : int32 = v9.l0 │
00:05:22 #17153 [Verbose] > │ let v12 : float = v0.[int v11] │
00:05:22 #17154 [Verbose] > │ let v13 : float = v12 - 0.05 │
00:05:22 #17155 [Verbose] > │ let v14 : float = v13 - 0.05 │
00:05:22 #17156 [Verbose] > │ let v15 : float = v14 / 0.1 │
00:05:22 #17157 [Verbose] > │ let v16 : float = v15 + 1.0 │
00:05:22 #17158 [Verbose] > │ let v17 : float = 0.0 │
00:05:22 #17159 [Verbose] > │ let v18 : UH0 = method3(v16, v17) │
00:05:22 #17160 [Verbose] > │ let v19 : UH0 = UH0_1 │
00:05:22 #17161 [Verbose] > │ let v20 : UH0 = method4(v18, v19) │
00:05:22 #17162 [Verbose] > │ let v21 : float = 0.0 │
00:05:22 #17163 [Verbose] > │ let v22 : float = method6(v20, v21) │
00:05:22 #17164 [Verbose] > │ v8.[int v11] <- v22 │
00:05:22 #17165 [Verbose] > │ let v23 : int32 = v11 + 1 │
00:05:22 #17166 [Verbose] > │ v9.l0 <- v23 │
00:05:22 #17167 [Verbose] > │ () │
00:05:22 #17168 [Verbose] > │ let v24 : string = "position of bike (m)" │
00:05:22 #17169 [Verbose] > │ let v25 : (struct (string * (float []) * (float [])) []) = [|struct │
00:05:22 #17170 [Verbose] > │ (v24, v0, v8)|] │
00:05:22 #17171 [Verbose] > │ let v26 : (struct (string * (float []) * (float [])) []) = method7(v25) │
00:05:22 #17172 [Verbose] > │ let v27 : string = "child pedaling then coasting" │
00:05:22 #17173 [Verbose] > │ let v28 : string = "time (s)" │
00:05:22 #17174 [Verbose] > │ let v29 : string = "" │
00:05:22 #17175 [Verbose] > │ struct (v27, v28, v29, v26) │
00:05:22 #17176 [Verbose] > │ method0() │
00:05:22 #17177 [Verbose] > │ │
00:05:22 #17178 [Verbose] > │ │
00:05:22 #17179 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:22 #17180 [Verbose] >
00:05:22 #17181 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:22 #17182 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:22 #17183 [Verbose] > │ ## velocity_fv │
00:05:22 #17184 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:22 #17185 [Verbose] >
00:05:22 #17186 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:22 #17187 [Verbose] > inl newton_second_v m fs v0 =
00:05:22 #17188 [Verbose] > fs |> listm.map (fun f => f v0) |> listm'.sum |> fun x => x / m
00:05:22 #17189 [Verbose] >
00:05:22 #17190 [Verbose] > inl update_velocity dt m fs v0 =
00:05:22 #17191 [Verbose] > v0 + newton_second_v m fs v0 * dt
00:05:22 #17192 [Verbose] >
00:05:22 #17193 [Verbose] > inl velocity_fv dt m v0 fs t =
00:05:22 #17194 [Verbose] > stream.iterate (update_velocity dt m fs) v0
00:05:22 #17195 [Verbose] > |> stream.try_item (t / dt |> math.round |> abs)
00:05:22 #17196 [Verbose] > |> optionm'.default_value 0
00:05:23 #17197 [Verbose] >
00:05:23 #17198 [Verbose] > ╭─[ 239.44ms - stdout ]────────────────────────────────────────────────────────╮
00:05:23 #17199 [Verbose] > │ () │
00:05:23 #17200 [Verbose] > │ │
00:05:23 #17201 [Verbose] > │ │
00:05:23 #17202 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:23 #17203 [Verbose] >
00:05:23 #17204 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:23 #17205 [Verbose] > inl f_air drag rho area v =
00:05:23 #17206 [Verbose] > -drag * rho * area * abs v * v / 2
00:05:23 #17207 [Verbose] >
00:05:23 #17208 [Verbose] > ╭─[ 221.49ms - stdout ]────────────────────────────────────────────────────────╮
00:05:23 #17209 [Verbose] > │ () │
00:05:23 #17210 [Verbose] > │ │
00:05:23 #17211 [Verbose] > │ │
00:05:23 #17212 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:23 #17213 [Verbose] >
00:05:23 #17214 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:23 #17215 [Verbose] > // // test
00:05:23 #17216 [Verbose] >
00:05:23 #17217 [Verbose] > inl x = am'.init_series 0 60 0.5
00:05:23 #17218 [Verbose] > inl y = x |> am.map (velocity_fv 1 70 0f64 [[ fun _ => 100; f_air 2 1.225 0.6
00:05:23 #17219 [Verbose] > ]])
00:05:23 #17220 [Verbose] > "bike velocity", "time (s)", "", ;[[ "velocity of bike (m/s)", x, y ]]
00:05:23 #17221 [Verbose] >
00:05:23 #17222 [Verbose] > ╭─[ 529.44ms - return value ]──────────────────────────────────────────────────╮
00:05:23 #17223 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:05:23 #17224 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:05:23 #17225 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:05:23 #17226 [Verbose] > │ stroke="none"/> │
00:05:23 #17227 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:05:23 #17228 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:05:23 #17229 [Verbose] > │ fill="#FFFFFF"> │
00:05:23 #17230 [Verbose] > │ bike velocity │
00:05:23 #17231 [Verbose] > │ </text> │
00:05:23 #17232 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="61" y1="424" x2="61" │
00:05:23 #17233 [Verbose] > │ y2="75"/> │
00:05:23 #17234 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:05:23 #17235 [Verbose] > │ y2="75"/> │
00:05:23 #17236 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="78" y1="424" x2="78" │
00:05:23 #17237 [Verbose] > │ y2="75"/> │
00:05:23 #17238 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="86" y1="424" x2="86" │
00:05:23 #17239 [Verbose] > │ y2="75"/> │
00:05:23 #17240 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="94" y1="424" x... │
00:05:23 #17241 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:23 #17242 [Verbose] >
00:05:23 #17243 [Verbose] > ╭─[ 541.62ms - stdout ]────────────────────────────────────────────────────────╮
00:05:23 #17244 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:05:23 #17245 [Verbose] > │ and UH0 = │
00:05:23 #17246 [Verbose] > │ | UH0_0 of float * (unit -> UH0) │
00:05:23 #17247 [Verbose] > │ | UH0_1 │
00:05:23 #17248 [Verbose] > │ and [<Struct>] US0 = │
00:05:23 #17249 [Verbose] > │ | US0_0 │
00:05:23 #17250 [Verbose] > │ | US0_1 of f1_0 : float │
00:05:23 #17251 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:05:23 #17252 [Verbose] > │ let v1 : int32 = v0.l0 │
00:05:23 #17253 [Verbose] > │ let v2 : bool = v1 < 121 │
00:05:23 #17254 [Verbose] > │ v2 │
00:05:23 #17255 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool = │
00:05:23 #17256 [Verbose] > │ let v2 : int32 = v1.l0 │
00:05:23 #17257 [Verbose] > │ let v3 : bool = v2 < v0 │
00:05:23 #17258 [Verbose] > │ v3 │
00:05:23 #17259 [Verbose] > │ and closure129 () () : UH0 = │
00:05:23 #17260 [Verbose] > │ let v0 : (unit -> UH0) = closure129() │
00:05:23 #17261 [Verbose] > │ UH0_0(11.664236870396083, v0) │
00:05:23 #17262 [Verbose] > │ and closure128 () () : UH0 = │
00:05:23 #17263 [Verbose] > │ let v0 : (unit -> UH0) = closure129() │
00:05:23 #17264 [Verbose] > │ UH0_0(11.664236870396081, v0) │
00:05:23 #17265 [Verbose] > │ and closure127 () () : UH0 = │
00:05:23 #17266 [Verbose] > │ let v0 : (unit -> UH0) = closure128() │
00:05:23 #17267 [Verbose] > │ UH0_0(11.66423687039608, v0) │
00:05:23 #17268 [Verbose] > │ and closure126 () () : UH0 = │
00:05:23 #17269 [Verbose] > │ let v0 : (unit -> UH0) = closure127() │
00:05:23 #17270 [Verbose] > │ UH0_0(11.664236870396078, v0) │
00:05:23 #17271 [Verbose] > │ and closure125 () () : UH0 = │
00:05:23 #17272 [Verbose] > │ let v0 : (unit -> UH0) = closure126() │
00:05:23 #17273 [Verbose] > │ UH0_0(11.664236870396074, v0) │
00:05:23 #17274 [Verbose] > │ and closure124 () () : UH0 = │
00:05:23 #17275 [Verbose] > │ let v0 : (unit -> UH0) = closure125() │
00:05:23 #17276 [Verbose] > │ UH0_0(11.66423687039607, v0) │
00:05:23 #17277 [Verbose] > │ and closure123 () () : UH0 = │
00:05:23 #17278 [Verbose] > │ let v0 : (unit -> UH0) = closure124() │
00:05:23 #17279 [Verbose] > │ UH0_0(11.664236870396065, v0) │
00:05:23 #17280 [Verbose] > │ and closure122 () () : UH0 = │
00:05:23 #17281 [Verbose] > │ let v0 : (unit -> UH0) = closure123() │
00:05:23 #17282 [Verbose] > │ UH0_0(11.664236870396058, v0) │
00:05:23 #17283 [Verbose] > │ and closure121 () () : UH0 = │
00:05:23 #17284 [Verbose] > │ let v0 : (unit -> UH0) = closure122() │
00:05:23 #17285 [Verbose] > │ UH0_0(11.66423687039605, v0) │
00:05:23 #17286 [Verbose] > │ and closure120 () () : UH0 = │
00:05:23 #17287 [Verbose] > │ let v0 : (unit -> UH0) = closure121() │
00:05:23 #17288 [Verbose] > │ UH0_0(11.664236870396037, v0) │
00:05:23 #17289 [Verbose] > │ and closure119 () () : UH0 = │
00:05:23 #17290 [Verbose] > │ let v0 : (unit -> UH0) = closure120() │
00:05:23 #17291 [Verbose] > │ UH0_0(11.66423687039602, v0) │
00:05:23 #17292 [Verbose] > │ and closure118 () () : UH0 = │
00:05:23 #17293 [Verbose] > │ let v0 : (unit -> UH0) = closure119() │
00:05:23 #17294 [Verbose] > │ UH0_0(11.664236870396, v0) │
00:05:23 #17295 [Verbose] > │ and closure117 () () : UH0 = │
00:05:23 #17296 [Verbose] > │ let v0 : (unit -> UH0) = closure118() │
00:05:23 #17297 [Verbose] > │ UH0_0(11.664236870395971, v0) │
00:05:23 #17298 [Verbose] > │ and closure116 () () : UH0 = │
00:05:23 #17299 [Verbose] > │ let v0 : (unit -> UH0) = closure117() │
00:05:23 #17300 [Verbose] > │ UH0_0(11.664236870395934, v0) │
00:05:23 #17301 [Verbose] > │ and closure115 () () : UH0 = │
00:05:23 #17302 [Verbose] > │ let v0 : (unit -> UH0) = closure116() │
00:05:23 #17303 [Verbose] > │ UH0_0(11.664236870395884, v0) │
00:05:23 #17304 [Verbose] > │ and closure114 () () : UH0 = │
00:05:23 #17305 [Verbose] > │ let v0 : (unit -> UH0) = closure115() │
00:05:23 #17306 [Verbose] > │ UH0_0(11.664236870395818, v0) │
00:05:23 #17307 [Verbose] > │ and closure113 () () : UH0 = │
00:05:23 #17308 [Verbose] > │ let v0 : (unit -> UH0) = closure114() │
00:05:23 #17309 [Verbose] > │ UH0_0(11.664236870395731, v0) │
00:05:23 #17310 [Verbose] > │ and closure112 () () : UH0 = │
00:05:23 #17311 [Verbose] > │ let v0 : (unit -> UH0) = closure113() │
00:05:23 #17312 [Verbose] > │ UH0_0(11.664236870395616, v0) │
00:05:23 #17313 [Verbose] > │ and closure111 () () : UH0 = │
00:05:23 #17314 [Verbose] > │ let v0 : (unit -> UH0) = closure112() │
00:05:23 #17315 [Verbose] > │ UH0_0(11.664236870395463, v0) │
00:05:23 #17316 [Verbose] > │ and closure110 () () : UH0 = │
00:05:23 #17317 [Verbose] > │ let v0 : (unit -> UH0) = closure111() │
00:05:23 #17318 [Verbose] > │ UH0_0(11.66423687039526, v0) │
00:05:23 #17319 [Verbose] > │ and closure109 () () : UH0 = │
00:05:23 #17320 [Verbose] > │ let v0 : (unit -> UH0) = closure110() │
00:05:23 #17321 [Verbose] > │ UH0_0(11.664236870394992, v0) │
00:05:23 #17322 [Verbose] > │ and closure108 () () : UH0 = │
00:05:23 #17323 [Verbose] > │ let v0 : (unit -> UH0) = closure109() │
00:05:23 #17324 [Verbose] > │ UH0_0(11.664236870394637, v0) │
00:05:23 #17325 [Verbose] > │ and closure107 () () : UH0 = │
00:05:23 #17326 [Verbose] > │ let v0 : (unit -> UH0) = closure108() │
00:05:23 #17327 [Verbose] > │ UH0_0(11.664236870394168, v0) │
00:05:23 #17328 [Verbose] > │ and closure106 () () : UH0 = │
00:05:23 #17329 [Verbose] > │ let v0 : (unit -> UH0) = closure107() │
00:05:23 #17330 [Verbose] > │ UH0_0(11.664236870393546, v0) │
00:05:23 #17331 [Verbose] > │ and closure105 () () : UH0 = │
00:05:23 #17332 [Verbose] > │ let v0 : (unit -> UH0) = closure106() │
00:05:23 #17333 [Verbose] > │ UH0_0(11.664236870392722, v0) │
00:05:23 #17334 [Verbose] > │ and closure104 () () : UH0 = │
00:05:23 #17335 [Verbose] > │ let v0 : (unit -> UH0) = closure105() │
00:05:23 #17336 [Verbose] > │ UH0_0(11.664236870391631, v0) │
00:05:23 #17337 [Verbose] > │ and closure103 () () : UH0 = │
00:05:23 #17338 [Verbose] > │ let v0 : (unit -> UH0) = closure104() │
00:05:23 #17339 [Verbose] > │ UH0_0(11.664236870390187, v0) │
00:05:23 #17340 [Verbose] > │ and closure102 () () : UH0 = │
00:05:23 #17341 [Verbose] > │ let v0 : (unit -> UH0) = closure103() │
00:05:23 #17342 [Verbose] > │ UH0_0(11.664236870388274, v0) │
00:05:23 #17343 [Verbose] > │ and closure101 () () : UH0 = │
00:05:23 #17344 [Verbose] > │ let v0 : (unit -> UH0) = closure102() │
00:05:23 #17345 [Verbose] > │ UH0_0(11.66423687038574, v0) │
00:05:23 #17346 [Verbose] > │ and closure100 () () : UH0 = │
00:05:23 #17347 [Verbose] > │ let v0 : (unit -> UH0) = closure101() │
00:05:23 #17348 [Verbose] > │ UH0_0(11.664236870382384, v0) │
00:05:23 #17349 [Verbose] > │ and closure99 () () : UH0 = │
00:05:23 #17350 [Verbose] > │ let v0 : (unit -> UH0) = closure100() │
00:05:23 #17351 [Verbose] > │ UH0_0(11.664236870377938, v0) │
00:05:23 #17352 [Verbose] > │ and closure98 () () : UH0 = │
00:05:23 #17353 [Verbose] > │ let v0 : (unit -> UH0) = closure99() │
00:05:23 #17354 [Verbose] > │ UH0_0(11.66423687037205, v0) │
00:05:23 #17355 [Verbose] > │ and closure97 () () : UH0 = │
00:05:23 #17356 [Verbose] > │ let v0 : (unit -> UH0) = closure98() │
00:05:23 #17357 [Verbose] > │ UH0_0(11.664236870364254, v0) │
00:05:23 #17358 [Verbose] > │ and closure96 () () : UH0 = │
00:05:23 #17359 [Verbose] > │ let v0 : (unit -> UH0) = closure97() │
00:05:23 #17360 [Verbose] > │ UH0_0(11.664236870353927, v0) │
00:05:23 #17361 [Verbose] > │ and closure95 () () : UH0 = │
00:05:23 #17362 [Verbose] > │ let v0 : (unit -> UH0) = closure96() │
00:05:23 #17363 [Verbose] > │ UH0_0(11.664236870340249, v0) │
00:05:23 #17364 [Verbose] > │ and closure94 () () : UH0 = │
00:05:23 #17365 [Verbose] > │ let v0 : (unit -> UH0) = closure95() │
00:05:23 #17366 [Verbose] > │ UH0_0(11.664236870322135, v0) │
00:05:23 #17367 [Verbose] > │ and closure93 () () : UH0 = │
00:05:23 #17368 [Verbose] > │ let v0 : (unit -> UH0) = closure94() │
00:05:23 #17369 [Verbose] > │ UH0_0(11.664236870298145, v0) │
00:05:23 #17370 [Verbose] > │ and closure92 () () : UH0 = │
00:05:23 #17371 [Verbose] > │ let v0 : (unit -> UH0) = closure93() │
00:05:23 #17372 [Verbose] > │ UH0_0(11.664236870266372, v0) │
00:05:23 #17373 [Verbose] > │ and closure91 () () : UH0 = │
00:05:23 #17374 [Verbose] > │ let v0 : (unit -> UH0) = closure92() │
00:05:23 #17375 [Verbose] > │ UH0_0(11.664236870224292, v0) │
00:05:23 #17376 [Verbose] > │ and closure90 () () : UH0 = │
00:05:23 #17377 [Verbose] > │ let v0 : (unit -> UH0) = closure91() │
00:05:23 #17378 [Verbose] > │ UH0_0(11.66423687016856, v0) │
00:05:23 #17379 [Verbose] > │ and closure89 () () : UH0 = │
00:05:23 #17380 [Verbose] > │ let v0 : (unit -> UH0) = closure90() │
00:05:23 #17381 [Verbose] > │ UH0_0(11.664236870094747, v0) │
00:05:23 #17382 [Verbose] > │ and closure88 () () : UH0 = │
00:05:23 #17383 [Verbose] > │ let v0 : (unit -> UH0) = closure89() │
00:05:23 #17384 [Verbose] > │ UH0_0(11.664236869996989, v0) │
00:05:23 #17385 [Verbose] > │ and closure87 () () : UH0 = │
00:05:23 #17386 [Verbose] > │ let v0 : (unit -> UH0) = closure88() │
00:05:23 #17387 [Verbose] > │ UH0_0(11.664236869867516, v0) │
00:05:23 #17388 [Verbose] > │ and closure86 () () : UH0 = │
00:05:23 #17389 [Verbose] > │ let v0 : (unit -> UH0) = closure87() │
00:05:23 #17390 [Verbose] > │ UH0_0(11.66423686969604, v0) │
00:05:23 #17391 [Verbose] > │ and closure85 () () : UH0 = │
00:05:23 #17392 [Verbose] > │ let v0 : (unit -> UH0) = closure86() │
00:05:23 #17393 [Verbose] > │ UH0_0(11.664236869468937, v0) │
00:05:23 #17394 [Verbose] > │ and closure84 () () : UH0 = │
00:05:23 #17395 [Verbose] > │ let v0 : (unit -> UH0) = closure85() │
00:05:23 #17396 [Verbose] > │ UH0_0(11.664236869168157, v0) │
00:05:23 #17397 [Verbose] > │ and closure83 () () : UH0 = │
00:05:23 #17398 [Verbose] > │ let v0 : (unit -> UH0) = closure84() │
00:05:23 #17399 [Verbose] > │ UH0_0(11.6642368687698, v0) │
00:05:23 #17400 [Verbose] > │ and closure82 () () : UH0 = │
00:05:23 #17401 [Verbose] > │ let v0 : (unit -> UH0) = closure83() │
00:05:23 #17402 [Verbose] > │ UH0_0(11.664236868242211, v0) │
00:05:23 #17403 [Verbose] > │ and closure81 () () : UH0 = │
00:05:23 #17404 [Verbose] > │ let v0 : (unit -> UH0) = closure82() │
00:05:23 #17405 [Verbose] > │ UH0_0(11.664236867543465, v0) │
00:05:23 #17406 [Verbose] > │ and closure80 () () : UH0 = │
00:05:23 #17407 [Verbose] > │ let v0 : (unit -> UH0) = closure81() │
00:05:23 #17408 [Verbose] > │ UH0_0(11.664236866618037, v0) │
00:05:23 #17409 [Verbose] > │ and closure79 () () : UH0 = │
00:05:23 #17410 [Verbose] > │ let v0 : (unit -> UH0) = closure80() │
00:05:23 #17411 [Verbose] > │ UH0_0(11.664236865392386, v0) │
00:05:23 #17412 [Verbose] > │ and closure78 () () : UH0 = │
00:05:23 #17413 [Verbose] > │ let v0 : (unit -> UH0) = closure79() │
00:05:23 #17414 [Verbose] > │ UH0_0(11.664236863769117, v0) │
00:05:23 #17415 [Verbose] > │ and closure77 () () : UH0 = │
00:05:23 #17416 [Verbose] > │ let v0 : (unit -> UH0) = closure78() │
00:05:23 #17417 [Verbose] > │ UH0_0(11.664236861619237, v0) │
00:05:23 #17418 [Verbose] > │ and closure76 () () : UH0 = │
00:05:23 #17419 [Verbose] > │ let v0 : (unit -> UH0) = closure77() │
00:05:23 #17420 [Verbose] > │ UH0_0(11.664236858771906, v0) │
00:05:23 #17421 [Verbose] > │ and closure75 () () : UH0 = │
00:05:23 #17422 [Verbose] > │ let v0 : (unit -> UH0) = closure76() │
00:05:23 #17423 [Verbose] > │ UH0_0(11.66423685500086, v0) │
00:05:23 #17424 [Verbose] > │ and closure74 () () : UH0 = │
00:05:23 #17425 [Verbose] > │ let v0 : (unit -> UH0) = closure75() │
00:05:23 #17426 [Verbose] > │ UH0_0(11.664236850006436, v0) │
00:05:23 #17427 [Verbose] > │ and closure73 () () : UH0 = │
00:05:23 #17428 [Verbose] > │ let v0 : (unit -> UH0) = closure74() │
00:05:23 #17429 [Verbose] > │ UH0_0(11.664236843391752, v0) │
00:05:23 #17430 [Verbose] > │ and closure72 () () : UH0 = │
00:05:23 #17431 [Verbose] > │ let v0 : (unit -> UH0) = closure73() │
00:05:23 #17432 [Verbose] > │ UH0_0(11.664236834631172, v0) │
00:05:23 #17433 [Verbose] > │ and closure71 () () : UH0 = │
00:05:23 #17434 [Verbose] > │ let v0 : (unit -> UH0) = closure72() │
00:05:23 #17435 [Verbose] > │ UH0_0(11.66423682302854, v0) │
00:05:23 #17436 [Verbose] > │ and closure70 () () : UH0 = │
00:05:23 #17437 [Verbose] > │ let v0 : (unit -> UH0) = closure71() │
00:05:23 #17438 [Verbose] > │ UH0_0(11.664236807661855, v0) │
00:05:23 #17439 [Verbose] > │ and closure69 () () : UH0 = │
00:05:23 #17440 [Verbose] > │ let v0 : (unit -> UH0) = closure70() │
00:05:23 #17441 [Verbose] > │ UH0_0(11.664236787310005, v0) │
00:05:23 #17442 [Verbose] > │ and closure68 () () : UH0 = │
00:05:23 #17443 [Verbose] > │ let v0 : (unit -> UH0) = closure69() │
00:05:23 #17444 [Verbose] > │ UH0_0(11.664236760355733, v0) │
00:05:23 #17445 [Verbose] > │ and closure67 () () : UH0 = │
00:05:23 #17446 [Verbose] > │ let v0 : (unit -> UH0) = closure68() │
00:05:23 #17447 [Verbose] > │ UH0_0(11.664236724657123, v0) │
00:05:23 #17448 [Verbose] > │ and closure66 () () : UH0 = │
00:05:23 #17449 [Verbose] > │ let v0 : (unit -> UH0) = closure67() │
00:05:23 #17450 [Verbose] > │ UH0_0(11.66423667737739, v0) │
00:05:23 #17451 [Verbose] > │ and closure65 () () : UH0 = │
00:05:23 #17452 [Verbose] > │ let v0 : (unit -> UH0) = closure66() │
00:05:23 #17453 [Verbose] > │ UH0_0(11.664236614759462, v0) │
00:05:23 #17454 [Verbose] > │ and closure64 () () : UH0 = │
00:05:23 #17455 [Verbose] > │ let v0 : (unit -> UH0) = closure65() │
00:05:23 #17456 [Verbose] > │ UH0_0(11.664236531827415, v0) │
00:05:23 #17457 [Verbose] > │ and closure63 () () : UH0 = │
00:05:23 #17458 [Verbose] > │ let v0 : (unit -> UH0) = closure64() │
00:05:23 #17459 [Verbose] > │ UH0_0(11.664236421991067, v0) │
00:05:23 #17460 [Verbose] > │ and closure62 () () : UH0 = │
00:05:23 #17461 [Verbose] > │ let v0 : (unit -> UH0) = closure63() │
00:05:23 #17462 [Verbose] > │ UH0_0(11.664236276522294, v0) │
00:05:23 #17463 [Verbose] > │ and closure61 () () : UH0 = │
00:05:23 #17464 [Verbose] > │ let v0 : (unit -> UH0) = closure62() │
00:05:23 #17465 [Verbose] > │ UH0_0(11.664236083861448, v0) │
00:05:23 #17466 [Verbose] > │ and closure60 () () : UH0 = │
00:05:23 #17467 [Verbose] > │ let v0 : (unit -> UH0) = closure61() │
00:05:23 #17468 [Verbose] > │ UH0_0(11.664235828698772, v0) │
00:05:23 #17469 [Verbose] > │ and closure59 () () : UH0 = │
00:05:23 #17470 [Verbose] > │ let v0 : (unit -> UH0) = closure60() │
00:05:23 #17471 [Verbose] > │ UH0_0(11.664235490757811, v0) │
00:05:23 #17472 [Verbose] > │ and closure58 () () : UH0 = │
00:05:23 #17473 [Verbose] > │ let v0 : (unit -> UH0) = closure59() │
00:05:23 #17474 [Verbose] > │ UH0_0(11.664235043184158, v0) │
00:05:23 #17475 [Verbose] > │ and closure57 () () : UH0 = │
00:05:23 #17476 [Verbose] > │ let v0 : (unit -> UH0) = closure58() │
00:05:23 #17477 [Verbose] > │ UH0_0(11.66423445041147, v0) │
00:05:23 #17478 [Verbose] > │ and closure56 () () : UH0 = │
00:05:23 #17479 [Verbose] > │ let v0 : (unit -> UH0) = closure57() │
00:05:23 #17480 [Verbose] > │ UH0_0(11.664233665335203, v0) │
00:05:23 #17481 [Verbose] > │ and closure55 () () : UH0 = │
00:05:23 #17482 [Verbose] > │ let v0 : (unit -> UH0) = closure56() │
00:05:23 #17483 [Verbose] > │ UH0_0(11.664232625569467, v0) │
00:05:23 #17484 [Verbose] > │ and closure54 () () : UH0 = │
00:05:23 #17485 [Verbose] > │ let v0 : (unit -> UH0) = closure55() │
00:05:23 #17486 [Verbose] > │ UH0_0(11.664231248489562, v0) │
00:05:23 #17487 [Verbose] > │ and closure53 () () : UH0 = │
00:05:23 #17488 [Verbose] > │ let v0 : (unit -> UH0) = closure54() │
00:05:23 #17489 [Verbose] > │ UH0_0(11.664229424666262, v0) │
00:05:23 #17490 [Verbose] > │ and closure52 () () : UH0 = │
00:05:23 #17491 [Verbose] > │ let v0 : (unit -> UH0) = closure53() │
00:05:23 #17492 [Verbose] > │ UH0_0(11.66422700917009, v0) │
00:05:23 #17493 [Verbose] > │ and closure51 () () : UH0 = │
00:05:23 #17494 [Verbose] > │ let v0 : (unit -> UH0) = closure52() │
00:05:23 #17495 [Verbose] > │ UH0_0(11.664223810054642, v0) │
00:05:23 #17496 [Verbose] > │ and closure50 () () : UH0 = │
00:05:23 #17497 [Verbose] > │ let v0 : (unit -> UH0) = closure51() │
00:05:23 #17498 [Verbose] > │ UH0_0(11.664219573103773, v0) │
00:05:23 #17499 [Verbose] > │ and closure49 () () : UH0 = │
00:05:23 #17500 [Verbose] > │ let v0 : (unit -> UH0) = closure50() │
00:05:23 #17501 [Verbose] > │ UH0_0(11.6642139616307, v0) │
00:05:23 #17502 [Verbose] > │ and closure48 () () : UH0 = │
00:05:23 #17503 [Verbose] > │ let v0 : (unit -> UH0) = closure49() │
00:05:23 #17504 [Verbose] > │ UH0_0(11.664206529723813, v0) │
00:05:23 #17505 [Verbose] > │ and closure47 () () : UH0 = │
00:05:23 #17506 [Verbose] > │ let v0 : (unit -> UH0) = closure48() │
00:05:23 #17507 [Verbose] > │ UH0_0(11.664196686813408, v0) │
00:05:23 #17508 [Verbose] > │ and closure46 () () : UH0 = │
00:05:23 #17509 [Verbose] > │ let v0 : (unit -> UH0) = closure47() │
00:05:23 #17510 [Verbose] > │ UH0_0(11.664183650743945, v0) │
00:05:23 #17511 [Verbose] > │ and closure45 () () : UH0 = │
00:05:23 #17512 [Verbose] > │ let v0 : (unit -> UH0) = closure46() │
00:05:23 #17513 [Verbose] > │ UH0_0(11.664166385623318, v0) │
00:05:23 #17514 [Verbose] > │ and closure44 () () : UH0 = │
00:05:23 #17515 [Verbose] > │ let v0 : (unit -> UH0) = closure45() │
00:05:23 #17516 [Verbose] > │ UH0_0(11.664143519511356, v0) │
00:05:23 #17517 [Verbose] > │ and closure43 () () : UH0 = │
00:05:23 #17518 [Verbose] > │ let v0 : (unit -> UH0) = closure44() │
00:05:23 #17519 [Verbose] > │ UH0_0(11.664113235408447, v0) │
00:05:23 #17520 [Verbose] > │ and closure42 () () : UH0 = │
00:05:23 #17521 [Verbose] > │ let v0 : (unit -> UH0) = closure43() │
00:05:23 #17522 [Verbose] > │ UH0_0(11.66407312688485, v0) │
00:05:23 #17523 [Verbose] > │ and closure41 () () : UH0 = │
00:05:23 #17524 [Verbose] > │ let v0 : (unit -> UH0) = closure42() │
00:05:23 #17525 [Verbose] > │ UH0_0(11.664020006883758, v0) │
00:05:23 #17526 [Verbose] > │ and closure40 () () : UH0 = │
00:05:23 #17527 [Verbose] > │ let v0 : (unit -> UH0) = closure41() │
00:05:23 #17528 [Verbose] > │ UH0_0(11.663949654514292, v0) │
00:05:23 #17529 [Verbose] > │ and closure39 () () : UH0 = │
00:05:23 #17530 [Verbose] > │ let v0 : (unit -> UH0) = closure40() │
00:05:23 #17531 [Verbose] > │ UH0_0(11.663856479730171, v0) │
00:05:23 #17532 [Verbose] > │ and closure38 () () : UH0 = │
00:05:23 #17533 [Verbose] > │ let v0 : (unit -> UH0) = closure39() │
00:05:23 #17534 [Verbose] > │ UH0_0(11.663733079277343, v0) │
00:05:23 #17535 [Verbose] > │ and closure37 () () : UH0 = │
00:05:23 #17536 [Verbose] > │ let v0 : (unit -> UH0) = closure38() │
00:05:23 #17537 [Verbose] > │ UH0_0(11.663569648675777, v0) │
00:05:23 #17538 [Verbose] > │ and closure36 () () : UH0 = │
00:05:23 #17539 [Verbose] > │ let v0 : (unit -> UH0) = closure37() │
00:05:23 #17540 [Verbose] > │ UH0_0(11.663353203599439, v0) │
00:05:23 #17541 [Verbose] > │ and closure35 () () : UH0 = │
00:05:23 #17542 [Verbose] > │ let v0 : (unit -> UH0) = closure36() │
00:05:23 #17543 [Verbose] > │ UH0_0(11.663066548940721, v0) │
00:05:23 #17544 [Verbose] > │ and closure34 () () : UH0 = │
00:05:23 #17545 [Verbose] > │ let v0 : (unit -> UH0) = closure35() │
00:05:23 #17546 [Verbose] > │ UH0_0(11.662686913915445, v0) │
00:05:23 #17547 [Verbose] > │ and closure33 () () : UH0 = │
00:05:23 #17548 [Verbose] > │ let v0 : (unit -> UH0) = closure34() │
00:05:23 #17549 [Verbose] > │ UH0_0(11.662184145236864, v0) │
00:05:23 #17550 [Verbose] > │ and closure32 () () : UH0 = │
00:05:23 #17551 [Verbose] > │ let v0 : (unit -> UH0) = closure33() │
00:05:23 #17552 [Verbose] > │ UH0_0(11.661518315638029, v0) │
00:05:23 #17553 [Verbose] > │ and closure31 () () : UH0 = │
00:05:23 #17554 [Verbose] > │ let v0 : (unit -> UH0) = closure32() │
00:05:23 #17555 [Verbose] > │ UH0_0(11.66063655920926, v0) │
00:05:23 #17556 [Verbose] > │ and closure30 () () : UH0 = │
00:05:23 #17557 [Verbose] > │ let v0 : (unit -> UH0) = closure31() │
00:05:23 #17558 [Verbose] > │ UH0_0(11.659468884709733, v0) │
00:05:23 #17559 [Verbose] > │ and closure29 () () : UH0 = │
00:05:23 #17560 [Verbose] > │ let v0 : (unit -> UH0) = closure30() │
00:05:23 #17561 [Verbose] > │ UH0_0(11.657922638782631, v0) │
00:05:23 #17562 [Verbose] > │ and closure28 () () : UH0 = │
00:05:23 #17563 [Verbose] > │ let v0 : (unit -> UH0) = closure29() │
00:05:23 #17564 [Verbose] > │ UH0_0(11.655875187195818, v0) │
00:05:23 #17565 [Verbose] > │ and closure27 () () : UH0 = │
00:05:23 #17566 [Verbose] > │ let v0 : (unit -> UH0) = closure28() │
00:05:23 #17567 [Verbose] > │ UH0_0(11.653164246713697, v0) │
00:05:23 #17568 [Verbose] > │ and closure26 () () : UH0 = │
00:05:23 #17569 [Verbose] > │ let v0 : (unit -> UH0) = closure27() │
00:05:23 #17570 [Verbose] > │ UH0_0(11.64957512416459, v0) │
00:05:23 #17571 [Verbose] > │ and closure25 () () : UH0 = │
00:05:23 #17572 [Verbose] > │ let v0 : (unit -> UH0) = closure26() │
00:05:23 #17573 [Verbose] > │ UH0_0(11.644823892116417, v0) │
00:05:23 #17574 [Verbose] > │ and closure24 () () : UH0 = │
00:05:23 #17575 [Verbose] > │ let v0 : (unit -> UH0) = closure25() │
00:05:23 #17576 [Verbose] > │ UH0_0(11.63853524018339, v0) │
00:05:23 #17577 [Verbose] > │ and closure23 () () : UH0 = │
00:05:23 #17578 [Verbose] > │ let v0 : (unit -> UH0) = closure24() │
00:05:23 #17579 [Verbose] > │ UH0_0(11.630213374558416, v0) │
00:05:23 #17580 [Verbose] > │ and closure22 () () : UH0 = │
00:05:23 #17581 [Verbose] > │ let v0 : (unit -> UH0) = closure23() │
00:05:23 #17582 [Verbose] > │ UH0_0(11.619203884549703, v0) │
00:05:23 #17583 [Verbose] > │ and closure21 () () : UH0 = │
00:05:23 #17584 [Verbose] > │ let v0 : (unit -> UH0) = closure22() │
00:05:23 #17585 [Verbose] > │ UH0_0(11.604643948207235, v0) │
00:05:23 #17586 [Verbose] > │ and closure20 () () : UH0 = │
00:05:23 #17587 [Verbose] > │ let v0 : (unit -> UH0) = closure21() │
00:05:23 #17588 [Verbose] > │ UH0_0(11.585397618384544, v0) │
00:05:23 #17589 [Verbose] > │ and closure19 () () : UH0 = │
00:05:23 #17590 [Verbose] > │ let v0 : (unit -> UH0) = closure20() │
00:05:23 #17591 [Verbose] > │ UH0_0(11.559972254267073, v0) │
00:05:23 #17592 [Verbose] > │ and closure18 () () : UH0 = │
00:05:23 #17593 [Verbose] > │ let v0 : (unit -> UH0) = closure19() │
00:05:23 #17594 [Verbose] > │ UH0_0(11.526411536153837, v0) │
00:05:23 #17595 [Verbose] > │ and closure17 () () : UH0 = │
00:05:23 #17596 [Verbose] > │ let v0 : (unit -> UH0) = closure18() │
00:05:23 #17597 [Verbose] > │ UH0_0(11.48216011776808, v0) │
00:05:23 #17598 [Verbose] > │ and closure16 () () : UH0 = │
00:05:23 #17599 [Verbose] > │ let v0 : (unit -> UH0) = closure17() │
00:05:23 #17600 [Verbose] > │ UH0_0(11.42389519391233, v0) │
00:05:23 #17601 [Verbose] > │ and closure15 () () : UH0 = │
00:05:23 #17602 [Verbose] > │ let v0 : (unit -> UH0) = closure16() │
00:05:23 #17603 [Verbose] > │ UH0_0(11.347321723441393, v0) │
00:05:23 #17604 [Verbose] > │ and closure14 () () : UH0 = │
00:05:23 #17605 [Verbose] > │ let v0 : (unit -> UH0) = closure15() │
00:05:23 #17606 [Verbose] > │ UH0_0(11.246931775734161, v0) │
00:05:23 #17607 [Verbose] > │ and closure13 () () : UH0 = │
00:05:23 #17608 [Verbose] > │ let v0 : (unit -> UH0) = closure14() │
00:05:23 #17609 [Verbose] > │ UH0_0(11.115736011467376, v0) │
00:05:23 #17610 [Verbose] > │ and closure12 () () : UH0 = │
00:05:23 #17611 [Verbose] > │ let v0 : (unit -> UH0) = closure13() │
00:05:23 #17612 [Verbose] > │ UH0_0(10.94498876251829, v0) │
00:05:23 #17613 [Verbose] > │ and closure11 () () : UH0 = │
00:05:23 #17614 [Verbose] > │ let v0 : (unit -> UH0) = closure12() │
00:05:23 #17615 [Verbose] > │ UH0_0(10.72394989903564, v0) │
00:05:23 #17616 [Verbose] > │ and closure10 () () : UH0 = │
00:05:23 #17617 [Verbose] > │ let v0 : (unit -> UH0) = closure11() │
00:05:23 #17618 [Verbose] > │ UH0_0(10.439758275369812, v0) │
00:05:23 #17619 [Verbose] > │ and closure9 () () : UH0 = │
00:05:23 #17620 [Verbose] > │ let v0 : (unit -> UH0) = closure10() │
00:05:23 #17621 [Verbose] > │ UH0_0(10.077531599826058, v0) │
00:05:23 #17622 [Verbose] > │ and closure8 () () : UH0 = │
00:05:23 #17623 [Verbose] > │ let v0 : (unit -> UH0) = closure9() │
00:05:23 #17624 [Verbose] > │ UH0_0(9.62084761372258, v0) │
00:05:23 #17625 [Verbose] > │ and closure7 () () : UH0 = │
00:05:23 #17626 [Verbose] > │ let v0 : (unit -> UH0) = closure8() │
00:05:23 #17627 [Verbose] > │ UH0_0(9.052781056066443, v0) │
00:05:23 #17628 [Verbose] > │ and closure6 () () : UH0 = │
00:05:23 #17629 [Verbose] > │ let v0 : (unit -> UH0) = closure7() │
00:05:23 #17630 [Verbose] > │ UH0_0(8.357635347880503, v0) │
00:05:23 #17631 [Verbose] > │ and closure5 () () : UH0 = │
00:05:23 #17632 [Verbose] > │ let v0 : (unit -> UH0) = closure6() │
00:05:23 #17633 [Verbose] > │ UH0_0(7.523376447621674, v0) │
00:05:23 #17634 [Verbose] > │ and closure4 () () : UH0 = │
00:05:23 #17635 [Verbose] > │ let v0 : (unit -> UH0) = closure5() │
00:05:23 #17636 [Verbose] > │ UH0_0(6.544529054818572, v0) │
00:05:23 #17637 [Verbose] > │ and closure3 () () : UH0 = │
00:05:23 #17638 [Verbose] > │ let v0 : (unit -> UH0) = closure4() │
00:05:23 #17639 [Verbose] > │ UH0_0(5.424976512996006, v0) │
00:05:23 #17640 [Verbose] > │ and closure2 () () : UH0 = │
00:05:23 #17641 [Verbose] > │ let v0 : (unit -> UH0) = closure3() │
00:05:23 #17642 [Verbose] > │ UH0_0(4.179852321428571, v0) │
00:05:23 #17643 [Verbose] > │ and closure1 () () : UH0 = │
00:05:23 #17644 [Verbose] > │ let v0 : (unit -> UH0) = closure2() │
00:05:23 #17645 [Verbose] > │ UH0_0(2.835714285714286, v0) │
00:05:23 #17646 [Verbose] > │ and closure0 () () : UH0 = │
00:05:23 #17647 [Verbose] > │ let v0 : (unit -> UH0) = closure1() │
00:05:23 #17648 [Verbose] > │ UH0_0(1.4285714285714286, v0) │
00:05:23 #17649 [Verbose] > │ and method3 (v0 : float, v1 : UH0) : US0 = │
00:05:23 #17650 [Verbose] > │ match v1 with │
00:05:23 #17651 [Verbose] > │ | UH0_0(v2, v3) -> (* StreamCons *) │
00:05:23 #17652 [Verbose] > │ let v4 : bool = v0 <= 0.0 │
00:05:23 #17653 [Verbose] > │ if v4 then │
00:05:23 #17654 [Verbose] > │ US0_1(v2) │
00:05:23 #17655 [Verbose] > │ else │
00:05:23 #17656 [Verbose] > │ let v6 : float = v0 - 1.0 │
00:05:23 #17657 [Verbose] > │ let v7 : UH0 = v3 () │
00:05:23 #17658 [Verbose] > │ method3(v6, v7) │
00:05:23 #17659 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:23 #17660 [Verbose] > │ US0_0 │
00:05:23 #17661 [Verbose] > │ and method4 (v0 : (struct (string * (float []) * (float [])) [])) : (struct │
00:05:23 #17662 [Verbose] > │ (string * (float []) * (float [])) []) = │
00:05:23 #17663 [Verbose] > │ v0 │
00:05:23 #17664 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:05:23 #17665 [Verbose] > │ []) * (float [])) [])) = │
00:05:23 #17666 [Verbose] > │ let v0 : (float []) = Array.zeroCreate<float> (121) │
00:05:23 #17667 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:05:23 #17668 [Verbose] > │ while method1(v1) do │
00:05:23 #17669 [Verbose] > │ let v3 : int32 = v1.l0 │
00:05:23 #17670 [Verbose] > │ let v4 : float = float v3 │
00:05:23 #17671 [Verbose] > │ let v5 : float = 0.5 * v4 │
00:05:23 #17672 [Verbose] > │ v0.[int v3] <- v5 │
00:05:23 #17673 [Verbose] > │ let v6 : int32 = v3 + 1 │
00:05:23 #17674 [Verbose] > │ v1.l0 <- v6 │
00:05:23 #17675 [Verbose] > │ () │
00:05:23 #17676 [Verbose] > │ let v7 : int32 = v0.Length │
00:05:23 #17677 [Verbose] > │ let v8 : (float []) = Array.zeroCreate<float> (v7) │
00:05:23 #17678 [Verbose] > │ let v9 : Mut0 = {l0 = 0} : Mut0 │
00:05:23 #17679 [Verbose] > │ while method2(v7, v9) do │
00:05:23 #17680 [Verbose] > │ let v11 : int32 = v9.l0 │
00:05:23 #17681 [Verbose] > │ let v12 : float = v0.[int v11] │
00:05:23 #17682 [Verbose] > │ let v13 : float = round v12 │
00:05:23 #17683 [Verbose] > │ let v14 : float = -v13 │
00:05:23 #17684 [Verbose] > │ let v15 : bool = v13 >= v14 │
00:05:24 #17685 [Verbose] > │ let v16 : float = │
00:05:24 #17686 [Verbose] > │ if v15 then │
00:05:24 #17687 [Verbose] > │ v13 │
00:05:24 #17688 [Verbose] > │ else │
00:05:24 #17689 [Verbose] > │ v14 │
00:05:24 #17690 [Verbose] > │ let v17 : float = 0.0 │
00:05:24 #17691 [Verbose] > │ let v18 : (unit -> UH0) = closure0() │
00:05:24 #17692 [Verbose] > │ let v19 : UH0 = UH0_0(v17, v18) │
00:05:24 #17693 [Verbose] > │ let v20 : US0 = method3(v16, v19) │
00:05:24 #17694 [Verbose] > │ let v23 : float = │
00:05:24 #17695 [Verbose] > │ match v20 with │
00:05:24 #17696 [Verbose] > │ | US0_0 -> (* None *) │
00:05:24 #17697 [Verbose] > │ 0.0 │
00:05:24 #17698 [Verbose] > │ | US0_1(v21) -> (* Some *) │
00:05:24 #17699 [Verbose] > │ v21 │
00:05:24 #17700 [Verbose] > │ v8.[int v11] <- v23 │
00:05:24 #17701 [Verbose] > │ let v24 : int32 = v11 + 1 │
00:05:24 #17702 [Verbose] > │ v9.l0 <- v24 │
00:05:24 #17703 [Verbose] > │ () │
00:05:24 #17704 [Verbose] > │ let v25 : string = "velocity of bike (m/s)" │
00:05:24 #17705 [Verbose] > │ let v26 : (struct (string * (float []) * (float [])) []) = [|struct │
00:05:24 #17706 [Verbose] > │ (v25, v0, v8)|] │
00:05:24 #17707 [Verbose] > │ let v27 : (struct (string * (float []) * (float [])) []) = method4(v26) │
00:05:24 #17708 [Verbose] > │ let v28 : string = "bike velocity" │
00:05:24 #17709 [Verbose] > │ let v29 : string = "time (s)" │
00:05:24 #17710 [Verbose] > │ let v30 : string = "" │
00:05:24 #17711 [Verbose] > │ struct (v28, v29, v30, v27) │
00:05:24 #17712 [Verbose] > │ method0() │
00:05:24 #17713 [Verbose] > │ │
00:05:24 #17714 [Verbose] > │ │
00:05:24 #17715 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:24 #17716 [Verbose] >
00:05:24 #17717 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:24 #17718 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:24 #17719 [Verbose] > │ ## velocity_ftv │
00:05:24 #17720 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:24 #17721 [Verbose] >
00:05:24 #17722 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:24 #17723 [Verbose] > inl newton_second_tv m fs (t, v0) =
00:05:24 #17724 [Verbose] > inl f_net = fs |> listm.map (fun f => f (t, v0)) |> listm'.sum
00:05:24 #17725 [Verbose] > inl acc = f_net / m
00:05:24 #17726 [Verbose] > 1, acc
00:05:24 #17727 [Verbose] >
00:05:24 #17728 [Verbose] > inl update_tv dt m fs (t, v0) =
00:05:24 #17729 [Verbose] > inl dtdt, dvdt = newton_second_tv m fs (t, v0)
00:05:24 #17730 [Verbose] > t + dtdt * dt, v0 + dvdt * dt
00:05:24 #17731 [Verbose] >
00:05:24 #17732 [Verbose] > inl velocity_ftv dt m tv0 fs t =
00:05:24 #17733 [Verbose] > stream.iterate (join update_tv dt m fs) tv0
00:05:24 #17734 [Verbose] > |> stream.try_item (t / dt |> math.round |> abs)
00:05:24 #17735 [Verbose] > |> optionm.map snd
00:05:24 #17736 [Verbose] > |> optionm'.default_value 0
00:05:24 #17737 [Verbose] >
00:05:24 #17738 [Verbose] > ╭─[ 271.95ms - stdout ]────────────────────────────────────────────────────────╮
00:05:24 #17739 [Verbose] > │ () │
00:05:24 #17740 [Verbose] > │ │
00:05:24 #17741 [Verbose] > │ │
00:05:24 #17742 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:24 #17743 [Verbose] >
00:05:24 #17744 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:24 #17745 [Verbose] > // // test
00:05:24 #17746 [Verbose] >
00:05:24 #17747 [Verbose] > inl x = am'.init_series 0 100 0.1
00:05:24 #17748 [Verbose] > inl y =
00:05:24 #17749 [Verbose] > x
00:05:24 #17750 [Verbose] > |> am.map (
00:05:24 #17751 [Verbose] > velocity_ftv 0.1 20 (dyn (0, 0)) [[ fun (t, _) => pedal_coast t; fun (_,
00:05:24 #17752 [Verbose] > v) => f_air 2 1.225 0.5 v ]]
00:05:24 #17753 [Verbose] > )
00:05:24 #17754 [Verbose] > "pedaling and coasting with air", "time (s)", "", ;[[ "velocity of bike (m/s)",
00:05:24 #17755 [Verbose] > x, y ]]
00:05:24 #17756 [Verbose] >
00:05:24 #17757 [Verbose] > ╭─[ 502.68ms - return value ]──────────────────────────────────────────────────╮
00:05:24 #17758 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:05:24 #17759 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:05:24 #17760 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:05:24 #17761 [Verbose] > │ stroke="none"/> │
00:05:24 #17762 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:05:24 #17763 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:05:24 #17764 [Verbose] > │ fill="#FFFFFF"> │
00:05:24 #17765 [Verbose] > │ pedaling and coasting with air │
00:05:24 #17766 [Verbose] > │ </text> │
00:05:24 #17767 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" y1="424" x2="59" │
00:05:24 #17768 [Verbose] > │ y2="75"/> │
00:05:24 #17769 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:05:24 #17770 [Verbose] > │ y2="75"/> │
00:05:24 #17771 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" y1="424" x2="79" │
00:05:24 #17772 [Verbose] > │ y2="75"/> │
00:05:24 #17773 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" y1="424" x2="89" │
00:05:24 #17774 [Verbose] > │ y2="75"/> │
00:05:24 #17775 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x... │
00:05:24 #17776 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:24 #17777 [Verbose] >
00:05:24 #17778 [Verbose] > ╭─[ 518.80ms - stdout ]────────────────────────────────────────────────────────╮
00:05:24 #17779 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:05:24 #17780 [Verbose] > │ and UH0 = │
00:05:24 #17781 [Verbose] > │ | UH0_0 of float * float * (unit -> UH0) │
00:05:24 #17782 [Verbose] > │ | UH0_1 │
00:05:24 #17783 [Verbose] > │ and [<Struct>] US0 = │
00:05:24 #17784 [Verbose] > │ | US0_0 │
00:05:24 #17785 [Verbose] > │ | US0_1 of f1_0 : float * f1_1 : float │
00:05:24 #17786 [Verbose] > │ and [<Struct>] US1 = │
00:05:24 #17787 [Verbose] > │ | US1_0 │
00:05:24 #17788 [Verbose] > │ | US1_1 of f1_0 : float │
00:05:24 #17789 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:05:24 #17790 [Verbose] > │ let v1 : int32 = v0.l0 │
00:05:24 #17791 [Verbose] > │ let v2 : bool = v1 < 1001 │
00:05:24 #17792 [Verbose] > │ v2 │
00:05:24 #17793 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool = │
00:05:24 #17794 [Verbose] > │ let v2 : int32 = v1.l0 │
00:05:24 #17795 [Verbose] > │ let v3 : bool = v2 < v0 │
00:05:24 #17796 [Verbose] > │ v3 │
00:05:24 #17797 [Verbose] > │ and closure0 () struct (v0 : float, v1 : float) : struct (float * float) = │
00:05:24 #17798 [Verbose] > │ let v2 : float = -v1 │
00:05:24 #17799 [Verbose] > │ let v3 : bool = v1 >= v2 │
00:05:24 #17800 [Verbose] > │ let v4 : float = │
00:05:24 #17801 [Verbose] > │ if v3 then │
00:05:24 #17802 [Verbose] > │ v1 │
00:05:24 #17803 [Verbose] > │ else │
00:05:24 #17804 [Verbose] > │ v2 │
00:05:24 #17805 [Verbose] > │ let v5 : float = -1.225 * v4 │
00:05:24 #17806 [Verbose] > │ let v6 : float = v5 * v1 │
00:05:24 #17807 [Verbose] > │ let v7 : float = v6 / 2.0 │
00:05:24 #17808 [Verbose] > │ let v8 : float = v0 / 20.0 │
00:05:24 #17809 [Verbose] > │ let v9 : int32 = int32 v8 │
00:05:24 #17810 [Verbose] > │ let v10 : float = float v9 │
00:05:24 #17811 [Verbose] > │ let v11 : float = v10 * 20.0 │
00:05:24 #17812 [Verbose] > │ let v12 : float = v0 - v11 │
00:05:24 #17813 [Verbose] > │ let v13 : bool = v12 > 0.0 │
00:05:24 #17814 [Verbose] > │ let v15 : bool = │
00:05:24 #17815 [Verbose] > │ if v13 then │
00:05:24 #17816 [Verbose] > │ let v14 : bool = v12 < 10.0 │
00:05:24 #17817 [Verbose] > │ v14 │
00:05:24 #17818 [Verbose] > │ else │
00:05:24 #17819 [Verbose] > │ false │
00:05:24 #17820 [Verbose] > │ let v16 : float = │
00:05:24 #17821 [Verbose] > │ if v15 then │
00:05:24 #17822 [Verbose] > │ 10.0 │
00:05:24 #17823 [Verbose] > │ else │
00:05:24 #17824 [Verbose] > │ 0.0 │
00:05:24 #17825 [Verbose] > │ let v17 : float = v16 + v7 │
00:05:24 #17826 [Verbose] > │ let v18 : float = v17 / 20.0 │
00:05:24 #17827 [Verbose] > │ let v19 : float = v0 + 0.1 │
00:05:24 #17828 [Verbose] > │ let v20 : float = v18 * 0.1 │
00:05:24 #17829 [Verbose] > │ let v21 : float = v1 + v20 │
00:05:24 #17830 [Verbose] > │ struct (v19, v21) │
00:05:24 #17831 [Verbose] > │ and method3 () : (struct (float * float) -> struct (float * float)) = │
00:05:24 #17832 [Verbose] > │ closure0() │
00:05:24 #17833 [Verbose] > │ and closure1 (v0 : (struct (float * float) -> struct (float * float)), v1 : │
00:05:24 #17834 [Verbose] > │ float, v2 : float, v3 : float, v4 : float) () : UH0 = │
00:05:24 #17835 [Verbose] > │ let struct (v5 : float, v6 : float) = v0 struct (v3, v4) │
00:05:24 #17836 [Verbose] > │ let v7 : (unit -> UH0) = closure1(v0, v1, v2, v5, v6) │
00:05:24 #17837 [Verbose] > │ UH0_0(v3, v4, v7) │
00:05:24 #17838 [Verbose] > │ and method4 (v0 : float, v1 : UH0) : US0 = │
00:05:24 #17839 [Verbose] > │ match v1 with │
00:05:24 #17840 [Verbose] > │ | UH0_0(v2, v3, v4) -> (* StreamCons *) │
00:05:24 #17841 [Verbose] > │ let v5 : bool = v0 <= 0.0 │
00:05:24 #17842 [Verbose] > │ if v5 then │
00:05:24 #17843 [Verbose] > │ US0_1(v2, v3) │
00:05:24 #17844 [Verbose] > │ else │
00:05:24 #17845 [Verbose] > │ let v7 : float = v0 - 1.0 │
00:05:24 #17846 [Verbose] > │ let v8 : UH0 = v4 () │
00:05:24 #17847 [Verbose] > │ method4(v7, v8) │
00:05:24 #17848 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:24 #17849 [Verbose] > │ US0_0 │
00:05:24 #17850 [Verbose] > │ and method5 (v0 : (struct (string * (float []) * (float [])) [])) : (struct │
00:05:24 #17851 [Verbose] > │ (string * (float []) * (float [])) []) = │
00:05:24 #17852 [Verbose] > │ v0 │
00:05:24 #17853 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:05:24 #17854 [Verbose] > │ []) * (float [])) [])) = │
00:05:24 #17855 [Verbose] > │ let v0 : (float []) = Array.zeroCreate<float> (1001) │
00:05:24 #17856 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:05:24 #17857 [Verbose] > │ while method1(v1) do │
00:05:24 #17858 [Verbose] > │ let v3 : int32 = v1.l0 │
00:05:24 #17859 [Verbose] > │ let v4 : float = float v3 │
00:05:24 #17860 [Verbose] > │ let v5 : float = 0.1 * v4 │
00:05:24 #17861 [Verbose] > │ v0.[int v3] <- v5 │
00:05:24 #17862 [Verbose] > │ let v6 : int32 = v3 + 1 │
00:05:24 #17863 [Verbose] > │ v1.l0 <- v6 │
00:05:24 #17864 [Verbose] > │ () │
00:05:24 #17865 [Verbose] > │ let v7 : float = 0.0 │
00:05:24 #17866 [Verbose] > │ let v8 : float = 0.0 │
00:05:24 #17867 [Verbose] > │ let v9 : int32 = v0.Length │
00:05:24 #17868 [Verbose] > │ let v10 : (float []) = Array.zeroCreate<float> (v9) │
00:05:24 #17869 [Verbose] > │ let v11 : Mut0 = {l0 = 0} : Mut0 │
00:05:24 #17870 [Verbose] > │ while method2(v9, v11) do │
00:05:24 #17871 [Verbose] > │ let v13 : int32 = v11.l0 │
00:05:24 #17872 [Verbose] > │ let v14 : float = v0.[int v13] │
00:05:24 #17873 [Verbose] > │ let v15 : (struct (float * float) -> struct (float * float)) = │
00:05:24 #17874 [Verbose] > │ method3() │
00:05:24 #17875 [Verbose] > │ let struct (v16 : float, v17 : float) = v15 struct (v7, v8) │
00:05:24 #17876 [Verbose] > │ let v18 : float = v14 / 0.1 │
00:05:24 #17877 [Verbose] > │ let v19 : float = round v18 │
00:05:24 #17878 [Verbose] > │ let v20 : float = -v19 │
00:05:24 #17879 [Verbose] > │ let v21 : bool = v19 >= v20 │
00:05:24 #17880 [Verbose] > │ let v22 : float = │
00:05:24 #17881 [Verbose] > │ if v21 then │
00:05:24 #17882 [Verbose] > │ v19 │
00:05:24 #17883 [Verbose] > │ else │
00:05:24 #17884 [Verbose] > │ v20 │
00:05:24 #17885 [Verbose] > │ let v23 : (unit -> UH0) = closure1(v15, v7, v8, v16, v17) │
00:05:24 #17886 [Verbose] > │ let v24 : UH0 = UH0_0(v7, v8, v23) │
00:05:24 #17887 [Verbose] > │ let v25 : US0 = method4(v22, v24) │
00:05:24 #17888 [Verbose] > │ let v31 : US1 = │
00:05:24 #17889 [Verbose] > │ match v25 with │
00:05:24 #17890 [Verbose] > │ | US0_0 -> (* None *) │
00:05:24 #17891 [Verbose] > │ US1_0 │
00:05:24 #17892 [Verbose] > │ | US0_1(v26, v27) -> (* Some *) │
00:05:24 #17893 [Verbose] > │ US1_1(v27) │
00:05:24 #17894 [Verbose] > │ let v34 : float = │
00:05:24 #17895 [Verbose] > │ match v31 with │
00:05:24 #17896 [Verbose] > │ | US1_0 -> (* None *) │
00:05:24 #17897 [Verbose] > │ 0.0 │
00:05:24 #17898 [Verbose] > │ | US1_1(v32) -> (* Some *) │
00:05:24 #17899 [Verbose] > │ v32 │
00:05:24 #17900 [Verbose] > │ v10.[int v13] <- v34 │
00:05:24 #17901 [Verbose] > │ let v35 : int32 = v13 + 1 │
00:05:24 #17902 [Verbose] > │ v11.l0 <- v35 │
00:05:24 #17903 [Verbose] > │ () │
00:05:24 #17904 [Verbose] > │ let v36 : string = "velocity of bike (m/s)" │
00:05:24 #17905 [Verbose] > │ let v37 : (struct (string * (float []) * (float [])) []) = [|struct │
00:05:24 #17906 [Verbose] > │ (v36, v0, v10)|] │
00:05:24 #17907 [Verbose] > │ let v38 : (struct (string * (float []) * (float [])) []) = method5(v37) │
00:05:24 #17908 [Verbose] > │ let v39 : string = "pedaling and coasting with air" │
00:05:24 #17909 [Verbose] > │ let v40 : string = "time (s)" │
00:05:24 #17910 [Verbose] > │ let v41 : string = "" │
00:05:24 #17911 [Verbose] > │ struct (v39, v40, v41, v38) │
00:05:24 #17912 [Verbose] > │ method0() │
00:05:24 #17913 [Verbose] > │ │
00:05:24 #17914 [Verbose] > │ │
00:05:24 #17915 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:24 #17916 [Verbose] >
00:05:24 #17917 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:24 #17918 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:24 #17919 [Verbose] > │ ## velocity_ftxv │
00:05:24 #17920 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:24 #17921 [Verbose] >
00:05:24 #17922 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:24 #17923 [Verbose] > nominal state_1d = time * position * velocity
00:05:24 #17924 [Verbose] > nominal rrr = f64 * f64 * f64
00:05:24 #17925 [Verbose] >
00:05:24 #17926 [Verbose] > inl newton_second_1d m fs (state_1d (t, x0, v0)) =
00:05:24 #17927 [Verbose] > inl f_net = fs |> listm.map (fun f => f (state_1d (t, x0, v0))) |>
00:05:24 #17928 [Verbose] > listm'.sum
00:05:24 #17929 [Verbose] > inl acc = f_net / m
00:05:24 #17930 [Verbose] > rrr (1f64, v0, acc)
00:05:24 #17931 [Verbose] >
00:05:24 #17932 [Verbose] > inl euler_1d dt deriv (state_1d (t0, x0, v0) as t) =
00:05:24 #17933 [Verbose] > inl (rrr (_, _, dvdt)) = deriv t
00:05:24 #17934 [Verbose] > inl t1 = t0 + dt
00:05:24 #17935 [Verbose] > inl x1 = x0 + v0 * dt
00:05:24 #17936 [Verbose] > inl v1 = v0 + dvdt * dt
00:05:24 #17937 [Verbose] > state_1d (t1, x1, v1)
00:05:24 #17938 [Verbose] >
00:05:24 #17939 [Verbose] > inl update_txv dt m fs =
00:05:24 #17940 [Verbose] > newton_second_1d m fs |> euler_1d dt
00:05:24 #17941 [Verbose] >
00:05:24 #17942 [Verbose] > inl states_txv dt m txv0 fs =
00:05:24 #17943 [Verbose] > seq.iterate_ (update_txv dt m fs) txv0
00:05:24 #17944 [Verbose] >
00:05:24 #17945 [Verbose] > inl velocity_1d sts t =
00:05:24 #17946 [Verbose] > inl (state_1d (t0, _, _)) = sts 0
00:05:24 #17947 [Verbose] > inl (state_1d (t1, _, _)) = sts 1
00:05:24 #17948 [Verbose] > inl dt = t1 - t0
00:05:24 #17949 [Verbose] > inl num_steps = t / dt |> math.round |> abs
00:05:24 #17950 [Verbose] > inl (state_1d (_, _, v0)) = sts num_steps
00:05:24 #17951 [Verbose] > v0
00:05:24 #17952 [Verbose] >
00:05:24 #17953 [Verbose] > inl velocity_ftxv dt m txv0 fs =
00:05:24 #17954 [Verbose] > states_txv dt m txv0 fs |> velocity_1d
00:05:24 #17955 [Verbose] >
00:05:24 #17956 [Verbose] > inl position_1d sts t =
00:05:24 #17957 [Verbose] > inl (state_1d (t0, _, _)) = sts 0
00:05:24 #17958 [Verbose] > inl (state_1d (t1, _, _)) = sts 1
00:05:24 #17959 [Verbose] > inl dt = t1 - t0
00:05:24 #17960 [Verbose] > inl num_steps = t / dt |> math.round |> abs
00:05:24 #17961 [Verbose] > inl (state_1d (_, x0, _)) = sts num_steps
00:05:24 #17962 [Verbose] > x0
00:05:24 #17963 [Verbose] >
00:05:24 #17964 [Verbose] > inl position_ftxv dt m txv0 fs =
00:05:24 #17965 [Verbose] > states_txv dt m txv0 fs |> position_1d
00:05:24 #17966 [Verbose] >
00:05:24 #17967 [Verbose] > inl spring_force k (state_1d (_, x0, _)) =
00:05:24 #17968 [Verbose] > -k * x0
00:05:25 #17969 [Verbose] >
00:05:25 #17970 [Verbose] > ╭─[ 241.97ms - stdout ]────────────────────────────────────────────────────────╮
00:05:25 #17971 [Verbose] > │ () │
00:05:25 #17972 [Verbose] > │ │
00:05:25 #17973 [Verbose] > │ │
00:05:25 #17974 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:25 #17975 [Verbose] >
00:05:25 #17976 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:25 #17977 [Verbose] > // // test
00:05:25 #17978 [Verbose] >
00:05:25 #17979 [Verbose] > inl damped_ho_forces () =
00:05:25 #17980 [Verbose] > [[
00:05:25 #17981 [Verbose] > spring_force 0.8
00:05:25 #17982 [Verbose] > fun (state_1d (_, _, v0)) => f_air 2 1.225 (pi * math.square 0.02) v0
00:05:25 #17983 [Verbose] > fun _ => -0.0027 * 9.80665
00:05:25 #17984 [Verbose] > ]]
00:05:25 #17985 [Verbose] >
00:05:25 #17986 [Verbose] > inl damped_ho_states () =
00:05:25 #17987 [Verbose] > states_txv 0.001 0.0027 (state_1d (0, 0.1, 0)) (damped_ho_forces ())
00:05:25 #17988 [Verbose] >
00:05:25 #17989 [Verbose] > inl pingpong_position t =
00:05:25 #17990 [Verbose] > position_ftxv 0.001 0.0027 (state_1d (0, 0.1, 0)) (damped_ho_forces ()) t
00:05:25 #17991 [Verbose] >
00:05:25 #17992 [Verbose] > inl x : a _ f64 = am'.init_series 0 3 0.01
00:05:25 #17993 [Verbose] > inl y = x |> am.map pingpong_position
00:05:25 #17994 [Verbose] > "ping pong ball on a slinky", "time (s)", "", ;[[ "position (m)", x, y ]]
00:05:25 #17995 [Verbose] >
00:05:25 #17996 [Verbose] > ╭─[ 373.62ms - return value ]──────────────────────────────────────────────────╮
00:05:25 #17997 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:05:25 #17998 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:05:25 #17999 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:05:25 #18000 [Verbose] > │ stroke="none"/> │
00:05:25 #18001 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:05:25 #18002 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:05:25 #18003 [Verbose] > │ fill="#FFFFFF"> │
00:05:25 #18004 [Verbose] > │ ping pong ball on a slinky │
00:05:25 #18005 [Verbose] > │ </text> │
00:05:25 #18006 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="61" y1="424" x2="61" │
00:05:25 #18007 [Verbose] > │ y2="75"/> │
00:05:25 #18008 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:05:25 #18009 [Verbose] > │ y2="75"/> │
00:05:25 #18010 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="78" y1="424" x2="78" │
00:05:25 #18011 [Verbose] > │ y2="75"/> │
00:05:25 #18012 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="86" y1="424" x2="86" │
00:05:25 #18013 [Verbose] > │ y2="75"/> │
00:05:25 #18014 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="9... │
00:05:25 #18015 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:25 #18016 [Verbose] >
00:05:25 #18017 [Verbose] > ╭─[ 382.32ms - stdout ]────────────────────────────────────────────────────────╮
00:05:25 #18018 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:05:25 #18019 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:05:25 #18020 [Verbose] > │ let v1 : int32 = v0.l0 │
00:05:25 #18021 [Verbose] > │ let v2 : bool = v1 < 301 │
00:05:25 #18022 [Verbose] > │ v2 │
00:05:25 #18023 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool = │
00:05:25 #18024 [Verbose] > │ let v2 : int32 = v1.l0 │
00:05:25 #18025 [Verbose] > │ let v3 : bool = v2 < v0 │
00:05:25 #18026 [Verbose] > │ v3 │
00:05:25 #18027 [Verbose] > │ and method3 (v0 : float, v1 : float, v2 : float, v3 : float) : struct (float │
00:05:25 #18028 [Verbose] > │ * float * float) = │
00:05:25 #18029 [Verbose] > │ let v4 : bool = v3 <= 0.0 │
00:05:25 #18030 [Verbose] > │ if v4 then │
00:05:25 #18031 [Verbose] > │ struct (v0, v1, v2) │
00:05:25 #18032 [Verbose] > │ else │
00:05:25 #18033 [Verbose] > │ let v5 : float = -v2 │
00:05:25 #18034 [Verbose] > │ let v6 : bool = v2 >= v5 │
00:05:25 #18035 [Verbose] > │ let v7 : float = │
00:05:25 #18036 [Verbose] > │ if v6 then │
00:05:25 #18037 [Verbose] > │ v2 │
00:05:25 #18038 [Verbose] > │ else │
00:05:25 #18039 [Verbose] > │ v5 │
00:05:25 #18040 [Verbose] > │ let v8 : float = -0.0030787608005179976 * v7 │
00:05:25 #18041 [Verbose] > │ let v9 : float = v8 * v2 │
00:05:25 #18042 [Verbose] > │ let v10 : float = v9 / 2.0 │
00:05:25 #18043 [Verbose] > │ let v11 : float = -0.8 * v1 │
00:05:25 #18044 [Verbose] > │ let v12 : float = v11 + v10 │
00:05:25 #18045 [Verbose] > │ let v13 : float = v12 + -0.026477955 │
00:05:25 #18046 [Verbose] > │ let v14 : float = v13 / 0.0027 │
00:05:25 #18047 [Verbose] > │ let v15 : float = v0 + 0.001 │
00:05:25 #18048 [Verbose] > │ let v16 : float = v2 * 0.001 │
00:05:25 #18049 [Verbose] > │ let v17 : float = v1 + v16 │
00:05:25 #18050 [Verbose] > │ let v18 : float = v14 * 0.001 │
00:05:25 #18051 [Verbose] > │ let v19 : float = v2 + v18 │
00:05:25 #18052 [Verbose] > │ let v20 : float = v3 - 1.0 │
00:05:25 #18053 [Verbose] > │ method3(v15, v17, v19, v20) │
00:05:25 #18054 [Verbose] > │ and method4 (v0 : (struct (string * (float []) * (float [])) [])) : (struct │
00:05:25 #18055 [Verbose] > │ (string * (float []) * (float [])) []) = │
00:05:25 #18056 [Verbose] > │ v0 │
00:05:25 #18057 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:05:25 #18058 [Verbose] > │ []) * (float [])) [])) = │
00:05:25 #18059 [Verbose] > │ let v0 : (float []) = Array.zeroCreate<float> (301) │
00:05:25 #18060 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:05:25 #18061 [Verbose] > │ while method1(v1) do │
00:05:25 #18062 [Verbose] > │ let v3 : int32 = v1.l0 │
00:05:25 #18063 [Verbose] > │ let v4 : float = float v3 │
00:05:25 #18064 [Verbose] > │ let v5 : float = 0.01 * v4 │
00:05:25 #18065 [Verbose] > │ v0.[int v3] <- v5 │
00:05:25 #18066 [Verbose] > │ let v6 : int32 = v3 + 1 │
00:05:25 #18067 [Verbose] > │ v1.l0 <- v6 │
00:05:25 #18068 [Verbose] > │ () │
00:05:25 #18069 [Verbose] > │ let v7 : int32 = v0.Length │
00:05:25 #18070 [Verbose] > │ let v8 : (float []) = Array.zeroCreate<float> (v7) │
00:05:25 #18071 [Verbose] > │ let v9 : Mut0 = {l0 = 0} : Mut0 │
00:05:25 #18072 [Verbose] > │ while method2(v7, v9) do │
00:05:25 #18073 [Verbose] > │ let v11 : int32 = v9.l0 │
00:05:25 #18074 [Verbose] > │ let v12 : float = v0.[int v11] │
00:05:25 #18075 [Verbose] > │ let v13 : float = 0.0 │
00:05:25 #18076 [Verbose] > │ let v14 : float = 0.1 │
00:05:25 #18077 [Verbose] > │ let v15 : float = 0.0 │
00:05:25 #18078 [Verbose] > │ let v16 : float = 0.0 │
00:05:25 #18079 [Verbose] > │ let struct (v17 : float, v18 : float, v19 : float) = method3(v13, │
00:05:25 #18080 [Verbose] > │ v14, v15, v16) │
00:05:25 #18081 [Verbose] > │ let v20 : float = 0.0 │
00:05:25 #18082 [Verbose] > │ let v21 : float = 0.1 │
00:05:25 #18083 [Verbose] > │ let v22 : float = 0.0 │
00:05:25 #18084 [Verbose] > │ let v23 : float = 1.0 │
00:05:25 #18085 [Verbose] > │ let struct (v24 : float, v25 : float, v26 : float) = method3(v20, │
00:05:25 #18086 [Verbose] > │ v21, v22, v23) │
00:05:25 #18087 [Verbose] > │ let v27 : float = v24 - v17 │
00:05:25 #18088 [Verbose] > │ let v28 : float = v12 / v27 │
00:05:25 #18089 [Verbose] > │ let v29 : float = round v28 │
00:05:25 #18090 [Verbose] > │ let v30 : float = -v29 │
00:05:25 #18091 [Verbose] > │ let v31 : bool = v29 >= v30 │
00:05:25 #18092 [Verbose] > │ let v32 : float = │
00:05:25 #18093 [Verbose] > │ if v31 then │
00:05:25 #18094 [Verbose] > │ v29 │
00:05:25 #18095 [Verbose] > │ else │
00:05:25 #18096 [Verbose] > │ v30 │
00:05:25 #18097 [Verbose] > │ let v33 : float = 0.0 │
00:05:25 #18098 [Verbose] > │ let v34 : float = 0.1 │
00:05:25 #18099 [Verbose] > │ let v35 : float = 0.0 │
00:05:25 #18100 [Verbose] > │ let struct (v36 : float, v37 : float, v38 : float) = method3(v33, │
00:05:25 #18101 [Verbose] > │ v34, v35, v32) │
00:05:25 #18102 [Verbose] > │ v8.[int v11] <- v37 │
00:05:25 #18103 [Verbose] > │ let v39 : int32 = v11 + 1 │
00:05:25 #18104 [Verbose] > │ v9.l0 <- v39 │
00:05:25 #18105 [Verbose] > │ () │
00:05:25 #18106 [Verbose] > │ let v40 : string = "position (m)" │
00:05:25 #18107 [Verbose] > │ let v41 : (struct (string * (float []) * (float [])) []) = [|struct │
00:05:25 #18108 [Verbose] > │ (v40, v0, v8)|] │
00:05:25 #18109 [Verbose] > │ let v42 : (struct (string * (float []) * (float [])) []) = method4(v41) │
00:05:25 #18110 [Verbose] > │ let v43 : string = "ping pong ball on a slinky" │
00:05:25 #18111 [Verbose] > │ let v44 : string = "time (s)" │
00:05:25 #18112 [Verbose] > │ let v45 : string = "" │
00:05:25 #18113 [Verbose] > │ struct (v43, v44, v45, v42) │
00:05:25 #18114 [Verbose] > │ method0() │
00:05:25 #18115 [Verbose] > │ │
00:05:25 #18116 [Verbose] > │ │
00:05:25 #18117 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:25 #18118 [Verbose] >
00:05:25 #18119 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:25 #18120 [Verbose] > // // test
00:05:25 #18121 [Verbose] >
00:05:25 #18122 [Verbose] > inl pingpong_velocity t =
00:05:25 #18123 [Verbose] > velocity_ftxv 0.001 0.0027 (state_1d (0, 0.1, 0)) (damped_ho_forces ()) t
00:05:25 #18124 [Verbose] >
00:05:25 #18125 [Verbose] > inl x = am'.init_series 0 3 0.01
00:05:25 #18126 [Verbose] > inl y = x |> am.map pingpong_velocity
00:05:25 #18127 [Verbose] > "ping pong ball on a slinky", "time (s)", "", ;[[ "velocity (m/s)", x, y ]]
00:05:25 #18128 [Verbose] >
00:05:25 #18129 [Verbose] > ╭─[ 355.13ms - return value ]──────────────────────────────────────────────────╮
00:05:25 #18130 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:05:25 #18131 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:05:25 #18132 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:05:25 #18133 [Verbose] > │ stroke="none"/> │
00:05:25 #18134 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:05:25 #18135 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:05:25 #18136 [Verbose] > │ fill="#FFFFFF"> │
00:05:25 #18137 [Verbose] > │ ping pong ball on a slinky │
00:05:25 #18138 [Verbose] > │ </text> │
00:05:25 #18139 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="61" y1="424" x2="61" │
00:05:25 #18140 [Verbose] > │ y2="75"/> │
00:05:25 #18141 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:05:25 #18142 [Verbose] > │ y2="75"/> │
00:05:25 #18143 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="78" y1="424" x2="78" │
00:05:25 #18144 [Verbose] > │ y2="75"/> │
00:05:25 #18145 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="86" y1="424" x2="86" │
00:05:25 #18146 [Verbose] > │ y2="75"/> │
00:05:25 #18147 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="9... │
00:05:25 #18148 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:25 #18149 [Verbose] >
00:05:25 #18150 [Verbose] > ╭─[ 363.31ms - stdout ]────────────────────────────────────────────────────────╮
00:05:25 #18151 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:05:25 #18152 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:05:25 #18153 [Verbose] > │ let v1 : int32 = v0.l0 │
00:05:25 #18154 [Verbose] > │ let v2 : bool = v1 < 301 │
00:05:25 #18155 [Verbose] > │ v2 │
00:05:25 #18156 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool = │
00:05:25 #18157 [Verbose] > │ let v2 : int32 = v1.l0 │
00:05:25 #18158 [Verbose] > │ let v3 : bool = v2 < v0 │
00:05:25 #18159 [Verbose] > │ v3 │
00:05:25 #18160 [Verbose] > │ and method3 (v0 : float, v1 : float, v2 : float, v3 : float) : struct (float │
00:05:25 #18161 [Verbose] > │ * float * float) = │
00:05:25 #18162 [Verbose] > │ let v4 : bool = v3 <= 0.0 │
00:05:25 #18163 [Verbose] > │ if v4 then │
00:05:25 #18164 [Verbose] > │ struct (v0, v1, v2) │
00:05:25 #18165 [Verbose] > │ else │
00:05:25 #18166 [Verbose] > │ let v5 : float = -v2 │
00:05:25 #18167 [Verbose] > │ let v6 : bool = v2 >= v5 │
00:05:25 #18168 [Verbose] > │ let v7 : float = │
00:05:25 #18169 [Verbose] > │ if v6 then │
00:05:25 #18170 [Verbose] > │ v2 │
00:05:25 #18171 [Verbose] > │ else │
00:05:25 #18172 [Verbose] > │ v5 │
00:05:25 #18173 [Verbose] > │ let v8 : float = -0.0030787608005179976 * v7 │
00:05:25 #18174 [Verbose] > │ let v9 : float = v8 * v2 │
00:05:25 #18175 [Verbose] > │ let v10 : float = v9 / 2.0 │
00:05:25 #18176 [Verbose] > │ let v11 : float = -0.8 * v1 │
00:05:25 #18177 [Verbose] > │ let v12 : float = v11 + v10 │
00:05:25 #18178 [Verbose] > │ let v13 : float = v12 + -0.026477955 │
00:05:25 #18179 [Verbose] > │ let v14 : float = v13 / 0.0027 │
00:05:25 #18180 [Verbose] > │ let v15 : float = v0 + 0.001 │
00:05:25 #18181 [Verbose] > │ let v16 : float = v2 * 0.001 │
00:05:25 #18182 [Verbose] > │ let v17 : float = v1 + v16 │
00:05:25 #18183 [Verbose] > │ let v18 : float = v14 * 0.001 │
00:05:25 #18184 [Verbose] > │ let v19 : float = v2 + v18 │
00:05:25 #18185 [Verbose] > │ let v20 : float = v3 - 1.0 │
00:05:25 #18186 [Verbose] > │ method3(v15, v17, v19, v20) │
00:05:25 #18187 [Verbose] > │ and method4 (v0 : (struct (string * (float []) * (float [])) [])) : (struct │
00:05:25 #18188 [Verbose] > │ (string * (float []) * (float [])) []) = │
00:05:25 #18189 [Verbose] > │ v0 │
00:05:25 #18190 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:05:25 #18191 [Verbose] > │ []) * (float [])) [])) = │
00:05:25 #18192 [Verbose] > │ let v0 : (float []) = Array.zeroCreate<float> (301) │
00:05:25 #18193 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:05:25 #18194 [Verbose] > │ while method1(v1) do │
00:05:25 #18195 [Verbose] > │ let v3 : int32 = v1.l0 │
00:05:25 #18196 [Verbose] > │ let v4 : float = float v3 │
00:05:25 #18197 [Verbose] > │ let v5 : float = 0.01 * v4 │
00:05:25 #18198 [Verbose] > │ v0.[int v3] <- v5 │
00:05:25 #18199 [Verbose] > │ let v6 : int32 = v3 + 1 │
00:05:25 #18200 [Verbose] > │ v1.l0 <- v6 │
00:05:25 #18201 [Verbose] > │ () │
00:05:25 #18202 [Verbose] > │ let v7 : int32 = v0.Length │
00:05:25 #18203 [Verbose] > │ let v8 : (float []) = Array.zeroCreate<float> (v7) │
00:05:25 #18204 [Verbose] > │ let v9 : Mut0 = {l0 = 0} : Mut0 │
00:05:25 #18205 [Verbose] > │ while method2(v7, v9) do │
00:05:25 #18206 [Verbose] > │ let v11 : int32 = v9.l0 │
00:05:25 #18207 [Verbose] > │ let v12 : float = v0.[int v11] │
00:05:25 #18208 [Verbose] > │ let v13 : float = 0.0 │
00:05:25 #18209 [Verbose] > │ let v14 : float = 0.1 │
00:05:25 #18210 [Verbose] > │ let v15 : float = 0.0 │
00:05:25 #18211 [Verbose] > │ let v16 : float = 0.0 │
00:05:25 #18212 [Verbose] > │ let struct (v17 : float, v18 : float, v19 : float) = method3(v13, │
00:05:25 #18213 [Verbose] > │ v14, v15, v16) │
00:05:25 #18214 [Verbose] > │ let v20 : float = 0.0 │
00:05:25 #18215 [Verbose] > │ let v21 : float = 0.1 │
00:05:25 #18216 [Verbose] > │ let v22 : float = 0.0 │
00:05:25 #18217 [Verbose] > │ let v23 : float = 1.0 │
00:05:25 #18218 [Verbose] > │ let struct (v24 : float, v25 : float, v26 : float) = method3(v20, │
00:05:25 #18219 [Verbose] > │ v21, v22, v23) │
00:05:25 #18220 [Verbose] > │ let v27 : float = v24 - v17 │
00:05:25 #18221 [Verbose] > │ let v28 : float = v12 / v27 │
00:05:25 #18222 [Verbose] > │ let v29 : float = round v28 │
00:05:25 #18223 [Verbose] > │ let v30 : float = -v29 │
00:05:25 #18224 [Verbose] > │ let v31 : bool = v29 >= v30 │
00:05:25 #18225 [Verbose] > │ let v32 : float = │
00:05:25 #18226 [Verbose] > │ if v31 then │
00:05:25 #18227 [Verbose] > │ v29 │
00:05:25 #18228 [Verbose] > │ else │
00:05:25 #18229 [Verbose] > │ v30 │
00:05:25 #18230 [Verbose] > │ let v33 : float = 0.0 │
00:05:25 #18231 [Verbose] > │ let v34 : float = 0.1 │
00:05:25 #18232 [Verbose] > │ let v35 : float = 0.0 │
00:05:25 #18233 [Verbose] > │ let struct (v36 : float, v37 : float, v38 : float) = method3(v33, │
00:05:25 #18234 [Verbose] > │ v34, v35, v32) │
00:05:25 #18235 [Verbose] > │ v8.[int v11] <- v38 │
00:05:25 #18236 [Verbose] > │ let v39 : int32 = v11 + 1 │
00:05:25 #18237 [Verbose] > │ v9.l0 <- v39 │
00:05:25 #18238 [Verbose] > │ () │
00:05:25 #18239 [Verbose] > │ let v40 : string = "velocity (m/s)" │
00:05:25 #18240 [Verbose] > │ let v41 : (struct (string * (float []) * (float [])) []) = [|struct │
00:05:25 #18241 [Verbose] > │ (v40, v0, v8)|] │
00:05:25 #18242 [Verbose] > │ let v42 : (struct (string * (float []) * (float [])) []) = method4(v41) │
00:05:25 #18243 [Verbose] > │ let v43 : string = "ping pong ball on a slinky" │
00:05:25 #18244 [Verbose] > │ let v44 : string = "time (s)" │
00:05:25 #18245 [Verbose] > │ let v45 : string = "" │
00:05:25 #18246 [Verbose] > │ struct (v43, v44, v45, v42) │
00:05:25 #18247 [Verbose] > │ method0() │
00:05:25 #18248 [Verbose] > │ │
00:05:25 #18249 [Verbose] > │ │
00:05:25 #18250 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:25 #18251 [Verbose] >
00:05:25 #18252 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:25 #18253 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:25 #18254 [Verbose] > │ ## shift │
00:05:25 #18255 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:25 #18256 [Verbose] >
00:05:25 #18257 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:25 #18258 [Verbose] > type update_function s = s -> s
00:05:25 #18259 [Verbose] >
00:05:25 #18260 [Verbose] > type differential_equation s ds = s -> ds
00:05:25 #18261 [Verbose] >
00:05:25 #18262 [Verbose] > type numerical_method s ds = differential_equation s ds -> update_function s
00:05:25 #18263 [Verbose] >
00:05:25 #18264 [Verbose] >
00:05:25 #18265 [Verbose] > inl solver method =
00:05:25 #18266 [Verbose] > method >> seq.iterate
00:05:25 #18267 [Verbose] > inl solver' method =
00:05:25 #18268 [Verbose] > method >> seq.iterate'
00:05:25 #18269 [Verbose] > inl solver_ method =
00:05:25 #18270 [Verbose] > method >> seq.iterate_
00:05:25 #18271 [Verbose] >
00:05:25 #18272 [Verbose] >
00:05:25 #18273 [Verbose] > inl euler_cromer_1d dt deriv (state_1d (t0, x0, v0) as t) =
00:05:25 #18274 [Verbose] > inl (rrr (_, _, dvdt)) = deriv t
00:05:25 #18275 [Verbose] > inl t1 = t0 + dt
00:05:25 #18276 [Verbose] > inl v1 = v0 + dvdt * dt
00:05:25 #18277 [Verbose] > inl x1 = x0 + v1 * dt
00:05:25 #18278 [Verbose] > state_1d (t1, x1, v1)
00:05:25 #18279 [Verbose] >
00:05:25 #18280 [Verbose] > inl update_txv_ec dt m fs =
00:05:25 #18281 [Verbose] > euler_cromer_1d dt (newton_second_1d m fs)
00:05:25 #18282 [Verbose] >
00:05:25 #18283 [Verbose] > prototype (+++) ds : ds -> ds -> ds
00:05:25 #18284 [Verbose] > prototype scale ds : f64 -> ds -> ds
00:05:25 #18285 [Verbose] >
00:05:25 #18286 [Verbose] > instance (+++) rrr = fun (rrr (dtdt0, dxdt0, dvdt0)) (rrr (dtdt1, dxdt1, dvdt1))
00:05:25 #18287 [Verbose] > =>
00:05:25 #18288 [Verbose] > rrr (dtdt0 + dtdt1, dxdt0 + dxdt1, dvdt0 + dvdt1)
00:05:25 #18289 [Verbose] >
00:05:25 #18290 [Verbose] > instance scale rrr = fun w (rrr (dtdt0, dxdt0, dvdt0)) =>
00:05:25 #18291 [Verbose] > rrr (w * dtdt0, w * dxdt0, w * dvdt0)
00:05:25 #18292 [Verbose] >
00:05:25 #18293 [Verbose] > prototype shift s : forall ds. f64 -> ds -> s -> s
00:05:25 #18294 [Verbose] >
00:05:25 #18295 [Verbose] > instance shift state_1d = fun dt ds (state_1d (t, x, v)) =>
00:05:25 #18296 [Verbose] > inl dtdt, dxdt, dvdt =
00:05:25 #18297 [Verbose] > real
00:05:25 #18298 [Verbose] > match ds with
00:05:25 #18299 [Verbose] > | rrr x => x
00:05:25 #18300 [Verbose] > | state_1d x => x
00:05:25 #18301 [Verbose] > state_1d (t + dtdt * dt, x + dxdt * dt, v + dvdt * dt)
00:05:25 #18302 [Verbose] >
00:05:25 #18303 [Verbose] > inl euler dt deriv st0 =
00:05:25 #18304 [Verbose] > shift dt (deriv st0) st0
00:05:25 #18305 [Verbose] >
00:05:25 #18306 [Verbose] > inl runge_kutta_4 dt deriv st0 =
00:05:25 #18307 [Verbose] > inl m0 = deriv st0
00:05:25 #18308 [Verbose] > inl m1 = deriv (shift (dt / 2) m0 st0)
00:05:25 #18309 [Verbose] > inl m2 = deriv (shift (dt / 2) m1 st0)
00:05:25 #18310 [Verbose] > inl m3 = deriv (shift dt m2 st0)
00:05:25 #18311 [Verbose] > shift (dt / 6) (m0 +++ m1 +++ m1 +++ m2 +++ m2 +++ m3) st0
00:05:25 #18312 [Verbose] >
00:05:25 #18313 [Verbose] > inl exponential (_, x0, v0) =
00:05:25 #18314 [Verbose] > 1f64, v0, x0
00:05:25 #18315 [Verbose] >
00:05:25 #18316 [Verbose] > inl of_state_1d (state_1d (t, x, v)) =
00:05:25 #18317 [Verbose] > t, x, v
00:05:26 #18318 [Verbose] >
00:05:26 #18319 [Verbose] > ╭─[ 286.63ms - stdout ]────────────────────────────────────────────────────────╮
00:05:26 #18320 [Verbose] > │ () │
00:05:26 #18321 [Verbose] > │ │
00:05:26 #18322 [Verbose] > │ │
00:05:26 #18323 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:26 #18324 [Verbose] >
00:05:26 #18325 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:26 #18326 [Verbose] > // // test
00:05:26 #18327 [Verbose] >
00:05:26 #18328 [Verbose] > solver (euler 0.01) (of_state_1d >> exponential >> state_1d) (state_1d (0, 1,
00:05:26 #18329 [Verbose] > 1)) 800i32
00:05:26 #18330 [Verbose] > |> _assert_eq (state_1d (7.999999999999874, 2864.8311229272326,
00:05:26 #18331 [Verbose] > 2864.8311229272326))
00:05:26 #18332 [Verbose] >
00:05:26 #18333 [Verbose] > solver (euler_cromer_1d 0.1) (of_state_1d >> exponential >> rrr) (state_1d (0,
00:05:26 #18334 [Verbose] > 1, 1)) 80i32
00:05:26 #18335 [Verbose] > |> _assert_eq (state_1d (7.999999999999988, 3043.379244966009,
00:05:26 #18336 [Verbose] > 2895.0121485099035))
00:05:26 #18337 [Verbose] >
00:05:26 #18338 [Verbose] > solver (runge_kutta_4 1) (of_state_1d >> exponential >> rrr) (state_1d (0, 1,
00:05:26 #18339 [Verbose] > 1)) 8i32
00:05:26 #18340 [Verbose] > |> _assert_eq (state_1d (8.0, 2894.789038540849, 2894.789038540849))
00:05:26 #18341 [Verbose] >
00:05:26 #18342 [Verbose] > ╭─[ 293.59ms - stdout ]────────────────────────────────────────────────────────╮
00:05:26 #18343 [Verbose] > │ let rec method0 () : unit = │
00:05:26 #18344 [Verbose] > │ let v0 : string = $"%A{struct (7.999999999999874, 2864.8311229272326, │
00:05:26 #18345 [Verbose] > │ 2864.8311229272326)}" │
00:05:26 #18346 [Verbose] > │ System.Console.WriteLine v0 │
00:05:26 #18347 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (7.999999999999874, │
00:05:26 #18348 [Verbose] > │ 2864.8311229272326, 2864.8311229272326)} / expected: %A{struct │
00:05:26 #18349 [Verbose] > │ (7.999999999999874, 2864.8311229272326, 2864.8311229272326)}" │
00:05:26 #18350 [Verbose] > │ let v2 : string = $"%A{struct (7.999999999999988, 3043.379244966009, │
00:05:26 #18351 [Verbose] > │ 2895.0121485099035)}" │
00:05:26 #18352 [Verbose] > │ System.Console.WriteLine v2 │
00:05:26 #18353 [Verbose] > │ let v3 : string = $"__expect / actual: %A{struct (7.999999999999988, │
00:05:26 #18354 [Verbose] > │ 3043.379244966009, 2895.0121485099035)} / expected: %A{struct │
00:05:26 #18355 [Verbose] > │ (7.999999999999988, 3043.379244966009, 2895.0121485099035)}" │
00:05:26 #18356 [Verbose] > │ let v4 : string = $"%A{struct (8.0, 2894.789038540849, │
00:05:26 #18357 [Verbose] > │ 2894.789038540849)}" │
00:05:26 #18358 [Verbose] > │ System.Console.WriteLine v4 │
00:05:26 #18359 [Verbose] > │ let v5 : string = $"__expect / actual: %A{struct (8.0, │
00:05:26 #18360 [Verbose] > │ 2894.789038540849, 2894.789038540849)} / expected: %A{struct (8.0, │
00:05:26 #18361 [Verbose] > │ 2894.789038540849, 2894.789038540849)}" │
00:05:26 #18362 [Verbose] > │ () │
00:05:26 #18363 [Verbose] > │ method0() │
00:05:26 #18364 [Verbose] > │ │
00:05:26 #18365 [Verbose] > │ struct (8.0, 2864.831123, 2864.831123) │
00:05:26 #18366 [Verbose] > │ struct (8.0, 3043.379245, 2895.012149) │
00:05:26 #18367 [Verbose] > │ struct (8.0, 2894.789039, 2894.789039) │
00:05:26 #18368 [Verbose] > │ │
00:05:26 #18369 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:26 #18370 [Verbose] >
00:05:26 #18371 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:26 #18372 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:26 #18373 [Verbose] > │ ## vec │
00:05:26 #18374 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:26 #18375 [Verbose] >
00:05:26 #18376 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:26 #18377 [Verbose] > type vec =
00:05:26 #18378 [Verbose] > {
00:05:26 #18379 [Verbose] > x : f64
00:05:26 #18380 [Verbose] > y : f64
00:05:26 #18381 [Verbose] > z : f64
00:05:26 #18382 [Verbose] > }
00:05:26 #18383 [Verbose] >
00:05:26 #18384 [Verbose] > inl vec x y z : vec =
00:05:26 #18385 [Verbose] > { x y z }
00:05:26 #18386 [Verbose] >
00:05:26 #18387 [Verbose] > ╭─[ 320.36ms - stdout ]────────────────────────────────────────────────────────╮
00:05:26 #18388 [Verbose] > │ () │
00:05:26 #18389 [Verbose] > │ │
00:05:26 #18390 [Verbose] > │ │
00:05:26 #18391 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:26 #18392 [Verbose] >
00:05:26 #18393 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:26 #18394 [Verbose] > // // test
00:05:26 #18395 [Verbose] >
00:05:26 #18396 [Verbose] > vec 1 2 3 .z
00:05:26 #18397 [Verbose] > |> _assert_eq 3
00:05:27 #18398 [Verbose] >
00:05:27 #18399 [Verbose] > ╭─[ 251.99ms - stdout ]────────────────────────────────────────────────────────╮
00:05:27 #18400 [Verbose] > │ let rec method0 () : unit = │
00:05:27 #18401 [Verbose] > │ let v0 : string = $"%A{3.0}" │
00:05:27 #18402 [Verbose] > │ System.Console.WriteLine v0 │
00:05:27 #18403 [Verbose] > │ let v1 : string = $"__expect / actual: %A{3.0} / expected: %A{3.0}" │
00:05:27 #18404 [Verbose] > │ () │
00:05:27 #18405 [Verbose] > │ method0() │
00:05:27 #18406 [Verbose] > │ │
00:05:27 #18407 [Verbose] > │ 3.0 │
00:05:27 #18408 [Verbose] > │ │
00:05:27 #18409 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:27 #18410 [Verbose] >
00:05:27 #18411 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:27 #18412 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:27 #18413 [Verbose] > │ ### consts │
00:05:27 #18414 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:27 #18415 [Verbose] >
00:05:27 #18416 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:27 #18417 [Verbose] > inl i_hat () = vec 1 0 0
00:05:27 #18418 [Verbose] > inl j_hat () = vec 0 1 0
00:05:27 #18419 [Verbose] > inl k_hat () = vec 0 0 1
00:05:27 #18420 [Verbose] > inl zero_vec () = vec 0 0 0
00:05:27 #18421 [Verbose] >
00:05:27 #18422 [Verbose] > ╭─[ 265.94ms - stdout ]────────────────────────────────────────────────────────╮
00:05:27 #18423 [Verbose] > │ () │
00:05:27 #18424 [Verbose] > │ │
00:05:27 #18425 [Verbose] > │ │
00:05:27 #18426 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:27 #18427 [Verbose] >
00:05:27 #18428 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:27 #18429 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:27 #18430 [Verbose] > │ ### ^+^ │
00:05:27 #18431 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:27 #18432 [Verbose] >
00:05:27 #18433 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:27 #18434 [Verbose] > inl (^+^) (a : vec) (b : vec) =
00:05:27 #18435 [Verbose] > vec (a.x + b.x) (a.y + b.y) (a.z + b.z)
00:05:27 #18436 [Verbose] >
00:05:27 #18437 [Verbose] > ╭─[ 234.57ms - stdout ]────────────────────────────────────────────────────────╮
00:05:27 #18438 [Verbose] > │ () │
00:05:27 #18439 [Verbose] > │ │
00:05:27 #18440 [Verbose] > │ │
00:05:27 #18441 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:27 #18442 [Verbose] >
00:05:27 #18443 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:27 #18444 [Verbose] > // // test
00:05:27 #18445 [Verbose] >
00:05:27 #18446 [Verbose] > vec 1 2 3 ^+^ vec 4 5 6
00:05:27 #18447 [Verbose] > |> _assert_eq (vec 5 7 9)
00:05:27 #18448 [Verbose] >
00:05:27 #18449 [Verbose] > ╭─[ 290.30ms - stdout ]────────────────────────────────────────────────────────╮
00:05:27 #18450 [Verbose] > │ let rec method0 () : unit = │
00:05:27 #18451 [Verbose] > │ let v0 : string = $"%A{struct (5.0, 7.0, 9.0)}" │
00:05:27 #18452 [Verbose] > │ System.Console.WriteLine v0 │
00:05:27 #18453 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (5.0, 7.0, 9.0)} / │
00:05:27 #18454 [Verbose] > │ expected: %A{struct (5.0, 7.0, 9.0)}" │
00:05:27 #18455 [Verbose] > │ () │
00:05:27 #18456 [Verbose] > │ method0() │
00:05:27 #18457 [Verbose] > │ │
00:05:27 #18458 [Verbose] > │ struct (5.0, 7.0, 9.0) │
00:05:27 #18459 [Verbose] > │ │
00:05:27 #18460 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:27 #18461 [Verbose] >
00:05:27 #18462 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:27 #18463 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:27 #18464 [Verbose] > │ ### sum_vec │
00:05:27 #18465 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:27 #18466 [Verbose] >
00:05:27 #18467 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:27 #18468 [Verbose] > inl sum_vec vs =
00:05:27 #18469 [Verbose] > vs |> listm.fold (^+^) (zero_vec ())
00:05:28 #18470 [Verbose] >
00:05:28 #18471 [Verbose] > ╭─[ 247.14ms - stdout ]────────────────────────────────────────────────────────╮
00:05:28 #18472 [Verbose] > │ () │
00:05:28 #18473 [Verbose] > │ │
00:05:28 #18474 [Verbose] > │ │
00:05:28 #18475 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:28 #18476 [Verbose] >
00:05:28 #18477 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:28 #18478 [Verbose] > // // test
00:05:28 #18479 [Verbose] >
00:05:28 #18480 [Verbose] > [[ vec 1 2 3; vec 4 5 6 ]]
00:05:28 #18481 [Verbose] > |> sum_vec
00:05:28 #18482 [Verbose] > |> _assert_eq (vec 5 7 9)
00:05:28 #18483 [Verbose] >
00:05:28 #18484 [Verbose] > ╭─[ 336.99ms - stdout ]────────────────────────────────────────────────────────╮
00:05:28 #18485 [Verbose] > │ let rec method0 () : unit = │
00:05:28 #18486 [Verbose] > │ let v0 : string = $"%A{struct (5.0, 7.0, 9.0)}" │
00:05:28 #18487 [Verbose] > │ System.Console.WriteLine v0 │
00:05:28 #18488 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (5.0, 7.0, 9.0)} / │
00:05:28 #18489 [Verbose] > │ expected: %A{struct (5.0, 7.0, 9.0)}" │
00:05:28 #18490 [Verbose] > │ () │
00:05:28 #18491 [Verbose] > │ method0() │
00:05:28 #18492 [Verbose] > │ │
00:05:28 #18493 [Verbose] > │ struct (5.0, 7.0, 9.0) │
00:05:28 #18494 [Verbose] > │ │
00:05:28 #18495 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:28 #18496 [Verbose] >
00:05:28 #18497 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:28 #18498 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:28 #18499 [Verbose] > │ ### *^ │
00:05:28 #18500 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:28 #18501 [Verbose] >
00:05:28 #18502 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:28 #18503 [Verbose] > inl (*^) c { x y z } =
00:05:28 #18504 [Verbose] > vec (c * x) (c * y) (c * z)
00:05:28 #18505 [Verbose] >
00:05:28 #18506 [Verbose] > ╭─[ 253.88ms - stdout ]────────────────────────────────────────────────────────╮
00:05:28 #18507 [Verbose] > │ () │
00:05:28 #18508 [Verbose] > │ │
00:05:28 #18509 [Verbose] > │ │
00:05:28 #18510 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:28 #18511 [Verbose] >
00:05:28 #18512 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:28 #18513 [Verbose] > // // test
00:05:28 #18514 [Verbose] >
00:05:28 #18515 [Verbose] > 5 *^ vec 1 2 3
00:05:28 #18516 [Verbose] > |> _assert_eq (vec 5 10 15)
00:05:28 #18517 [Verbose] >
00:05:28 #18518 [Verbose] > ╭─[ 250.13ms - stdout ]────────────────────────────────────────────────────────╮
00:05:28 #18519 [Verbose] > │ let rec method0 () : unit = │
00:05:28 #18520 [Verbose] > │ let v0 : string = $"%A{struct (5.0, 10.0, 15.0)}" │
00:05:28 #18521 [Verbose] > │ System.Console.WriteLine v0 │
00:05:28 #18522 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (5.0, 10.0, 15.0)} / │
00:05:28 #18523 [Verbose] > │ expected: %A{struct (5.0, 10.0, 15.0)}" │
00:05:28 #18524 [Verbose] > │ () │
00:05:28 #18525 [Verbose] > │ method0() │
00:05:28 #18526 [Verbose] > │ │
00:05:28 #18527 [Verbose] > │ struct (5.0, 10.0, 15.0) │
00:05:28 #18528 [Verbose] > │ │
00:05:28 #18529 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:28 #18530 [Verbose] >
00:05:28 #18531 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:28 #18532 [Verbose] > // // test
00:05:28 #18533 [Verbose] >
00:05:28 #18534 [Verbose] > 3 *^ i_hat () ^+^ 4 *^ k_hat ()
00:05:28 #18535 [Verbose] > |> _assert_eq (vec 3 0 4)
00:05:29 #18536 [Verbose] >
00:05:29 #18537 [Verbose] > ╭─[ 270.44ms - stdout ]────────────────────────────────────────────────────────╮
00:05:29 #18538 [Verbose] > │ let rec method0 () : unit = │
00:05:29 #18539 [Verbose] > │ let v0 : string = $"%A{struct (3.0, 0.0, 4.0)}" │
00:05:29 #18540 [Verbose] > │ System.Console.WriteLine v0 │
00:05:29 #18541 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (3.0, 0.0, 4.0)} / │
00:05:29 #18542 [Verbose] > │ expected: %A{struct (3.0, 0.0, 4.0)}" │
00:05:29 #18543 [Verbose] > │ () │
00:05:29 #18544 [Verbose] > │ method0() │
00:05:29 #18545 [Verbose] > │ │
00:05:29 #18546 [Verbose] > │ struct (3.0, 0.0, 4.0) │
00:05:29 #18547 [Verbose] > │ │
00:05:29 #18548 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:29 #18549 [Verbose] >
00:05:29 #18550 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:29 #18551 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:29 #18552 [Verbose] > │ ### ^* │
00:05:29 #18553 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:29 #18554 [Verbose] >
00:05:29 #18555 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:29 #18556 [Verbose] > inl (^*) v c =
00:05:29 #18557 [Verbose] > (*^) c v
00:05:29 #18558 [Verbose] >
00:05:29 #18559 [Verbose] > ╭─[ 242.71ms - stdout ]────────────────────────────────────────────────────────╮
00:05:29 #18560 [Verbose] > │ () │
00:05:29 #18561 [Verbose] > │ │
00:05:29 #18562 [Verbose] > │ │
00:05:29 #18563 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:29 #18564 [Verbose] >
00:05:29 #18565 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:29 #18566 [Verbose] > // // test
00:05:29 #18567 [Verbose] >
00:05:29 #18568 [Verbose] > vec 1 2 3 ^* 5
00:05:29 #18569 [Verbose] > |> _assert_eq (vec 5 10 15)
00:05:29 #18570 [Verbose] >
00:05:29 #18571 [Verbose] > ╭─[ 250.87ms - stdout ]────────────────────────────────────────────────────────╮
00:05:29 #18572 [Verbose] > │ let rec method0 () : unit = │
00:05:29 #18573 [Verbose] > │ let v0 : string = $"%A{struct (5.0, 10.0, 15.0)}" │
00:05:29 #18574 [Verbose] > │ System.Console.WriteLine v0 │
00:05:29 #18575 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (5.0, 10.0, 15.0)} / │
00:05:29 #18576 [Verbose] > │ expected: %A{struct (5.0, 10.0, 15.0)}" │
00:05:29 #18577 [Verbose] > │ () │
00:05:29 #18578 [Verbose] > │ method0() │
00:05:29 #18579 [Verbose] > │ │
00:05:29 #18580 [Verbose] > │ struct (5.0, 10.0, 15.0) │
00:05:29 #18581 [Verbose] > │ │
00:05:29 #18582 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:29 #18583 [Verbose] >
00:05:29 #18584 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:29 #18585 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:29 #18586 [Verbose] > │ ### ^/ │
00:05:29 #18587 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:29 #18588 [Verbose] >
00:05:29 #18589 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:29 #18590 [Verbose] > inl (^/) { x y z } c =
00:05:29 #18591 [Verbose] > vec (x / c) (y / c) (z / c)
00:05:30 #18592 [Verbose] >
00:05:30 #18593 [Verbose] > ╭─[ 251.53ms - stdout ]────────────────────────────────────────────────────────╮
00:05:30 #18594 [Verbose] > │ () │
00:05:30 #18595 [Verbose] > │ │
00:05:30 #18596 [Verbose] > │ │
00:05:30 #18597 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:30 #18598 [Verbose] >
00:05:30 #18599 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:30 #18600 [Verbose] > // // test
00:05:30 #18601 [Verbose] >
00:05:30 #18602 [Verbose] > vec 1 2 3 ^/ 5
00:05:30 #18603 [Verbose] > |> _assert_eq (vec 0.2 0.4 0.6)
00:05:30 #18604 [Verbose] >
00:05:30 #18605 [Verbose] > ╭─[ 282.81ms - stdout ]────────────────────────────────────────────────────────╮
00:05:30 #18606 [Verbose] > │ let rec method0 () : unit = │
00:05:30 #18607 [Verbose] > │ let v0 : string = $"%A{struct (0.2, 0.4, 0.6)}" │
00:05:30 #18608 [Verbose] > │ System.Console.WriteLine v0 │
00:05:30 #18609 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (0.2, 0.4, 0.6)} / │
00:05:30 #18610 [Verbose] > │ expected: %A{struct (0.2, 0.4, 0.6)}" │
00:05:30 #18611 [Verbose] > │ () │
00:05:30 #18612 [Verbose] > │ method0() │
00:05:30 #18613 [Verbose] > │ │
00:05:30 #18614 [Verbose] > │ struct (0.2, 0.4, 0.6) │
00:05:30 #18615 [Verbose] > │ │
00:05:30 #18616 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:30 #18617 [Verbose] >
00:05:30 #18618 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:30 #18619 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:30 #18620 [Verbose] > │ ### negate_vec │
00:05:30 #18621 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:30 #18622 [Verbose] >
00:05:30 #18623 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:30 #18624 [Verbose] > inl negate_vec v =
00:05:30 #18625 [Verbose] > v ^* -1
00:05:30 #18626 [Verbose] >
00:05:30 #18627 [Verbose] > ╭─[ 303.94ms - stdout ]────────────────────────────────────────────────────────╮
00:05:30 #18628 [Verbose] > │ () │
00:05:30 #18629 [Verbose] > │ │
00:05:30 #18630 [Verbose] > │ │
00:05:30 #18631 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:30 #18632 [Verbose] >
00:05:30 #18633 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:30 #18634 [Verbose] > // // test
00:05:30 #18635 [Verbose] >
00:05:30 #18636 [Verbose] > vec 1 2 3
00:05:30 #18637 [Verbose] > |> negate_vec
00:05:30 #18638 [Verbose] > |> _assert_eq (vec -1 -2 -3)
00:05:30 #18639 [Verbose] >
00:05:30 #18640 [Verbose] > ╭─[ 263.12ms - stdout ]────────────────────────────────────────────────────────╮
00:05:30 #18641 [Verbose] > │ let rec method0 () : unit = │
00:05:30 #18642 [Verbose] > │ let v0 : string = $"%A{struct (-1.0, -2.0, -3.0)}" │
00:05:30 #18643 [Verbose] > │ System.Console.WriteLine v0 │
00:05:30 #18644 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (-1.0, -2.0, -3.0)} / │
00:05:30 #18645 [Verbose] > │ expected: %A{struct (-1.0, -2.0, -3.0)}" │
00:05:30 #18646 [Verbose] > │ () │
00:05:30 #18647 [Verbose] > │ method0() │
00:05:30 #18648 [Verbose] > │ │
00:05:30 #18649 [Verbose] > │ struct (-1.0, -2.0, -3.0) │
00:05:30 #18650 [Verbose] > │ │
00:05:30 #18651 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:30 #18652 [Verbose] >
00:05:30 #18653 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:30 #18654 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:30 #18655 [Verbose] > │ ### ^-^ │
00:05:30 #18656 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:30 #18657 [Verbose] >
00:05:30 #18658 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:30 #18659 [Verbose] > inl (^-^) a b =
00:05:30 #18660 [Verbose] > a ^+^ (negate_vec b)
00:05:31 #18661 [Verbose] >
00:05:31 #18662 [Verbose] > ╭─[ 228.66ms - stdout ]────────────────────────────────────────────────────────╮
00:05:31 #18663 [Verbose] > │ () │
00:05:31 #18664 [Verbose] > │ │
00:05:31 #18665 [Verbose] > │ │
00:05:31 #18666 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:31 #18667 [Verbose] >
00:05:31 #18668 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:31 #18669 [Verbose] > // // test
00:05:31 #18670 [Verbose] >
00:05:31 #18671 [Verbose] > vec 1 2 3 ^-^ vec 4 5 6
00:05:31 #18672 [Verbose] > |> _assert_eq (vec -3 -3 -3)
00:05:31 #18673 [Verbose] >
00:05:31 #18674 [Verbose] > ╭─[ 224.53ms - stdout ]────────────────────────────────────────────────────────╮
00:05:31 #18675 [Verbose] > │ let rec method0 () : unit = │
00:05:31 #18676 [Verbose] > │ let v0 : string = $"%A{struct (-3.0, -3.0, -3.0)}" │
00:05:31 #18677 [Verbose] > │ System.Console.WriteLine v0 │
00:05:31 #18678 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (-3.0, -3.0, -3.0)} / │
00:05:31 #18679 [Verbose] > │ expected: %A{struct (-3.0, -3.0, -3.0)}" │
00:05:31 #18680 [Verbose] > │ () │
00:05:31 #18681 [Verbose] > │ method0() │
00:05:31 #18682 [Verbose] > │ │
00:05:31 #18683 [Verbose] > │ struct (-3.0, -3.0, -3.0) │
00:05:31 #18684 [Verbose] > │ │
00:05:31 #18685 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:31 #18686 [Verbose] >
00:05:31 #18687 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:31 #18688 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:31 #18689 [Verbose] > │ ### <.> │
00:05:31 #18690 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:31 #18691 [Verbose] >
00:05:31 #18692 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:31 #18693 [Verbose] > inl (<.>) { x = ax y = ay z = az } { x = bx y = by z = bz } =
00:05:31 #18694 [Verbose] > ax * bx + ay * by + az * bz
00:05:31 #18695 [Verbose] >
00:05:31 #18696 [Verbose] > ╭─[ 225.10ms - stdout ]────────────────────────────────────────────────────────╮
00:05:31 #18697 [Verbose] > │ () │
00:05:31 #18698 [Verbose] > │ │
00:05:31 #18699 [Verbose] > │ │
00:05:31 #18700 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:31 #18701 [Verbose] >
00:05:31 #18702 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:31 #18703 [Verbose] > // // test
00:05:31 #18704 [Verbose] >
00:05:31 #18705 [Verbose] > vec 1 2 3 <.> vec 4 5 6
00:05:31 #18706 [Verbose] > |> _assert_eq 32
00:05:31 #18707 [Verbose] >
00:05:31 #18708 [Verbose] > ╭─[ 273.24ms - stdout ]────────────────────────────────────────────────────────╮
00:05:31 #18709 [Verbose] > │ let rec method0 () : unit = │
00:05:31 #18710 [Verbose] > │ let v0 : string = $"%A{32.0}" │
00:05:31 #18711 [Verbose] > │ System.Console.WriteLine v0 │
00:05:31 #18712 [Verbose] > │ let v1 : string = $"__expect / actual: %A{32.0} / expected: %A{32.0}" │
00:05:31 #18713 [Verbose] > │ () │
00:05:31 #18714 [Verbose] > │ method0() │
00:05:31 #18715 [Verbose] > │ │
00:05:31 #18716 [Verbose] > │ 32.0 │
00:05:31 #18717 [Verbose] > │ │
00:05:31 #18718 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:31 #18719 [Verbose] >
00:05:31 #18720 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:31 #18721 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:31 #18722 [Verbose] > │ ### \>\< │
00:05:31 #18723 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:31 #18724 [Verbose] >
00:05:31 #18725 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:31 #18726 [Verbose] > inl (><) (a : vec) (b : vec) =
00:05:31 #18727 [Verbose] > vec
00:05:31 #18728 [Verbose] > (a.y * b.z - a.z * b.y)
00:05:31 #18729 [Verbose] > (a.z * b.x - a.x * b.z)
00:05:31 #18730 [Verbose] > (a.x * b.y - a.y * b.x)
00:05:32 #18731 [Verbose] >
00:05:32 #18732 [Verbose] > ╭─[ 239.85ms - stdout ]────────────────────────────────────────────────────────╮
00:05:32 #18733 [Verbose] > │ () │
00:05:32 #18734 [Verbose] > │ │
00:05:32 #18735 [Verbose] > │ │
00:05:32 #18736 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:32 #18737 [Verbose] >
00:05:32 #18738 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:32 #18739 [Verbose] > // // test
00:05:32 #18740 [Verbose] >
00:05:32 #18741 [Verbose] > vec 1 2 3 >< vec 4 5 6
00:05:32 #18742 [Verbose] > |> _assert_eq (vec -3 6 -3)
00:05:32 #18743 [Verbose] >
00:05:32 #18744 [Verbose] > ╭─[ 336.15ms - stdout ]────────────────────────────────────────────────────────╮
00:05:32 #18745 [Verbose] > │ let rec method0 () : unit = │
00:05:32 #18746 [Verbose] > │ let v0 : string = $"%A{struct (-3.0, 6.0, -3.0)}" │
00:05:32 #18747 [Verbose] > │ System.Console.WriteLine v0 │
00:05:32 #18748 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (-3.0, 6.0, -3.0)} / │
00:05:32 #18749 [Verbose] > │ expected: %A{struct (-3.0, 6.0, -3.0)}" │
00:05:32 #18750 [Verbose] > │ () │
00:05:32 #18751 [Verbose] > │ method0() │
00:05:32 #18752 [Verbose] > │ │
00:05:32 #18753 [Verbose] > │ struct (-3.0, 6.0, -3.0) │
00:05:32 #18754 [Verbose] > │ │
00:05:32 #18755 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:32 #18756 [Verbose] >
00:05:32 #18757 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:32 #18758 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:32 #18759 [Verbose] > │ ### magnitude │
00:05:32 #18760 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:32 #18761 [Verbose] >
00:05:32 #18762 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:32 #18763 [Verbose] > inl magnitude v =
00:05:32 #18764 [Verbose] > v <.> v |> sqrt
00:05:32 #18765 [Verbose] >
00:05:32 #18766 [Verbose] > ╭─[ 254.33ms - stdout ]────────────────────────────────────────────────────────╮
00:05:32 #18767 [Verbose] > │ () │
00:05:32 #18768 [Verbose] > │ │
00:05:32 #18769 [Verbose] > │ │
00:05:32 #18770 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:32 #18771 [Verbose] >
00:05:32 #18772 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:32 #18773 [Verbose] > // // test
00:05:32 #18774 [Verbose] >
00:05:32 #18775 [Verbose] > vec 1 2 3
00:05:32 #18776 [Verbose] > |> magnitude
00:05:32 #18777 [Verbose] > |> _assert_approx_eq None 3.7416573867739413
00:05:32 #18778 [Verbose] >
00:05:32 #18779 [Verbose] > ╭─[ 271.86ms - stdout ]────────────────────────────────────────────────────────╮
00:05:32 #18780 [Verbose] > │ let rec method0 () : unit = │
00:05:32 #18781 [Verbose] > │ let v0 : string = $"%A{3.7416573867739413}" │
00:05:32 #18782 [Verbose] > │ System.Console.WriteLine v0 │
00:05:32 #18783 [Verbose] > │ let v1 : string = $"__expect / actual: %A{3.7416573867739413} / │
00:05:32 #18784 [Verbose] > │ expected: %A{3.7416573867739413}" │
00:05:32 #18785 [Verbose] > │ () │
00:05:32 #18786 [Verbose] > │ method0() │
00:05:32 #18787 [Verbose] > │ │
00:05:32 #18788 [Verbose] > │ 3.741657387 │
00:05:32 #18789 [Verbose] > │ │
00:05:32 #18790 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:32 #18791 [Verbose] >
00:05:32 #18792 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:32 #18793 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:32 #18794 [Verbose] > │ ### v1 │
00:05:32 #18795 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:32 #18796 [Verbose] >
00:05:32 #18797 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:32 #18798 [Verbose] > inl v1 t =
00:05:32 #18799 [Verbose] > 2 *^ (t ** 2 *^ i_hat () ^+^ 3 *^ (t ** 3 *^ j_hat () ^+^ t ** 4 *^ k_hat
00:05:32 #18800 [Verbose] > ()))
00:05:33 #18801 [Verbose] >
00:05:33 #18802 [Verbose] > ╭─[ 258.84ms - stdout ]────────────────────────────────────────────────────────╮
00:05:33 #18803 [Verbose] > │ () │
00:05:33 #18804 [Verbose] > │ │
00:05:33 #18805 [Verbose] > │ │
00:05:33 #18806 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:33 #18807 [Verbose] >
00:05:33 #18808 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:33 #18809 [Verbose] > // // test
00:05:33 #18810 [Verbose] >
00:05:33 #18811 [Verbose] > v1 1
00:05:33 #18812 [Verbose] > |> _assert_eq (vec 2 6 6)
00:05:33 #18813 [Verbose] >
00:05:33 #18814 [Verbose] > ╭─[ 455.37ms - stdout ]────────────────────────────────────────────────────────╮
00:05:33 #18815 [Verbose] > │ let rec method0 () : unit = │
00:05:33 #18816 [Verbose] > │ let v0 : string = $"%A{struct (2.0, 6.0, 6.0)}" │
00:05:33 #18817 [Verbose] > │ System.Console.WriteLine v0 │
00:05:33 #18818 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (2.0, 6.0, 6.0)} / │
00:05:33 #18819 [Verbose] > │ expected: %A{struct (2.0, 6.0, 6.0)}" │
00:05:33 #18820 [Verbose] > │ () │
00:05:33 #18821 [Verbose] > │ method0() │
00:05:33 #18822 [Verbose] > │ │
00:05:33 #18823 [Verbose] > │ struct (2.0, 6.0, 6.0) │
00:05:33 #18824 [Verbose] > │ │
00:05:33 #18825 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:33 #18826 [Verbose] >
00:05:33 #18827 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:33 #18828 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:33 #18829 [Verbose] > │ ### vec_derivative │
00:05:33 #18830 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:33 #18831 [Verbose] >
00:05:33 #18832 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:33 #18833 [Verbose] > type vec_derivative = (f64 -> vec) -> f64 -> vec
00:05:33 #18834 [Verbose] >
00:05:33 #18835 [Verbose] > inl vec_derivative dt : vec_derivative =
00:05:33 #18836 [Verbose] > fun v t =>
00:05:33 #18837 [Verbose] > (v (t + dt / 2) ^-^ v (t - dt / 2)) ^/ dt
00:05:33 #18838 [Verbose] >
00:05:33 #18839 [Verbose] > ╭─[ 210.47ms - stdout ]────────────────────────────────────────────────────────╮
00:05:33 #18840 [Verbose] > │ () │
00:05:33 #18841 [Verbose] > │ │
00:05:33 #18842 [Verbose] > │ │
00:05:33 #18843 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:33 #18844 [Verbose] >
00:05:33 #18845 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:33 #18846 [Verbose] > // // test
00:05:33 #18847 [Verbose] >
00:05:33 #18848 [Verbose] > vec_derivative 0.01 v1 3 .x
00:05:33 #18849 [Verbose] > |> _assert_approx_eq None (derivative 0.01 (v1 >> fun v => v.x) 3)
00:05:34 #18850 [Verbose] >
00:05:34 #18851 [Verbose] > ╭─[ 277.15ms - stdout ]────────────────────────────────────────────────────────╮
00:05:34 #18852 [Verbose] > │ let rec method0 () : unit = │
00:05:34 #18853 [Verbose] > │ let v0 : string = $"%A{11.999999999999744}" │
00:05:34 #18854 [Verbose] > │ System.Console.WriteLine v0 │
00:05:34 #18855 [Verbose] > │ let v1 : string = $"__expect / actual: %A{11.999999999999744} / │
00:05:34 #18856 [Verbose] > │ expected: %A{11.999999999999744}" │
00:05:34 #18857 [Verbose] > │ () │
00:05:34 #18858 [Verbose] > │ method0() │
00:05:34 #18859 [Verbose] > │ │
00:05:34 #18860 [Verbose] > │ 12.0 │
00:05:34 #18861 [Verbose] > │ │
00:05:34 #18862 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:34 #18863 [Verbose] >
00:05:34 #18864 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:34 #18865 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:34 #18866 [Verbose] > │ ## states_ps │
00:05:34 #18867 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:34 #18868 [Verbose] >
00:05:34 #18869 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:34 #18870 [Verbose] > nominal particle_state =
00:05:34 #18871 [Verbose] > {
00:05:34 #18872 [Verbose] > mass : f64
00:05:34 #18873 [Verbose] > charge : f64
00:05:34 #18874 [Verbose] > time : f64
00:05:34 #18875 [Verbose] > pos_vec : vec
00:05:34 #18876 [Verbose] > velocity : vec
00:05:34 #18877 [Verbose] > }
00:05:34 #18878 [Verbose] >
00:05:34 #18879 [Verbose] > inl default_particle_state () : particle_state =
00:05:34 #18880 [Verbose] > particle_state {
00:05:34 #18881 [Verbose] > mass = 1
00:05:34 #18882 [Verbose] > charge = 0
00:05:34 #18883 [Verbose] > time = 0
00:05:34 #18884 [Verbose] > pos_vec = zero_vec ()
00:05:34 #18885 [Verbose] > velocity = zero_vec ()
00:05:34 #18886 [Verbose] > }
00:05:34 #18887 [Verbose] >
00:05:34 #18888 [Verbose] > type one_body_force = particle_state -> vec
00:05:34 #18889 [Verbose] >
00:05:34 #18890 [Verbose] > nominal d_particle_state =
00:05:34 #18891 [Verbose] > {
00:05:34 #18892 [Verbose] > dmdt : f64
00:05:34 #18893 [Verbose] > dqdt : f64
00:05:34 #18894 [Verbose] > dtdt : f64
00:05:34 #18895 [Verbose] > drdt : vec
00:05:34 #18896 [Verbose] > dvdt : vec
00:05:34 #18897 [Verbose] > }
00:05:34 #18898 [Verbose] >
00:05:34 #18899 [Verbose] > inl newton_second_ps (fs : list one_body_force) (st : particle_state) :
00:05:34 #18900 [Verbose] > d_particle_state =
00:05:34 #18901 [Verbose] > inl f_net = fs |> listm.map (fun f => f st) |> sum_vec
00:05:34 #18902 [Verbose] > d_particle_state {
00:05:34 #18903 [Verbose] > dmdt = 0
00:05:34 #18904 [Verbose] > dqdt = 0
00:05:34 #18905 [Verbose] > dtdt = 1
00:05:34 #18906 [Verbose] > drdt = st.velocity
00:05:34 #18907 [Verbose] > dvdt = f_net ^/ st.mass
00:05:34 #18908 [Verbose] > }
00:05:34 #18909 [Verbose] >
00:05:34 #18910 [Verbose] > inl earth_surface_gravity (st : particle_state) =
00:05:34 #18911 [Verbose] > inl g = 9.80665
00:05:34 #18912 [Verbose] > -st.mass * g *^ k_hat ()
00:05:34 #18913 [Verbose] >
00:05:34 #18914 [Verbose] > inl air_resistance drag rho area (st : particle_state) =
00:05:34 #18915 [Verbose] > -0.5 * drag * rho * area * magnitude st.velocity *^ st.velocity
00:05:34 #18916 [Verbose] >
00:05:34 #18917 [Verbose] > inl euler_cromer_ps dt (deriv : particle_state -> d_particle_state)
00:05:34 #18918 [Verbose] > (particle_state st) =
00:05:34 #18919 [Verbose] > inl dst : d_particle_state = deriv (particle_state st)
00:05:34 #18920 [Verbose] > inl v' = st.velocity ^+^ dst.dvdt ^* dt
00:05:34 #18921 [Verbose] > particle_state { st with
00:05:34 #18922 [Verbose] > time = st.time + dt
00:05:34 #18923 [Verbose] > pos_vec = st.pos_vec ^+^ v' ^* dt
00:05:34 #18924 [Verbose] > velocity = st.velocity ^+^ dst.dvdt ^* dt
00:05:34 #18925 [Verbose] > }
00:05:34 #18926 [Verbose] >
00:05:34 #18927 [Verbose] > instance (+++) d_particle_state = fun (dps : d_particle_state) (dps' :
00:05:34 #18928 [Verbose] > d_particle_state) =>
00:05:34 #18929 [Verbose] > d_particle_state {
00:05:34 #18930 [Verbose] > dmdt = dps.dmdt + dps'.dmdt
00:05:34 #18931 [Verbose] > dqdt = dps.dqdt + dps'.dqdt
00:05:34 #18932 [Verbose] > dtdt = dps.dtdt + dps'.dtdt
00:05:34 #18933 [Verbose] > drdt = dps.drdt ^+^ dps'.drdt
00:05:34 #18934 [Verbose] > dvdt = dps.dvdt ^+^ dps'.dvdt
00:05:34 #18935 [Verbose] > }
00:05:34 #18936 [Verbose] >
00:05:34 #18937 [Verbose] > instance scale d_particle_state = fun w (dps : d_particle_state) =>
00:05:34 #18938 [Verbose] > d_particle_state {
00:05:34 #18939 [Verbose] > dmdt = w * dps.dmdt
00:05:34 #18940 [Verbose] > dqdt = w * dps.dqdt
00:05:34 #18941 [Verbose] > dtdt = w * dps.dtdt
00:05:34 #18942 [Verbose] > drdt = w *^ dps.drdt
00:05:34 #18943 [Verbose] > dvdt = w *^ dps.dvdt
00:05:34 #18944 [Verbose] > }
00:05:34 #18945 [Verbose] >
00:05:34 #18946 [Verbose] > instance shift particle_state = fun dt dps (particle_state st) =>
00:05:34 #18947 [Verbose] > inl (d_particle_state dps) =
00:05:34 #18948 [Verbose] > real
00:05:34 #18949 [Verbose] > match dps with
00:05:34 #18950 [Verbose] > | d_particle_state _ => dps
00:05:34 #18951 [Verbose] > particle_state { st with
00:05:34 #18952 [Verbose] > time = st.time + dps.dtdt * dt
00:05:34 #18953 [Verbose] > pos_vec = st.pos_vec ^+^ dps.drdt ^* dt
00:05:34 #18954 [Verbose] > velocity = st.velocity ^+^ dps.dvdt ^* dt
00:05:34 #18955 [Verbose] > }
00:05:34 #18956 [Verbose] >
00:05:34 #18957 [Verbose] > inl states_ps (method : numerical_method particle_state d_particle_state) : _ ->
00:05:34 #18958 [Verbose] > _ -> i32 -> particle_state =
00:05:34 #18959 [Verbose] > newton_second_ps >> method >> seq.iterate_
00:05:34 #18960 [Verbose] >
00:05:34 #18961 [Verbose] > inl z_ge0 sts =
00:05:34 #18962 [Verbose] > sts
00:05:34 #18963 [Verbose] > |> seq.take_while_ (fun (particle_state st) _ => st.pos_vec.z >= 0)
00:05:34 #18964 [Verbose] >
00:05:34 #18965 [Verbose] > inl trajectory sts =
00:05:34 #18966 [Verbose] > sts |> listm.map (fun (particle_state st) => st.pos_vec.y, st.pos_vec.z)
00:05:34 #18967 [Verbose] >
00:05:34 #18968 [Verbose] > ╭─[ 258.86ms - stdout ]────────────────────────────────────────────────────────╮
00:05:34 #18969 [Verbose] > │ () │
00:05:34 #18970 [Verbose] > │ │
00:05:34 #18971 [Verbose] > │ │
00:05:34 #18972 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:34 #18973 [Verbose] >
00:05:34 #18974 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:34 #18975 [Verbose] > // // test
00:05:34 #18976 [Verbose] >
00:05:34 #18977 [Verbose] > inl update_ps (method : numerical_method particle_state d_particle_state) =
00:05:34 #18978 [Verbose] > newton_second_ps >> method
00:05:34 #18979 [Verbose] >
00:05:34 #18980 [Verbose] > inl position_ps (method : numerical_method particle_state d_particle_state) fs
00:05:34 #18981 [Verbose] > st t =
00:05:34 #18982 [Verbose] > inl states : i32 -> particle_state = states_ps method fs st
00:05:34 #18983 [Verbose] > inl dt = (states 1).time - (states 0).time
00:05:34 #18984 [Verbose] > inl num_steps = t / dt |> math.round |> abs
00:05:34 #18985 [Verbose] > inl st1 = solver' method (newton_second_ps fs) st num_steps
00:05:34 #18986 [Verbose] > st1.pos_vec
00:05:34 #18987 [Verbose] >
00:05:34 #18988 [Verbose] > inl sun_gravity (st : particle_state) : vec =
00:05:34 #18989 [Verbose] > inl big_g = 0.0000000000667408
00:05:34 #18990 [Verbose] > inl sun_mass = 1988480000000000000000000000000
00:05:34 #18991 [Verbose] > -big_g * sun_mass * st.mass *^ st.pos_vec ^/ magnitude st.pos_vec ** 3
00:05:34 #18992 [Verbose] >
00:05:34 #18993 [Verbose] > inl wind_force v_wind drag rho area (st : particle_state) =
00:05:34 #18994 [Verbose] > inl v_rel = st.velocity ^-^ v_wind
00:05:34 #18995 [Verbose] > -0.5 * drag * rho * area * magnitude v_rel *^ v_rel
00:05:34 #18996 [Verbose] >
00:05:34 #18997 [Verbose] > inl rock_state () =
00:05:34 #18998 [Verbose] > inl (particle_state default_particle_state') = default_particle_state ()
00:05:34 #18999 [Verbose] > particle_state { default_particle_state' with
00:05:34 #19000 [Verbose] > mass = 2
00:05:34 #19001 [Verbose] > velocity = vec 3 0 4
00:05:34 #19002 [Verbose] > }
00:05:34 #19003 [Verbose] >
00:05:34 #19004 [Verbose] > inl halley_update dt =
00:05:34 #19005 [Verbose] > update_ps (euler_cromer_ps dt) [[ sun_gravity ]]
00:05:34 #19006 [Verbose] >
00:05:34 #19007 [Verbose] > inl halley_initial () =
00:05:34 #19008 [Verbose] > inl (particle_state default_particle_state') = default_particle_state ()
00:05:34 #19009 [Verbose] > particle_state { default_particle_state' with
00:05:34 #19010 [Verbose] > mass = 220000000000000
00:05:34 #19011 [Verbose] > pos_vec = 87660000000 *^ i_hat ()
00:05:34 #19012 [Verbose] > velocity = 54569 *^ j_hat ()
00:05:34 #19013 [Verbose] > }
00:05:34 #19014 [Verbose] >
00:05:34 #19015 [Verbose] > ╭─[ 251.65ms - stdout ]────────────────────────────────────────────────────────╮
00:05:34 #19016 [Verbose] > │ () │
00:05:34 #19017 [Verbose] > │ │
00:05:34 #19018 [Verbose] > │ │
00:05:34 #19019 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:34 #19020 [Verbose] >
00:05:34 #19021 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:34 #19022 [Verbose] > // // test
00:05:34 #19023 [Verbose] >
00:05:34 #19024 [Verbose] > inl baseball_forces () =
00:05:34 #19025 [Verbose] > inl area = pi * (0.074 / 2) ** 2
00:05:34 #19026 [Verbose] > [[
00:05:34 #19027 [Verbose] > earth_surface_gravity
00:05:34 #19028 [Verbose] > air_resistance 0.3 1.225 area
00:05:34 #19029 [Verbose] > ]]
00:05:34 #19030 [Verbose] >
00:05:34 #19031 [Verbose] > inl baseball_trajectory dt v0 theta_deg =
00:05:34 #19032 [Verbose] > inl theta_rad = theta_deg * pi / 180
00:05:34 #19033 [Verbose] > inl vy0 = v0 * cos theta_rad
00:05:34 #19034 [Verbose] > inl vz0 = v0 * sin theta_rad
00:05:34 #19035 [Verbose] > inl initial_state =
00:05:34 #19036 [Verbose] > particle_state {
00:05:34 #19037 [Verbose] > mass = 0.145
00:05:34 #19038 [Verbose] > charge = 0
00:05:34 #19039 [Verbose] > time = 0
00:05:34 #19040 [Verbose] > pos_vec = zero_vec ()
00:05:34 #19041 [Verbose] > velocity = vec 0 vy0 vz0
00:05:34 #19042 [Verbose] > }
00:05:34 #19043 [Verbose] > states_ps (euler_cromer_ps dt) (baseball_forces ()) initial_state
00:05:34 #19044 [Verbose] > >> Some
00:05:34 #19045 [Verbose] > |> z_ge0
00:05:34 #19046 [Verbose] > |> trajectory
00:05:34 #19047 [Verbose] >
00:05:34 #19048 [Verbose] > inl baseball_range dt v0 theta_deg =
00:05:34 #19049 [Verbose] > baseball_trajectory dt v0 theta_deg
00:05:34 #19050 [Verbose] > |> listm.fold (fun _ (y, _) => y) 0
00:05:34 #19051 [Verbose] >
00:05:34 #19052 [Verbose] > inl x : a _ f64 = am'.init_series 10 80 1
00:05:34 #19053 [Verbose] > inl y = x |> am.map (baseball_range 0.01 45)
00:05:34 #19054 [Verbose] > "range for a baseball hit at 45 m/s",
00:05:34 #19055 [Verbose] > "angle above horizontal (degrees)",
00:05:34 #19056 [Verbose] > "",
00:05:34 #19057 [Verbose] > ;[[ "horizontal range (m)", x, y ]]
00:05:35 #19058 [Verbose] >
00:05:35 #19059 [Verbose] > ╭─[ 835.62ms - return value ]──────────────────────────────────────────────────╮
00:05:35 #19060 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:05:35 #19061 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:05:35 #19062 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:05:35 #19063 [Verbose] > │ stroke="none"/> │
00:05:35 #19064 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:05:35 #19065 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:05:35 #19066 [Verbose] > │ fill="#FFFFFF"> │
00:05:35 #19067 [Verbose] > │ range for a baseball hit at 45 m/s │
00:05:35 #19068 [Verbose] > │ </text> │
00:05:35 #19069 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="55" y1="424" x2="55" │
00:05:35 #19070 [Verbose] > │ y2="75"/> │
00:05:35 #19071 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="62" y1="424" x2="62" │
00:05:35 #19072 [Verbose] > │ y2="75"/> │
00:05:35 #19073 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:05:35 #19074 [Verbose] > │ y2="75"/> │
00:05:35 #19075 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="77" y1="424" x2="77" │
00:05:35 #19076 [Verbose] > │ y2="75"/> │
00:05:35 #19077 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="... │
00:05:35 #19078 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:35 #19079 [Verbose] >
00:05:35 #19080 [Verbose] > ╭─[ 845.85ms - stdout ]────────────────────────────────────────────────────────╮
00:05:35 #19081 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:05:35 #19082 [Verbose] > │ and UH0 = │
00:05:35 #19083 [Verbose] > │ | UH0_0 of float * float * float * float * float * float * float * float │
00:05:35 #19084 [Verbose] > │ * float * UH0 │
00:05:35 #19085 [Verbose] > │ | UH0_1 │
00:05:35 #19086 [Verbose] > │ and UH1 = │
00:05:35 #19087 [Verbose] > │ | UH1_0 of float * float * UH1 │
00:05:35 #19088 [Verbose] > │ | UH1_1 │
00:05:35 #19089 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:05:35 #19090 [Verbose] > │ let v1 : int32 = v0.l0 │
00:05:35 #19091 [Verbose] > │ let v2 : bool = v1 < 71 │
00:05:35 #19092 [Verbose] > │ v2 │
00:05:35 #19093 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool = │
00:05:35 #19094 [Verbose] > │ let v2 : int32 = v1.l0 │
00:05:35 #19095 [Verbose] > │ let v3 : bool = v2 < v0 │
00:05:35 #19096 [Verbose] > │ v3 │
00:05:35 #19097 [Verbose] > │ and method4 (v0 : float, v1 : float, v2 : float, v3 : float, v4 : float, v5 │
00:05:35 #19098 [Verbose] > │ : float, v6 : float, v7 : float, v8 : float, v9 : int32) : struct (float * │
00:05:35 #19099 [Verbose] > │ float * float * float * float * float * float * float * float) = │
00:05:35 #19100 [Verbose] > │ let v10 : bool = v9 <= 0 │
00:05:35 #19101 [Verbose] > │ if v10 then │
00:05:35 #19102 [Verbose] > │ struct (v0, v1, v2, v3, v4, v5, v6, v7, v8) │
00:05:35 #19103 [Verbose] > │ else │
00:05:35 #19104 [Verbose] > │ let v11 : float = v6 * v6 │
00:05:35 #19105 [Verbose] > │ let v12 : float = v7 * v7 │
00:05:35 #19106 [Verbose] > │ let v13 : float = v11 + v12 │
00:05:35 #19107 [Verbose] > │ let v14 : float = v8 * v8 │
00:05:35 #19108 [Verbose] > │ let v15 : float = v13 + v14 │
00:05:35 #19109 [Verbose] > │ let v16 : float = sqrt v15 │
00:05:35 #19110 [Verbose] > │ let v17 : float = -0.0007902794129829633 * v16 │
00:05:35 #19111 [Verbose] > │ let v18 : float = v17 * v6 │
00:05:35 #19112 [Verbose] > │ let v19 : float = v17 * v7 │
00:05:35 #19113 [Verbose] > │ let v20 : float = v17 * v8 │
00:05:35 #19114 [Verbose] > │ let v21 : float = -v1 │
00:05:35 #19115 [Verbose] > │ let v22 : float = v21 * 9.80665 │
00:05:35 #19116 [Verbose] > │ let v23 : float = v22 * 0.0 │
00:05:35 #19117 [Verbose] > │ let v24 : float = v23 + v18 │
00:05:35 #19118 [Verbose] > │ let v25 : float = v23 + v19 │
00:05:35 #19119 [Verbose] > │ let v26 : float = v22 + v20 │
00:05:35 #19120 [Verbose] > │ let v27 : float = v24 / v1 │
00:05:35 #19121 [Verbose] > │ let v28 : float = v25 / v1 │
00:05:35 #19122 [Verbose] > │ let v29 : float = v26 / v1 │
00:05:35 #19123 [Verbose] > │ let v30 : float = 0.01 * v27 │
00:05:35 #19124 [Verbose] > │ let v31 : float = 0.01 * v28 │
00:05:35 #19125 [Verbose] > │ let v32 : float = 0.01 * v29 │
00:05:35 #19126 [Verbose] > │ let v33 : float = v6 + v30 │
00:05:35 #19127 [Verbose] > │ let v34 : float = v7 + v31 │
00:05:35 #19128 [Verbose] > │ let v35 : float = v8 + v32 │
00:05:35 #19129 [Verbose] > │ let v36 : float = v5 + 0.01 │
00:05:35 #19130 [Verbose] > │ let v37 : float = 0.01 * v33 │
00:05:35 #19131 [Verbose] > │ let v38 : float = 0.01 * v34 │
00:05:35 #19132 [Verbose] > │ let v39 : float = 0.01 * v35 │
00:05:35 #19133 [Verbose] > │ let v40 : float = v2 + v37 │
00:05:35 #19134 [Verbose] > │ let v41 : float = v3 + v38 │
00:05:35 #19135 [Verbose] > │ let v42 : float = v4 + v39 │
00:05:35 #19136 [Verbose] > │ let v43 : int32 = v9 - 1 │
00:05:35 #19137 [Verbose] > │ method4(v0, v1, v40, v41, v42, v36, v33, v34, v35, v43) │
00:05:35 #19138 [Verbose] > │ and method5 (v0 : UH0, v1 : UH0) : UH0 = │
00:05:35 #19139 [Verbose] > │ match v0 with │
00:05:35 #19140 [Verbose] > │ | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *) │
00:05:35 #19141 [Verbose] > │ let v12 : UH0 = UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v1) │
00:05:35 #19142 [Verbose] > │ method5(v11, v12) │
00:05:35 #19143 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:05:35 #19144 [Verbose] > │ v1 │
00:05:35 #19145 [Verbose] > │ and method3 (v0 : float, v1 : float, v2 : UH0, v3 : int32) : UH0 = │
00:05:35 #19146 [Verbose] > │ let v4 : float = 0.0 │
00:05:35 #19147 [Verbose] > │ let v5 : float = 0.145 │
00:05:35 #19148 [Verbose] > │ let v6 : float = 0.0 │
00:05:35 #19149 [Verbose] > │ let v7 : float = 0.0 │
00:05:35 #19150 [Verbose] > │ let v8 : float = 0.0 │
00:05:35 #19151 [Verbose] > │ let v9 : float = 0.0 │
00:05:35 #19152 [Verbose] > │ let v10 : float = 0.0 │
00:05:35 #19153 [Verbose] > │ let struct (v11 : float, v12 : float, v13 : float, v14 : float, v15 : │
00:05:35 #19154 [Verbose] > │ float, v16 : float, v17 : float, v18 : float, v19 : float) = method4(v4, v5, │
00:05:35 #19155 [Verbose] > │ v6, v7, v8, v9, v10, v0, v1, v3) │
00:05:35 #19156 [Verbose] > │ let v20 : bool = v15 >= 0.0 │
00:05:35 #19157 [Verbose] > │ if v20 then │
00:05:35 #19158 [Verbose] > │ let v21 : UH0 = UH0_0(v11, v12, v13, v14, v15, v16, v17, v18, v19, │
00:05:35 #19159 [Verbose] > │ v2) │
00:05:35 #19160 [Verbose] > │ let v22 : int32 = v3 + 1 │
00:05:35 #19161 [Verbose] > │ method3(v0, v1, v21, v22) │
00:05:35 #19162 [Verbose] > │ else │
00:05:35 #19163 [Verbose] > │ let v24 : UH0 = UH0_1 │
00:05:35 #19164 [Verbose] > │ method5(v2, v24) │
00:05:35 #19165 [Verbose] > │ and method6 (v0 : UH0, v1 : UH1) : UH1 = │
00:05:35 #19166 [Verbose] > │ match v0 with │
00:05:35 #19167 [Verbose] > │ | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *) │
00:05:35 #19168 [Verbose] > │ let v12 : UH1 = method6(v11, v1) │
00:05:35 #19169 [Verbose] > │ UH1_0(v5, v6, v12) │
00:05:35 #19170 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:05:35 #19171 [Verbose] > │ v1 │
00:05:35 #19172 [Verbose] > │ and method7 (v0 : UH1, v1 : float) : float = │
00:05:35 #19173 [Verbose] > │ match v0 with │
00:05:35 #19174 [Verbose] > │ | UH1_0(v2, v3, v4) -> (* Cons *) │
00:05:35 #19175 [Verbose] > │ method7(v4, v2) │
00:05:35 #19176 [Verbose] > │ | UH1_1 -> (* Nil *) │
00:05:35 #19177 [Verbose] > │ v1 │
00:05:35 #19178 [Verbose] > │ and method8 (v0 : (struct (string * (float []) * (float [])) [])) : (struct │
00:05:35 #19179 [Verbose] > │ (string * (float []) * (float [])) []) = │
00:05:35 #19180 [Verbose] > │ v0 │
00:05:35 #19181 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:05:35 #19182 [Verbose] > │ []) * (float [])) [])) = │
00:05:35 #19183 [Verbose] > │ let v0 : (float []) = Array.zeroCreate<float> (71) │
00:05:35 #19184 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:05:35 #19185 [Verbose] > │ while method1(v1) do │
00:05:35 #19186 [Verbose] > │ let v3 : int32 = v1.l0 │
00:05:35 #19187 [Verbose] > │ let v4 : float = float v3 │
00:05:35 #19188 [Verbose] > │ let v5 : float = 10.0 + v4 │
00:05:35 #19189 [Verbose] > │ v0.[int v3] <- v5 │
00:05:35 #19190 [Verbose] > │ let v6 : int32 = v3 + 1 │
00:05:35 #19191 [Verbose] > │ v1.l0 <- v6 │
00:05:35 #19192 [Verbose] > │ () │
00:05:35 #19193 [Verbose] > │ let v7 : int32 = v0.Length │
00:05:35 #19194 [Verbose] > │ let v8 : (float []) = Array.zeroCreate<float> (v7) │
00:05:35 #19195 [Verbose] > │ let v9 : Mut0 = {l0 = 0} : Mut0 │
00:05:35 #19196 [Verbose] > │ while method2(v7, v9) do │
00:05:35 #19197 [Verbose] > │ let v11 : int32 = v9.l0 │
00:05:35 #19198 [Verbose] > │ let v12 : float = v0.[int v11] │
00:05:35 #19199 [Verbose] > │ let v13 : float = v12 * 3.141592653589793 │
00:05:35 #19200 [Verbose] > │ let v14 : float = v13 / 180.0 │
00:05:35 #19201 [Verbose] > │ let v15 : float = cos v14 │
00:05:35 #19202 [Verbose] > │ let v16 : float = 45.0 * v15 │
00:05:35 #19203 [Verbose] > │ let v17 : float = sin v14 │
00:05:35 #19204 [Verbose] > │ let v18 : float = 45.0 * v17 │
00:05:35 #19205 [Verbose] > │ let v19 : UH0 = UH0_1 │
00:05:35 #19206 [Verbose] > │ let v20 : int32 = 0 │
00:05:35 #19207 [Verbose] > │ let v21 : UH0 = method3(v16, v18, v19, v20) │
00:05:35 #19208 [Verbose] > │ let v22 : UH1 = UH1_1 │
00:05:35 #19209 [Verbose] > │ let v23 : UH1 = method6(v21, v22) │
00:05:35 #19210 [Verbose] > │ let v24 : float = 0.0 │
00:05:35 #19211 [Verbose] > │ let v25 : float = method7(v23, v24) │
00:05:35 #19212 [Verbose] > │ v8.[int v11] <- v25 │
00:05:35 #19213 [Verbose] > │ let v26 : int32 = v11 + 1 │
00:05:35 #19214 [Verbose] > │ v9.l0 <- v26 │
00:05:35 #19215 [Verbose] > │ () │
00:05:35 #19216 [Verbose] > │ let v27 : string = "horizontal range (m)" │
00:05:35 #19217 [Verbose] > │ let v28 : (struct (string * (float []) * (float [])) []) = [|struct │
00:05:35 #19218 [Verbose] > │ (v27, v0, v8)|] │
00:05:35 #19219 [Verbose] > │ let v29 : (struct (string * (float []) * (float [])) []) = method8(v28) │
00:05:35 #19220 [Verbose] > │ let v30 : string = "range for a baseball hit at 45 m/s" │
00:05:35 #19221 [Verbose] > │ let v31 : string = "angle above horizontal (degrees)" │
00:05:35 #19222 [Verbose] > │ let v32 : string = "" │
00:05:35 #19223 [Verbose] > │ struct (v30, v31, v32, v29) │
00:05:35 #19224 [Verbose] > │ method0() │
00:05:35 #19225 [Verbose] > │ │
00:05:35 #19226 [Verbose] > │ │
00:05:35 #19227 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:35 #19228 [Verbose] >
00:05:35 #19229 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:35 #19230 [Verbose] > // // test
00:05:35 #19231 [Verbose] >
00:05:35 #19232 [Verbose] > inl best_angle (min, max) =
00:05:35 #19233 [Verbose] > let rec loop theta_deg (best_range, best_theta_deg) =
00:05:35 #19234 [Verbose] > if theta_deg > max
00:05:35 #19235 [Verbose] > then best_range, best_theta_deg
00:05:35 #19236 [Verbose] > else
00:05:35 #19237 [Verbose] > inl range = baseball_range 0.01 45 theta_deg
00:05:35 #19238 [Verbose] > loop
00:05:35 #19239 [Verbose] > (theta_deg + 1)
00:05:35 #19240 [Verbose] > (if range > best_range
00:05:35 #19241 [Verbose] > then range, theta_deg
00:05:35 #19242 [Verbose] > else best_range, best_theta_deg)
00:05:35 #19243 [Verbose] > loop min (0f64, min)
00:05:35 #19244 [Verbose] >
00:05:35 #19245 [Verbose] > best_angle (30f64, 60f64)
00:05:35 #19246 [Verbose] > |> _assert_eq (116.77499158246208, 41)
00:05:36 #19247 [Verbose] >
00:05:36 #19248 [Verbose] > ╭─[ 609.40ms - stdout ]────────────────────────────────────────────────────────╮
00:05:36 #19249 [Verbose] > │ type UH0 = │
00:05:36 #19250 [Verbose] > │ | UH0_0 of float * float * float * float * float * float * float * float │
00:05:36 #19251 [Verbose] > │ * float * UH0 │
00:05:36 #19252 [Verbose] > │ | UH0_1 │
00:05:36 #19253 [Verbose] > │ and UH1 = │
00:05:36 #19254 [Verbose] > │ | UH1_0 of float * float * UH1 │
00:05:36 #19255 [Verbose] > │ | UH1_1 │
00:05:36 #19256 [Verbose] > │ let rec method3 (v0 : float, v1 : float, v2 : float, v3 : float, v4 : float, │
00:05:36 #19257 [Verbose] > │ v5 : float, v6 : float, v7 : float, v8 : float, v9 : int32) : struct (float │
00:05:36 #19258 [Verbose] > │ * float * float * float * float * float * float * float * float) = │
00:05:36 #19259 [Verbose] > │ let v10 : bool = v9 <= 0 │
00:05:36 #19260 [Verbose] > │ if v10 then │
00:05:36 #19261 [Verbose] > │ struct (v0, v1, v2, v3, v4, v5, v6, v7, v8) │
00:05:36 #19262 [Verbose] > │ else │
00:05:36 #19263 [Verbose] > │ let v11 : float = v6 * v6 │
00:05:36 #19264 [Verbose] > │ let v12 : float = v7 * v7 │
00:05:36 #19265 [Verbose] > │ let v13 : float = v11 + v12 │
00:05:36 #19266 [Verbose] > │ let v14 : float = v8 * v8 │
00:05:36 #19267 [Verbose] > │ let v15 : float = v13 + v14 │
00:05:36 #19268 [Verbose] > │ let v16 : float = sqrt v15 │
00:05:36 #19269 [Verbose] > │ let v17 : float = -0.0007902794129829633 * v16 │
00:05:36 #19270 [Verbose] > │ let v18 : float = v17 * v6 │
00:05:36 #19271 [Verbose] > │ let v19 : float = v17 * v7 │
00:05:36 #19272 [Verbose] > │ let v20 : float = v17 * v8 │
00:05:36 #19273 [Verbose] > │ let v21 : float = -v1 │
00:05:36 #19274 [Verbose] > │ let v22 : float = v21 * 9.80665 │
00:05:36 #19275 [Verbose] > │ let v23 : float = v22 * 0.0 │
00:05:36 #19276 [Verbose] > │ let v24 : float = v23 + v18 │
00:05:36 #19277 [Verbose] > │ let v25 : float = v23 + v19 │
00:05:36 #19278 [Verbose] > │ let v26 : float = v22 + v20 │
00:05:36 #19279 [Verbose] > │ let v27 : float = v24 / v1 │
00:05:36 #19280 [Verbose] > │ let v28 : float = v25 / v1 │
00:05:36 #19281 [Verbose] > │ let v29 : float = v26 / v1 │
00:05:36 #19282 [Verbose] > │ let v30 : float = 0.01 * v27 │
00:05:36 #19283 [Verbose] > │ let v31 : float = 0.01 * v28 │
00:05:36 #19284 [Verbose] > │ let v32 : float = 0.01 * v29 │
00:05:36 #19285 [Verbose] > │ let v33 : float = v6 + v30 │
00:05:36 #19286 [Verbose] > │ let v34 : float = v7 + v31 │
00:05:36 #19287 [Verbose] > │ let v35 : float = v8 + v32 │
00:05:36 #19288 [Verbose] > │ let v36 : float = v5 + 0.01 │
00:05:36 #19289 [Verbose] > │ let v37 : float = 0.01 * v33 │
00:05:36 #19290 [Verbose] > │ let v38 : float = 0.01 * v34 │
00:05:36 #19291 [Verbose] > │ let v39 : float = 0.01 * v35 │
00:05:36 #19292 [Verbose] > │ let v40 : float = v2 + v37 │
00:05:36 #19293 [Verbose] > │ let v41 : float = v3 + v38 │
00:05:36 #19294 [Verbose] > │ let v42 : float = v4 + v39 │
00:05:36 #19295 [Verbose] > │ let v43 : int32 = v9 - 1 │
00:05:36 #19296 [Verbose] > │ method3(v0, v1, v40, v41, v42, v36, v33, v34, v35, v43) │
00:05:36 #19297 [Verbose] > │ and method4 (v0 : UH0, v1 : UH0) : UH0 = │
00:05:36 #19298 [Verbose] > │ match v0 with │
00:05:36 #19299 [Verbose] > │ | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *) │
00:05:36 #19300 [Verbose] > │ let v12 : UH0 = UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v1) │
00:05:36 #19301 [Verbose] > │ method4(v11, v12) │
00:05:36 #19302 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:05:36 #19303 [Verbose] > │ v1 │
00:05:36 #19304 [Verbose] > │ and method2 (v0 : float, v1 : float, v2 : UH0, v3 : int32) : UH0 = │
00:05:36 #19305 [Verbose] > │ let v4 : float = 0.0 │
00:05:36 #19306 [Verbose] > │ let v5 : float = 0.145 │
00:05:36 #19307 [Verbose] > │ let v6 : float = 0.0 │
00:05:36 #19308 [Verbose] > │ let v7 : float = 0.0 │
00:05:36 #19309 [Verbose] > │ let v8 : float = 0.0 │
00:05:36 #19310 [Verbose] > │ let v9 : float = 0.0 │
00:05:36 #19311 [Verbose] > │ let v10 : float = 0.0 │
00:05:36 #19312 [Verbose] > │ let struct (v11 : float, v12 : float, v13 : float, v14 : float, v15 : │
00:05:36 #19313 [Verbose] > │ float, v16 : float, v17 : float, v18 : float, v19 : float) = method3(v4, v5, │
00:05:36 #19314 [Verbose] > │ v6, v7, v8, v9, v10, v0, v1, v3) │
00:05:36 #19315 [Verbose] > │ let v20 : bool = v15 >= 0.0 │
00:05:36 #19316 [Verbose] > │ if v20 then │
00:05:36 #19317 [Verbose] > │ let v21 : UH0 = UH0_0(v11, v12, v13, v14, v15, v16, v17, v18, v19, │
00:05:36 #19318 [Verbose] > │ v2) │
00:05:36 #19319 [Verbose] > │ let v22 : int32 = v3 + 1 │
00:05:36 #19320 [Verbose] > │ method2(v0, v1, v21, v22) │
00:05:36 #19321 [Verbose] > │ else │
00:05:36 #19322 [Verbose] > │ let v24 : UH0 = UH0_1 │
00:05:36 #19323 [Verbose] > │ method4(v2, v24) │
00:05:36 #19324 [Verbose] > │ and method5 (v0 : UH0, v1 : UH1) : UH1 = │
00:05:36 #19325 [Verbose] > │ match v0 with │
00:05:36 #19326 [Verbose] > │ | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *) │
00:05:36 #19327 [Verbose] > │ let v12 : UH1 = method5(v11, v1) │
00:05:36 #19328 [Verbose] > │ UH1_0(v5, v6, v12) │
00:05:36 #19329 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:05:36 #19330 [Verbose] > │ v1 │
00:05:36 #19331 [Verbose] > │ and method6 (v0 : UH1, v1 : float) : float = │
00:05:36 #19332 [Verbose] > │ match v0 with │
00:05:36 #19333 [Verbose] > │ | UH1_0(v2, v3, v4) -> (* Cons *) │
00:05:36 #19334 [Verbose] > │ method6(v4, v2) │
00:05:36 #19335 [Verbose] > │ | UH1_1 -> (* Nil *) │
00:05:36 #19336 [Verbose] > │ v1 │
00:05:36 #19337 [Verbose] > │ and method1 (v0 : float, v1 : float, v2 : float) : struct (float * float) = │
00:05:36 #19338 [Verbose] > │ let v3 : bool = v0 > 60.0 │
00:05:36 #19339 [Verbose] > │ if v3 then │
00:05:36 #19340 [Verbose] > │ struct (v2, v1) │
00:05:36 #19341 [Verbose] > │ else │
00:05:36 #19342 [Verbose] > │ let v4 : float = v0 * 3.141592653589793 │
00:05:36 #19343 [Verbose] > │ let v5 : float = v4 / 180.0 │
00:05:36 #19344 [Verbose] > │ let v6 : float = cos v5 │
00:05:36 #19345 [Verbose] > │ let v7 : float = 45.0 * v6 │
00:05:36 #19346 [Verbose] > │ let v8 : float = sin v5 │
00:05:36 #19347 [Verbose] > │ let v9 : float = 45.0 * v8 │
00:05:36 #19348 [Verbose] > │ let v10 : UH0 = UH0_1 │
00:05:36 #19349 [Verbose] > │ let v11 : int32 = 0 │
00:05:36 #19350 [Verbose] > │ let v12 : UH0 = method2(v7, v9, v10, v11) │
00:05:36 #19351 [Verbose] > │ let v13 : UH1 = UH1_1 │
00:05:36 #19352 [Verbose] > │ let v14 : UH1 = method5(v12, v13) │
00:05:36 #19353 [Verbose] > │ let v15 : float = 0.0 │
00:05:36 #19354 [Verbose] > │ let v16 : float = method6(v14, v15) │
00:05:36 #19355 [Verbose] > │ let v17 : float = v0 + 1.0 │
00:05:36 #19356 [Verbose] > │ let v18 : bool = v16 > v2 │
00:05:36 #19357 [Verbose] > │ let struct (v19 : float, v20 : float) = │
00:05:36 #19358 [Verbose] > │ if v18 then │
00:05:36 #19359 [Verbose] > │ struct (v16, v0) │
00:05:36 #19360 [Verbose] > │ else │
00:05:36 #19361 [Verbose] > │ struct (v2, v1) │
00:05:36 #19362 [Verbose] > │ method1(v17, v20, v19) │
00:05:36 #19363 [Verbose] > │ and method7 (v0 : bool) : bool = │
00:05:36 #19364 [Verbose] > │ v0 │
00:05:36 #19365 [Verbose] > │ and method0 () : unit = │
00:05:36 #19366 [Verbose] > │ let v0 : float = 30.0 │
00:05:36 #19367 [Verbose] > │ let v1 : float = 0.0 │
00:05:36 #19368 [Verbose] > │ let v2 : float = 30.0 │
00:05:36 #19369 [Verbose] > │ let struct (v3 : float, v4 : float) = method1(v0, v2, v1) │
00:05:36 #19370 [Verbose] > │ let v5 : string = $"%A{struct (v3, v4)}" │
00:05:36 #19371 [Verbose] > │ System.Console.WriteLine v5 │
00:05:36 #19372 [Verbose] > │ let v6 : bool = v3 = 116.77499158246208 │
00:05:36 #19373 [Verbose] > │ let v8 : bool = │
00:05:36 #19374 [Verbose] > │ if v6 then │
00:05:36 #19375 [Verbose] > │ let v7 : bool = v4 = 41.0 │
00:05:36 #19376 [Verbose] > │ v7 │
00:05:36 #19377 [Verbose] > │ else │
00:05:36 #19378 [Verbose] > │ false │
00:05:36 #19379 [Verbose] > │ let v10 : bool = │
00:05:36 #19380 [Verbose] > │ if v8 then │
00:05:36 #19381 [Verbose] > │ true │
00:05:36 #19382 [Verbose] > │ else │
00:05:36 #19383 [Verbose] > │ method7(v8) │
00:05:36 #19384 [Verbose] > │ let v11 : string = $"__expect / actual: %A{struct (v3, v4)} / expected: │
00:05:36 #19385 [Verbose] > │ %A{struct (116.77499158246208, 41.0)}" │
00:05:36 #19386 [Verbose] > │ let v12 : bool = v10 = false │
00:05:36 #19387 [Verbose] > │ if v12 then │
00:05:36 #19388 [Verbose] > │ failwith<unit> v11 │
00:05:36 #19389 [Verbose] > │ method0() │
00:05:36 #19390 [Verbose] > │ │
00:05:36 #19391 [Verbose] > │ struct (116.7749916, 41.0) │
00:05:36 #19392 [Verbose] > │ │
00:05:36 #19393 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:36 #19394 [Verbose] >
00:05:36 #19395 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:36 #19396 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:36 #19397 [Verbose] > │ ## relativity_ps │
00:05:36 #19398 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:36 #19399 [Verbose] >
00:05:36 #19400 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:36 #19401 [Verbose] > inl relativity_ps fs (st : particle_state) =
00:05:36 #19402 [Verbose] > inl f_net = fs |> listm.map (fun f => f st) |> sum_vec
00:05:36 #19403 [Verbose] > inl c = 299792458
00:05:36 #19404 [Verbose] > inl u = st.velocity ^/ c
00:05:36 #19405 [Verbose] > inl acc = sqrt (1 - (u <.> u)) *^ (f_net ^-^ (f_net <.> u) *^ u) ^/ st.mass
00:05:36 #19406 [Verbose] > d_particle_state {
00:05:36 #19407 [Verbose] > dmdt = 0
00:05:36 #19408 [Verbose] > dqdt = 0
00:05:36 #19409 [Verbose] > dtdt = 1
00:05:36 #19410 [Verbose] > drdt = st.velocity
00:05:36 #19411 [Verbose] > dvdt = acc
00:05:36 #19412 [Verbose] > }
00:05:36 #19413 [Verbose] >
00:05:36 #19414 [Verbose] > ╭─[ 315.96ms - stdout ]────────────────────────────────────────────────────────╮
00:05:36 #19415 [Verbose] > │ () │
00:05:36 #19416 [Verbose] > │ │
00:05:36 #19417 [Verbose] > │ │
00:05:36 #19418 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:36 #19419 [Verbose] >
00:05:36 #19420 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:36 #19421 [Verbose] > // // test
00:05:36 #19422 [Verbose] >
00:05:36 #19423 [Verbose] > inl year = 365.25 * 24 * 60 * 60
00:05:36 #19424 [Verbose] > inl c = 299792458
00:05:36 #19425 [Verbose] > inl ~method = runge_kutta_4 100000
00:05:36 #19426 [Verbose] > inl forces = [[ fun _ => 10 *^ i_hat () ]]
00:05:36 #19427 [Verbose] > inl (particle_state default_particle_state') = default_particle_state ()
00:05:36 #19428 [Verbose] > inl initial_state =
00:05:36 #19429 [Verbose] > particle_state { default_particle_state' with
00:05:36 #19430 [Verbose] > mass = 1
00:05:36 #19431 [Verbose] > }
00:05:36 #19432 [Verbose] >
00:05:36 #19433 [Verbose] > inl newton_states = solver_ method (newton_second_ps forces) initial_state
00:05:36 #19434 [Verbose] > inl relativity_states = solver_ method (relativity_ps forces) initial_state
00:05:36 #19435 [Verbose] >
00:05:36 #19436 [Verbose] > inl newton_x, newton_y =
00:05:36 #19437 [Verbose] > newton_states
00:05:36 #19438 [Verbose] > >> Some
00:05:36 #19439 [Verbose] > |> seq.take_while_ (fun (particle_state st) (_ : i32) => st.time <= year)
00:05:36 #19440 [Verbose] > |> listm.map (fun (particle_state st) => st.time / year, st.velocity.x / c)
00:05:36 #19441 [Verbose] > |> listm'.unzip
00:05:36 #19442 [Verbose] >
00:05:36 #19443 [Verbose] > inl _, relativity_y =
00:05:36 #19444 [Verbose] > relativity_states
00:05:36 #19445 [Verbose] > >> Some
00:05:36 #19446 [Verbose] > |> seq.take_while_ (fun (particle_state st) (_ : i32) => st.time <= year)
00:05:36 #19447 [Verbose] > |> listm.map (fun (particle_state st) => st.time / year, st.velocity.x / c)
00:05:36 #19448 [Verbose] > |> listm'.unzip
00:05:36 #19449 [Verbose] >
00:05:36 #19450 [Verbose] > inl newton_x : a i32 _ = newton_x |> listm.toArray
00:05:36 #19451 [Verbose] > inl newton_y : a i32 _ = newton_y |> listm.toArray
00:05:36 #19452 [Verbose] > inl relativity_y : a i32 _ = relativity_y |> listm.toArray
00:05:36 #19453 [Verbose] >
00:05:36 #19454 [Verbose] > "response to a constant force",
00:05:36 #19455 [Verbose] > "time (years)",
00:05:36 #19456 [Verbose] > "velocity (multiples of c)",
00:05:36 #19457 [Verbose] > ;[[
00:05:36 #19458 [Verbose] > "newtonian", newton_x, newton_y
00:05:36 #19459 [Verbose] > "relativistic", newton_x, relativity_y
00:05:36 #19460 [Verbose] > ]]
00:05:37 #19461 [Verbose] >
00:05:37 #19462 [Verbose] > ╭─[ 573.49ms - return value ]──────────────────────────────────────────────────╮
00:05:37 #19463 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:05:37 #19464 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:05:37 #19465 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:05:37 #19466 [Verbose] > │ stroke="none"/> │
00:05:37 #19467 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:05:37 #19468 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:05:37 #19469 [Verbose] > │ fill="#FFFFFF"> │
00:05:37 #19470 [Verbose] > │ response to a constant force │
00:05:37 #19471 [Verbose] > │ </text> │
00:05:37 #19472 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" y1="424" x2="59" │
00:05:37 #19473 [Verbose] > │ y2="75"/> │
00:05:37 #19474 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:05:37 #19475 [Verbose] > │ y2="75"/> │
00:05:37 #19476 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" y1="424" x2="79" │
00:05:37 #19477 [Verbose] > │ y2="75"/> │
00:05:37 #19478 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" y1="424" x2="89" │
00:05:37 #19479 [Verbose] > │ y2="75"/> │
00:05:37 #19480 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1=... │
00:05:37 #19481 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:37 #19482 [Verbose] >
00:05:37 #19483 [Verbose] > ╭─[ 585.94ms - stdout ]────────────────────────────────────────────────────────╮
00:05:37 #19484 [Verbose] > │ type UH0 = │
00:05:37 #19485 [Verbose] > │ | UH0_0 of float * float * float * float * float * float * float * float │
00:05:37 #19486 [Verbose] > │ * float * UH0 │
00:05:37 #19487 [Verbose] > │ | UH0_1 │
00:05:37 #19488 [Verbose] > │ and UH1 = │
00:05:37 #19489 [Verbose] > │ | UH1_0 of float * float * UH1 │
00:05:37 #19490 [Verbose] > │ | UH1_1 │
00:05:37 #19491 [Verbose] > │ and UH2 = │
00:05:37 #19492 [Verbose] > │ | UH2_0 of float * UH2 │
00:05:37 #19493 [Verbose] > │ | UH2_1 │
00:05:37 #19494 [Verbose] > │ let rec closure1 (v0 : (struct (float * float * float * float * float * │
00:05:37 #19495 [Verbose] > │ float * float * float * float) -> struct (float * float * float * float * │
00:05:37 #19496 [Verbose] > │ float * float * float * float * float))) struct (v1 : float, v2 : float, v3 │
00:05:37 #19497 [Verbose] > │ : float, v4 : float, v5 : float, v6 : float, v7 : float, v8 : float, v9 : │
00:05:37 #19498 [Verbose] > │ float) : struct (float * float * float * float * float * float * float * │
00:05:37 #19499 [Verbose] > │ float * float) = │
00:05:37 #19500 [Verbose] > │ let struct (v10 : float, v11 : float, v12 : float, v13 : float, v14 : │
00:05:37 #19501 [Verbose] > │ float, v15 : float, v16 : float, v17 : float, v18 : float) = v0 struct (v1, │
00:05:37 #19502 [Verbose] > │ v2, v3, v4, v5, v6, v7, v8, v9) │
00:05:37 #19503 [Verbose] > │ let v19 : float = v15 * 50000.0 │
00:05:37 #19504 [Verbose] > │ let v20 : float = v6 + v19 │
00:05:37 #19505 [Verbose] > │ let v21 : float = 50000.0 * v12 │
00:05:37 #19506 [Verbose] > │ let v22 : float = 50000.0 * v13 │
00:05:37 #19507 [Verbose] > │ let v23 : float = 50000.0 * v14 │
00:05:37 #19508 [Verbose] > │ let v24 : float = v3 + v21 │
00:05:37 #19509 [Verbose] > │ let v25 : float = v4 + v22 │
00:05:37 #19510 [Verbose] > │ let v26 : float = v5 + v23 │
00:05:37 #19511 [Verbose] > │ let v27 : float = 50000.0 * v16 │
00:05:37 #19512 [Verbose] > │ let v28 : float = 50000.0 * v17 │
00:05:37 #19513 [Verbose] > │ let v29 : float = 50000.0 * v18 │
00:05:37 #19514 [Verbose] > │ let v30 : float = v7 + v27 │
00:05:37 #19515 [Verbose] > │ let v31 : float = v8 + v28 │
00:05:37 #19516 [Verbose] > │ let v32 : float = v9 + v29 │
00:05:37 #19517 [Verbose] > │ let struct (v33 : float, v34 : float, v35 : float, v36 : float, v37 : │
00:05:37 #19518 [Verbose] > │ float, v38 : float, v39 : float, v40 : float, v41 : float) = v0 struct (v1, │
00:05:37 #19519 [Verbose] > │ v2, v24, v25, v26, v20, v30, v31, v32) │
00:05:37 #19520 [Verbose] > │ let v42 : float = v38 * 50000.0 │
00:05:37 #19521 [Verbose] > │ let v43 : float = v6 + v42 │
00:05:37 #19522 [Verbose] > │ let v44 : float = 50000.0 * v35 │
00:05:37 #19523 [Verbose] > │ let v45 : float = 50000.0 * v36 │
00:05:37 #19524 [Verbose] > │ let v46 : float = 50000.0 * v37 │
00:05:37 #19525 [Verbose] > │ let v47 : float = v3 + v44 │
00:05:37 #19526 [Verbose] > │ let v48 : float = v4 + v45 │
00:05:37 #19527 [Verbose] > │ let v49 : float = v5 + v46 │
00:05:37 #19528 [Verbose] > │ let v50 : float = 50000.0 * v39 │
00:05:37 #19529 [Verbose] > │ let v51 : float = 50000.0 * v40 │
00:05:37 #19530 [Verbose] > │ let v52 : float = 50000.0 * v41 │
00:05:37 #19531 [Verbose] > │ let v53 : float = v7 + v50 │
00:05:37 #19532 [Verbose] > │ let v54 : float = v8 + v51 │
00:05:37 #19533 [Verbose] > │ let v55 : float = v9 + v52 │
00:05:37 #19534 [Verbose] > │ let struct (v56 : float, v57 : float, v58 : float, v59 : float, v60 : │
00:05:37 #19535 [Verbose] > │ float, v61 : float, v62 : float, v63 : float, v64 : float) = v0 struct (v1, │
00:05:37 #19536 [Verbose] > │ v2, v47, v48, v49, v43, v53, v54, v55) │
00:05:37 #19537 [Verbose] > │ let v65 : float = v61 * 100000.0 │
00:05:37 #19538 [Verbose] > │ let v66 : float = v6 + v65 │
00:05:37 #19539 [Verbose] > │ let v67 : float = 100000.0 * v58 │
00:05:37 #19540 [Verbose] > │ let v68 : float = 100000.0 * v59 │
00:05:37 #19541 [Verbose] > │ let v69 : float = 100000.0 * v60 │
00:05:37 #19542 [Verbose] > │ let v70 : float = v3 + v67 │
00:05:37 #19543 [Verbose] > │ let v71 : float = v4 + v68 │
00:05:37 #19544 [Verbose] > │ let v72 : float = v5 + v69 │
00:05:37 #19545 [Verbose] > │ let v73 : float = 100000.0 * v62 │
00:05:37 #19546 [Verbose] > │ let v74 : float = 100000.0 * v63 │
00:05:37 #19547 [Verbose] > │ let v75 : float = 100000.0 * v64 │
00:05:37 #19548 [Verbose] > │ let v76 : float = v7 + v73 │
00:05:37 #19549 [Verbose] > │ let v77 : float = v8 + v74 │
00:05:37 #19550 [Verbose] > │ let v78 : float = v9 + v75 │
00:05:37 #19551 [Verbose] > │ let struct (v79 : float, v80 : float, v81 : float, v82 : float, v83 : │
00:05:37 #19552 [Verbose] > │ float, v84 : float, v85 : float, v86 : float, v87 : float) = v0 struct (v1, │
00:05:37 #19553 [Verbose] > │ v2, v70, v71, v72, v66, v76, v77, v78) │
00:05:37 #19554 [Verbose] > │ let v88 : float = v10 + v33 │
00:05:37 #19555 [Verbose] > │ let v89 : float = v11 + v34 │
00:05:37 #19556 [Verbose] > │ let v90 : float = v15 + v38 │
00:05:37 #19557 [Verbose] > │ let v91 : float = v12 + v35 │
00:05:37 #19558 [Verbose] > │ let v92 : float = v13 + v36 │
00:05:37 #19559 [Verbose] > │ let v93 : float = v14 + v37 │
00:05:37 #19560 [Verbose] > │ let v94 : float = v16 + v39 │
00:05:37 #19561 [Verbose] > │ let v95 : float = v17 + v40 │
00:05:37 #19562 [Verbose] > │ let v96 : float = v18 + v41 │
00:05:37 #19563 [Verbose] > │ let v97 : float = v88 + v33 │
00:05:37 #19564 [Verbose] > │ let v98 : float = v89 + v34 │
00:05:37 #19565 [Verbose] > │ let v99 : float = v90 + v38 │
00:05:37 #19566 [Verbose] > │ let v100 : float = v91 + v35 │
00:05:37 #19567 [Verbose] > │ let v101 : float = v92 + v36 │
00:05:37 #19568 [Verbose] > │ let v102 : float = v93 + v37 │
00:05:37 #19569 [Verbose] > │ let v103 : float = v94 + v39 │
00:05:37 #19570 [Verbose] > │ let v104 : float = v95 + v40 │
00:05:37 #19571 [Verbose] > │ let v105 : float = v96 + v41 │
00:05:37 #19572 [Verbose] > │ let v106 : float = v97 + v56 │
00:05:37 #19573 [Verbose] > │ let v107 : float = v98 + v57 │
00:05:37 #19574 [Verbose] > │ let v108 : float = v99 + v61 │
00:05:37 #19575 [Verbose] > │ let v109 : float = v100 + v58 │
00:05:37 #19576 [Verbose] > │ let v110 : float = v101 + v59 │
00:05:37 #19577 [Verbose] > │ let v111 : float = v102 + v60 │
00:05:37 #19578 [Verbose] > │ let v112 : float = v103 + v62 │
00:05:37 #19579 [Verbose] > │ let v113 : float = v104 + v63 │
00:05:37 #19580 [Verbose] > │ let v114 : float = v105 + v64 │
00:05:37 #19581 [Verbose] > │ let v115 : float = v106 + v56 │
00:05:37 #19582 [Verbose] > │ let v116 : float = v107 + v57 │
00:05:37 #19583 [Verbose] > │ let v117 : float = v108 + v61 │
00:05:37 #19584 [Verbose] > │ let v118 : float = v109 + v58 │
00:05:37 #19585 [Verbose] > │ let v119 : float = v110 + v59 │
00:05:37 #19586 [Verbose] > │ let v120 : float = v111 + v60 │
00:05:37 #19587 [Verbose] > │ let v121 : float = v112 + v62 │
00:05:37 #19588 [Verbose] > │ let v122 : float = v113 + v63 │
00:05:37 #19589 [Verbose] > │ let v123 : float = v114 + v64 │
00:05:37 #19590 [Verbose] > │ let v124 : float = v115 + v79 │
00:05:37 #19591 [Verbose] > │ let v125 : float = v116 + v80 │
00:05:37 #19592 [Verbose] > │ let v126 : float = v117 + v84 │
00:05:37 #19593 [Verbose] > │ let v127 : float = v118 + v81 │
00:05:37 #19594 [Verbose] > │ let v128 : float = v119 + v82 │
00:05:37 #19595 [Verbose] > │ let v129 : float = v120 + v83 │
00:05:37 #19596 [Verbose] > │ let v130 : float = v121 + v85 │
00:05:37 #19597 [Verbose] > │ let v131 : float = v122 + v86 │
00:05:37 #19598 [Verbose] > │ let v132 : float = v123 + v87 │
00:05:37 #19599 [Verbose] > │ let v133 : float = v126 * 16666.666666666668 │
00:05:37 #19600 [Verbose] > │ let v134 : float = v6 + v133 │
00:05:37 #19601 [Verbose] > │ let v135 : float = 16666.666666666668 * v127 │
00:05:37 #19602 [Verbose] > │ let v136 : float = 16666.666666666668 * v128 │
00:05:37 #19603 [Verbose] > │ let v137 : float = 16666.666666666668 * v129 │
00:05:37 #19604 [Verbose] > │ let v138 : float = v3 + v135 │
00:05:37 #19605 [Verbose] > │ let v139 : float = v4 + v136 │
00:05:37 #19606 [Verbose] > │ let v140 : float = v5 + v137 │
00:05:37 #19607 [Verbose] > │ let v141 : float = 16666.666666666668 * v130 │
00:05:37 #19608 [Verbose] > │ let v142 : float = 16666.666666666668 * v131 │
00:05:37 #19609 [Verbose] > │ let v143 : float = 16666.666666666668 * v132 │
00:05:37 #19610 [Verbose] > │ let v144 : float = v7 + v141 │
00:05:37 #19611 [Verbose] > │ let v145 : float = v8 + v142 │
00:05:37 #19612 [Verbose] > │ let v146 : float = v9 + v143 │
00:05:37 #19613 [Verbose] > │ struct (v1, v2, v138, v139, v140, v134, v144, v145, v146) │
00:05:37 #19614 [Verbose] > │ and closure0 () (v0 : (struct (float * float * float * float * float * float │
00:05:37 #19615 [Verbose] > │ * float * float * float) -> struct (float * float * float * float * float * │
00:05:37 #19616 [Verbose] > │ float * float * float * float))) : (struct (float * float * float * float * │
00:05:37 #19617 [Verbose] > │ float * float * float * float * float) -> struct (float * float * float * │
00:05:37 #19618 [Verbose] > │ float * float * float * float * float * float)) = │
00:05:37 #19619 [Verbose] > │ closure1(v0) │
00:05:37 #19620 [Verbose] > │ and closure2 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 : │
00:05:37 #19621 [Verbose] > │ float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float * │
00:05:37 #19622 [Verbose] > │ float * float * float * float * float * float * float * float) = │
00:05:37 #19623 [Verbose] > │ let v9 : float = 10.0 / v1 │
00:05:37 #19624 [Verbose] > │ let v10 : float = 0.0 / v1 │
00:05:37 #19625 [Verbose] > │ struct (0.0, 0.0, v6, v7, v8, 1.0, v9, v10, v10) │
00:05:37 #19626 [Verbose] > │ and closure3 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 : │
00:05:37 #19627 [Verbose] > │ float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float * │
00:05:37 #19628 [Verbose] > │ float * float * float * float * float * float * float * float) = │
00:05:37 #19629 [Verbose] > │ let v9 : float = v6 / 299792458.0 │
00:05:37 #19630 [Verbose] > │ let v10 : float = v7 / 299792458.0 │
00:05:37 #19631 [Verbose] > │ let v11 : float = v8 / 299792458.0 │
00:05:37 #19632 [Verbose] > │ let v12 : float = v9 * v9 │
00:05:37 #19633 [Verbose] > │ let v13 : float = v10 * v10 │
00:05:37 #19634 [Verbose] > │ let v14 : float = v12 + v13 │
00:05:37 #19635 [Verbose] > │ let v15 : float = v11 * v11 │
00:05:37 #19636 [Verbose] > │ let v16 : float = v14 + v15 │
00:05:37 #19637 [Verbose] > │ let v17 : float = 1.0 - v16 │
00:05:37 #19638 [Verbose] > │ let v18 : float = sqrt v17 │
00:05:37 #19639 [Verbose] > │ let v19 : float = 10.0 * v9 │
00:05:37 #19640 [Verbose] > │ let v20 : float = 0.0 * v10 │
00:05:37 #19641 [Verbose] > │ let v21 : float = v19 + v20 │
00:05:37 #19642 [Verbose] > │ let v22 : float = 0.0 * v11 │
00:05:37 #19643 [Verbose] > │ let v23 : float = v21 + v22 │
00:05:37 #19644 [Verbose] > │ let v24 : float = v23 * v9 │
00:05:37 #19645 [Verbose] > │ let v25 : float = v23 * v10 │
00:05:37 #19646 [Verbose] > │ let v26 : float = v23 * v11 │
00:05:37 #19647 [Verbose] > │ let v27 : float = -1.0 * v24 │
00:05:37 #19648 [Verbose] > │ let v28 : float = -1.0 * v25 │
00:05:37 #19649 [Verbose] > │ let v29 : float = -1.0 * v26 │
00:05:37 #19650 [Verbose] > │ let v30 : float = 10.0 + v27 │
00:05:37 #19651 [Verbose] > │ let v31 : float = v18 * v30 │
00:05:37 #19652 [Verbose] > │ let v32 : float = v18 * v28 │
00:05:37 #19653 [Verbose] > │ let v33 : float = v18 * v29 │
00:05:37 #19654 [Verbose] > │ let v34 : float = v31 / v1 │
00:05:37 #19655 [Verbose] > │ let v35 : float = v32 / v1 │
00:05:37 #19656 [Verbose] > │ let v36 : float = v33 / v1 │
00:05:37 #19657 [Verbose] > │ struct (0.0, 0.0, v6, v7, v8, 1.0, v34, v35, v36) │
00:05:37 #19658 [Verbose] > │ and method2 (v0 : (struct (float * float * float * float * float * float * │
00:05:37 #19659 [Verbose] > │ float * float * float) -> struct (float * float * float * float * float * │
00:05:37 #19660 [Verbose] > │ float * float * float * float)), v1 : float, v2 : float, v3 : float, v4 : │
00:05:37 #19661 [Verbose] > │ float, v5 : float, v6 : float, v7 : float, v8 : float, v9 : float, v10 : │
00:05:37 #19662 [Verbose] > │ int32) : struct (float * float * float * float * float * float * float * │
00:05:37 #19663 [Verbose] > │ float * float) = │
00:05:37 #19664 [Verbose] > │ let v11 : bool = v10 <= 0 │
00:05:37 #19665 [Verbose] > │ if v11 then │
00:05:37 #19666 [Verbose] > │ struct (v1, v2, v3, v4, v5, v6, v7, v8, v9) │
00:05:37 #19667 [Verbose] > │ else │
00:05:37 #19668 [Verbose] > │ let struct (v12 : float, v13 : float, v14 : float, v15 : float, v16 │
00:05:37 #19669 [Verbose] > │ : float, v17 : float, v18 : float, v19 : float, v20 : float) = v0 struct │
00:05:37 #19670 [Verbose] > │ (v1, v2, v3, v4, v5, v6, v7, v8, v9) │
00:05:37 #19671 [Verbose] > │ let v21 : int32 = v10 - 1 │
00:05:37 #19672 [Verbose] > │ method2(v0, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21) │
00:05:37 #19673 [Verbose] > │ and method3 (v0 : UH0, v1 : UH0) : UH0 = │
00:05:37 #19674 [Verbose] > │ match v0 with │
00:05:37 #19675 [Verbose] > │ | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *) │
00:05:37 #19676 [Verbose] > │ let v12 : UH0 = UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v1) │
00:05:37 #19677 [Verbose] > │ method3(v11, v12) │
00:05:37 #19678 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:05:37 #19679 [Verbose] > │ v1 │
00:05:37 #19680 [Verbose] > │ and method1 (v0 : (struct (float * float * float * float * float * float * │
00:05:37 #19681 [Verbose] > │ float * float * float) -> struct (float * float * float * float * float * │
00:05:37 #19682 [Verbose] > │ float * float * float * float)), v1 : UH0, v2 : int32) : UH0 = │
00:05:37 #19683 [Verbose] > │ let v3 : float = 0.0 │
00:05:37 #19684 [Verbose] > │ let v4 : float = 1.0 │
00:05:37 #19685 [Verbose] > │ let v5 : float = 0.0 │
00:05:37 #19686 [Verbose] > │ let v6 : float = 0.0 │
00:05:37 #19687 [Verbose] > │ let v7 : float = 0.0 │
00:05:37 #19688 [Verbose] > │ let v8 : float = 0.0 │
00:05:37 #19689 [Verbose] > │ let v9 : float = 0.0 │
00:05:37 #19690 [Verbose] > │ let v10 : float = 0.0 │
00:05:37 #19691 [Verbose] > │ let v11 : float = 0.0 │
00:05:37 #19692 [Verbose] > │ let struct (v12 : float, v13 : float, v14 : float, v15 : float, v16 : │
00:05:37 #19693 [Verbose] > │ float, v17 : float, v18 : float, v19 : float, v20 : float) = method2(v0, v3, │
00:05:37 #19694 [Verbose] > │ v4, v5, v6, v7, v8, v9, v10, v11, v2) │
00:05:37 #19695 [Verbose] > │ let v21 : bool = v17 <= 31557600.0 │
00:05:37 #19696 [Verbose] > │ if v21 then │
00:05:37 #19697 [Verbose] > │ let v22 : UH0 = UH0_0(v12, v13, v14, v15, v16, v17, v18, v19, v20, │
00:05:37 #19698 [Verbose] > │ v1) │
00:05:37 #19699 [Verbose] > │ let v23 : int32 = v2 + 1 │
00:05:37 #19700 [Verbose] > │ method1(v0, v22, v23) │
00:05:37 #19701 [Verbose] > │ else │
00:05:37 #19702 [Verbose] > │ let v25 : UH0 = UH0_1 │
00:05:37 #19703 [Verbose] > │ method3(v1, v25) │
00:05:37 #19704 [Verbose] > │ and method4 (v0 : UH0, v1 : UH1) : UH1 = │
00:05:37 #19705 [Verbose] > │ match v0 with │
00:05:37 #19706 [Verbose] > │ | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *) │
00:05:37 #19707 [Verbose] > │ let v12 : UH1 = method4(v11, v1) │
00:05:37 #19708 [Verbose] > │ let v13 : float = v7 / 31557600.0 │
00:05:37 #19709 [Verbose] > │ let v14 : float = v8 / 299792458.0 │
00:05:37 #19710 [Verbose] > │ UH1_0(v13, v14, v12) │
00:05:37 #19711 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:05:37 #19712 [Verbose] > │ v1 │
00:05:37 #19713 [Verbose] > │ and method5 (v0 : UH1, v1 : UH2, v2 : UH2) : struct (UH2 * UH2) = │
00:05:37 #19714 [Verbose] > │ match v0 with │
00:05:37 #19715 [Verbose] > │ | UH1_0(v3, v4, v5) -> (* Cons *) │
00:05:37 #19716 [Verbose] > │ let v6 : UH2 = UH2_0(v3, v1) │
00:05:37 #19717 [Verbose] > │ let v7 : UH2 = UH2_0(v4, v2) │
00:05:37 #19718 [Verbose] > │ method5(v5, v6, v7) │
00:05:37 #19719 [Verbose] > │ | UH1_1 -> (* Nil *) │
00:05:37 #19720 [Verbose] > │ struct (v1, v2) │
00:05:37 #19721 [Verbose] > │ and method6 (v0 : UH2, v1 : UH2) : UH2 = │
00:05:37 #19722 [Verbose] > │ match v0 with │
00:05:37 #19723 [Verbose] > │ | UH2_0(v2, v3) -> (* Cons *) │
00:05:37 #19724 [Verbose] > │ let v4 : UH2 = UH2_0(v2, v1) │
00:05:37 #19725 [Verbose] > │ method6(v3, v4) │
00:05:37 #19726 [Verbose] > │ | UH2_1 -> (* Nil *) │
00:05:37 #19727 [Verbose] > │ v1 │
00:05:37 #19728 [Verbose] > │ and method7 (v0 : (struct (float * float * float * float * float * float * │
00:05:37 #19729 [Verbose] > │ float * float * float) -> struct (float * float * float * float * float * │
00:05:37 #19730 [Verbose] > │ float * float * float * float)), v1 : UH0, v2 : int32) : UH0 = │
00:05:37 #19731 [Verbose] > │ let v3 : float = 0.0 │
00:05:37 #19732 [Verbose] > │ let v4 : float = 1.0 │
00:05:37 #19733 [Verbose] > │ let v5 : float = 0.0 │
00:05:37 #19734 [Verbose] > │ let v6 : float = 0.0 │
00:05:37 #19735 [Verbose] > │ let v7 : float = 0.0 │
00:05:37 #19736 [Verbose] > │ let v8 : float = 0.0 │
00:05:37 #19737 [Verbose] > │ let v9 : float = 0.0 │
00:05:37 #19738 [Verbose] > │ let v10 : float = 0.0 │
00:05:37 #19739 [Verbose] > │ let v11 : float = 0.0 │
00:05:37 #19740 [Verbose] > │ let struct (v12 : float, v13 : float, v14 : float, v15 : float, v16 : │
00:05:37 #19741 [Verbose] > │ float, v17 : float, v18 : float, v19 : float, v20 : float) = method2(v0, v3, │
00:05:37 #19742 [Verbose] > │ v4, v5, v6, v7, v8, v9, v10, v11, v2) │
00:05:37 #19743 [Verbose] > │ let v21 : bool = v17 <= 31557600.0 │
00:05:37 #19744 [Verbose] > │ if v21 then │
00:05:37 #19745 [Verbose] > │ let v22 : UH0 = UH0_0(v12, v13, v14, v15, v16, v17, v18, v19, v20, │
00:05:37 #19746 [Verbose] > │ v1) │
00:05:37 #19747 [Verbose] > │ let v23 : int32 = v2 + 1 │
00:05:37 #19748 [Verbose] > │ method7(v0, v22, v23) │
00:05:37 #19749 [Verbose] > │ else │
00:05:37 #19750 [Verbose] > │ let v25 : UH0 = UH0_1 │
00:05:37 #19751 [Verbose] > │ method3(v1, v25) │
00:05:37 #19752 [Verbose] > │ and method8 (v0 : UH0, v1 : UH1) : UH1 = │
00:05:37 #19753 [Verbose] > │ match v0 with │
00:05:37 #19754 [Verbose] > │ | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *) │
00:05:37 #19755 [Verbose] > │ let v12 : UH1 = method8(v11, v1) │
00:05:37 #19756 [Verbose] > │ let v13 : float = v7 / 31557600.0 │
00:05:37 #19757 [Verbose] > │ let v14 : float = v8 / 299792458.0 │
00:05:37 #19758 [Verbose] > │ UH1_0(v13, v14, v12) │
00:05:37 #19759 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:05:37 #19760 [Verbose] > │ v1 │
00:05:37 #19761 [Verbose] > │ and method10 (v0 : UH2, v1 : int32) : int32 = │
00:05:37 #19762 [Verbose] > │ match v0 with │
00:05:37 #19763 [Verbose] > │ | UH2_0(v2, v3) -> (* Cons *) │
00:05:37 #19764 [Verbose] > │ let v4 : int32 = v1 + 1 │
00:05:37 #19765 [Verbose] > │ method10(v3, v4) │
00:05:37 #19766 [Verbose] > │ | UH2_1 -> (* Nil *) │
00:05:37 #19767 [Verbose] > │ v1 │
00:05:37 #19768 [Verbose] > │ and method11 (v0 : (float []), v1 : UH2, v2 : int32) : int32 = │
00:05:37 #19769 [Verbose] > │ match v1 with │
00:05:37 #19770 [Verbose] > │ | UH2_0(v3, v4) -> (* Cons *) │
00:05:37 #19771 [Verbose] > │ v0.[int v2] <- v3 │
00:05:37 #19772 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:05:37 #19773 [Verbose] > │ method11(v0, v4, v5) │
00:05:37 #19774 [Verbose] > │ | UH2_1 -> (* Nil *) │
00:05:37 #19775 [Verbose] > │ v2 │
00:05:37 #19776 [Verbose] > │ and method9 (v0 : UH2) : (float []) = │
00:05:37 #19777 [Verbose] > │ let v1 : int32 = 0 │
00:05:37 #19778 [Verbose] > │ let v2 : int32 = method10(v0, v1) │
00:05:37 #19779 [Verbose] > │ let v3 : (float []) = Array.zeroCreate<float> (v2) │
00:05:37 #19780 [Verbose] > │ let v4 : int32 = 0 │
00:05:37 #19781 [Verbose] > │ let v5 : int32 = method11(v3, v0, v4) │
00:05:37 #19782 [Verbose] > │ v3 │
00:05:37 #19783 [Verbose] > │ and method12 (v0 : (struct (string * (float []) * (float [])) [])) : (struct │
00:05:37 #19784 [Verbose] > │ (string * (float []) * (float [])) []) = │
00:05:37 #19785 [Verbose] > │ v0 │
00:05:37 #19786 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:05:37 #19787 [Verbose] > │ []) * (float [])) [])) = │
00:05:37 #19788 [Verbose] > │ let v0 : ((struct (float * float * float * float * float * float * float │
00:05:37 #19789 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float * │
00:05:37 #19790 [Verbose] > │ float * float * float)) -> (struct (float * float * float * float * float * │
00:05:37 #19791 [Verbose] > │ float * float * float * float) -> struct (float * float * float * float * │
00:05:37 #19792 [Verbose] > │ float * float * float * float * float))) = closure0() │
00:05:37 #19793 [Verbose] > │ let v1 : (struct (float * float * float * float * float * float * float │
00:05:37 #19794 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float * │
00:05:37 #19795 [Verbose] > │ float * float * float)) = closure2() │
00:05:37 #19796 [Verbose] > │ let v2 : (struct (float * float * float * float * float * float * float │
00:05:37 #19797 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float * │
00:05:37 #19798 [Verbose] > │ float * float * float)) = v0 v1 │
00:05:37 #19799 [Verbose] > │ let v3 : (struct (float * float * float * float * float * float * float │
00:05:37 #19800 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float * │
00:05:37 #19801 [Verbose] > │ float * float * float)) = closure3() │
00:05:37 #19802 [Verbose] > │ let v4 : (struct (float * float * float * float * float * float * float │
00:05:37 #19803 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float * │
00:05:37 #19804 [Verbose] > │ float * float * float)) = v0 v3 │
00:05:37 #19805 [Verbose] > │ let v5 : UH0 = UH0_1 │
00:05:37 #19806 [Verbose] > │ let v6 : int32 = 0 │
00:05:37 #19807 [Verbose] > │ let v7 : UH0 = method1(v2, v5, v6) │
00:05:37 #19808 [Verbose] > │ let v8 : UH1 = UH1_1 │
00:05:37 #19809 [Verbose] > │ let v9 : UH1 = method4(v7, v8) │
00:05:37 #19810 [Verbose] > │ let v10 : UH2 = UH2_1 │
00:05:37 #19811 [Verbose] > │ let v11 : UH2 = UH2_1 │
00:05:37 #19812 [Verbose] > │ let struct (v12 : UH2, v13 : UH2) = method5(v9, v10, v11) │
00:05:37 #19813 [Verbose] > │ let v14 : UH2 = UH2_1 │
00:05:37 #19814 [Verbose] > │ let v15 : UH2 = method6(v12, v14) │
00:05:37 #19815 [Verbose] > │ let v16 : UH2 = UH2_1 │
00:05:37 #19816 [Verbose] > │ let v17 : UH2 = method6(v13, v16) │
00:05:37 #19817 [Verbose] > │ let v18 : UH0 = UH0_1 │
00:05:37 #19818 [Verbose] > │ let v19 : int32 = 0 │
00:05:37 #19819 [Verbose] > │ let v20 : UH0 = method7(v4, v18, v19) │
00:05:37 #19820 [Verbose] > │ let v21 : UH1 = UH1_1 │
00:05:37 #19821 [Verbose] > │ let v22 : UH1 = method8(v20, v21) │
00:05:37 #19822 [Verbose] > │ let v23 : UH2 = UH2_1 │
00:05:37 #19823 [Verbose] > │ let v24 : UH2 = UH2_1 │
00:05:37 #19824 [Verbose] > │ let struct (v25 : UH2, v26 : UH2) = method5(v22, v23, v24) │
00:05:37 #19825 [Verbose] > │ let v27 : UH2 = UH2_1 │
00:05:37 #19826 [Verbose] > │ let v28 : UH2 = method6(v25, v27) │
00:05:37 #19827 [Verbose] > │ let v29 : UH2 = UH2_1 │
00:05:37 #19828 [Verbose] > │ let v30 : UH2 = method6(v26, v29) │
00:05:37 #19829 [Verbose] > │ let v31 : (float []) = method9(v15) │
00:05:37 #19830 [Verbose] > │ let v32 : (float []) = method9(v17) │
00:05:37 #19831 [Verbose] > │ let v33 : (float []) = method9(v30) │
00:05:37 #19832 [Verbose] > │ let v34 : string = "newtonian" │
00:05:37 #19833 [Verbose] > │ let v35 : string = "relativistic" │
00:05:37 #19834 [Verbose] > │ let v36 : (struct (string * (float []) * (float [])) []) = [|struct │
00:05:37 #19835 [Verbose] > │ (v34, v31, v32); struct (v35, v31, v33)|] │
00:05:37 #19836 [Verbose] > │ let v37 : (struct (string * (float []) * (float [])) []) = method12(v36) │
00:05:37 #19837 [Verbose] > │ let v38 : string = "response to a constant force" │
00:05:37 #19838 [Verbose] > │ let v39 : string = "time (years)" │
00:05:37 #19839 [Verbose] > │ let v40 : string = "velocity (multiples of c)" │
00:05:37 #19840 [Verbose] > │ struct (v38, v39, v40, v37) │
00:05:37 #19841 [Verbose] > │ method0() │
00:05:37 #19842 [Verbose] > │ │
00:05:37 #19843 [Verbose] > │ │
00:05:37 #19844 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:37 #19845 [Verbose] >
00:05:37 #19846 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:37 #19847 [Verbose] > inl uniform_lorentz_force v_e v_b (st : particle_state) =
00:05:37 #19848 [Verbose] > st.charge *^ (v_e ^+^ st.velocity >< v_b)
00:05:37 #19849 [Verbose] >
00:05:37 #19850 [Verbose] > ╭─[ 275.63ms - stdout ]────────────────────────────────────────────────────────╮
00:05:37 #19851 [Verbose] > │ () │
00:05:37 #19852 [Verbose] > │ │
00:05:37 #19853 [Verbose] > │ │
00:05:37 #19854 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:37 #19855 [Verbose] >
00:05:37 #19856 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:37 #19857 [Verbose] > // // test
00:05:37 #19858 [Verbose] >
00:05:37 #19859 [Verbose] > inl c : f64 = 299792458
00:05:37 #19860 [Verbose] > inl ~method = runge_kutta_4 0.000000001
00:05:37 #19861 [Verbose] > inl forces = [[ uniform_lorentz_force (zero_vec ()) (k_hat ()) ]]
00:05:37 #19862 [Verbose] > inl (particle_state default_particle_state') = default_particle_state ()
00:05:37 #19863 [Verbose] > inl initial_state =
00:05:37 #19864 [Verbose] > particle_state { default_particle_state' with
00:05:37 #19865 [Verbose] > mass = 0.000000000000000000000000001672621898
00:05:37 #19866 [Verbose] > charge = 0.0000000000000000001602176621
00:05:37 #19867 [Verbose] > velocity = 0.8 *^ (c *^ j_hat ())
00:05:37 #19868 [Verbose] > }
00:05:37 #19869 [Verbose] >
00:05:37 #19870 [Verbose] > inl newton_states = solver_ method (newton_second_ps forces) initial_state
00:05:37 #19871 [Verbose] > inl relativity_states = solver_ method (relativity_ps forces) initial_state
00:05:37 #19872 [Verbose] >
00:05:37 #19873 [Verbose] > inl newton_x, newton_y =
00:05:37 #19874 [Verbose] > newton_states
00:05:37 #19875 [Verbose] > >> Some
00:05:37 #19876 [Verbose] > |> seq.take_while_ (fun (particle_state st) i => i < 100i32)
00:05:37 #19877 [Verbose] > |> listm.map (fun (particle_state st) => st.pos_vec.x, st.pos_vec.y)
00:05:37 #19878 [Verbose] > |> listm'.unzip
00:05:37 #19879 [Verbose] >
00:05:37 #19880 [Verbose] > inl relativity_x, relativity_y =
00:05:37 #19881 [Verbose] > relativity_states
00:05:37 #19882 [Verbose] > >> Some
00:05:37 #19883 [Verbose] > |> seq.take_while_ (fun (particle_state st) i => i < 165i32)
00:05:37 #19884 [Verbose] > |> listm.map (fun (particle_state st) => st.pos_vec.x, st.pos_vec.y)
00:05:37 #19885 [Verbose] > |> listm'.unzip
00:05:37 #19886 [Verbose] >
00:05:37 #19887 [Verbose] > inl newton_x : a i32 _ = newton_x |> listm.toArray
00:05:37 #19888 [Verbose] > inl newton_y : a i32 _ = newton_y |> listm.toArray
00:05:37 #19889 [Verbose] >
00:05:37 #19890 [Verbose] > inl relativity_x : a i32 _ = relativity_x |> listm.toArray
00:05:37 #19891 [Verbose] > inl relativity_y : a i32 _ = relativity_y |> listm.toArray
00:05:37 #19892 [Verbose] >
00:05:37 #19893 [Verbose] > "proton in a 1-t magnetic field",
00:05:37 #19894 [Verbose] > "x (m)",
00:05:37 #19895 [Verbose] > "y (m)",
00:05:37 #19896 [Verbose] > ;[[
00:05:37 #19897 [Verbose] > "newtonian", newton_x, newton_y
00:05:37 #19898 [Verbose] > "relativistic", relativity_x, relativity_y
00:05:37 #19899 [Verbose] > ]]
00:05:38 #19900 [Verbose] >
00:05:38 #19901 [Verbose] > ╭─[ 539.79ms - return value ]──────────────────────────────────────────────────╮
00:05:38 #19902 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:05:38 #19903 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:05:38 #19904 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:05:38 #19905 [Verbose] > │ stroke="none"/> │
00:05:38 #19906 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:05:38 #19907 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:05:38 #19908 [Verbose] > │ fill="#FFFFFF"> │
00:05:38 #19909 [Verbose] > │ proton in a 1-t magnetic field │
00:05:38 #19910 [Verbose] > │ </text> │
00:05:38 #19911 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="58" y1="424" x2="58" │
00:05:38 #19912 [Verbose] > │ y2="75"/> │
00:05:38 #19913 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:05:38 #19914 [Verbose] > │ y2="75"/> │
00:05:38 #19915 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="81" y1="424" x2="81" │
00:05:38 #19916 [Verbose] > │ y2="75"/> │
00:05:38 #19917 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="93" y1="424" x2="93" │
00:05:38 #19918 [Verbose] > │ y2="75"/> │
00:05:38 #19919 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x... │
00:05:38 #19920 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:38 #19921 [Verbose] >
00:05:38 #19922 [Verbose] > ╭─[ 551.23ms - stdout ]────────────────────────────────────────────────────────╮
00:05:38 #19923 [Verbose] > │ type UH0 = │
00:05:38 #19924 [Verbose] > │ | UH0_0 of float * float * float * float * float * float * float * float │
00:05:38 #19925 [Verbose] > │ * float * UH0 │
00:05:38 #19926 [Verbose] > │ | UH0_1 │
00:05:38 #19927 [Verbose] > │ and UH1 = │
00:05:38 #19928 [Verbose] > │ | UH1_0 of float * float * UH1 │
00:05:38 #19929 [Verbose] > │ | UH1_1 │
00:05:38 #19930 [Verbose] > │ and UH2 = │
00:05:38 #19931 [Verbose] > │ | UH2_0 of float * UH2 │
00:05:38 #19932 [Verbose] > │ | UH2_1 │
00:05:38 #19933 [Verbose] > │ let rec closure1 (v0 : (struct (float * float * float * float * float * │
00:05:38 #19934 [Verbose] > │ float * float * float * float) -> struct (float * float * float * float * │
00:05:38 #19935 [Verbose] > │ float * float * float * float * float))) struct (v1 : float, v2 : float, v3 │
00:05:38 #19936 [Verbose] > │ : float, v4 : float, v5 : float, v6 : float, v7 : float, v8 : float, v9 : │
00:05:38 #19937 [Verbose] > │ float) : struct (float * float * float * float * float * float * float * │
00:05:38 #19938 [Verbose] > │ float * float) = │
00:05:38 #19939 [Verbose] > │ let struct (v10 : float, v11 : float, v12 : float, v13 : float, v14 : │
00:05:38 #19940 [Verbose] > │ float, v15 : float, v16 : float, v17 : float, v18 : float) = v0 struct (v1, │
00:05:38 #19941 [Verbose] > │ v2, v3, v4, v5, v6, v7, v8, v9) │
00:05:38 #19942 [Verbose] > │ let v19 : float = v15 * 5E-10 │
00:05:38 #19943 [Verbose] > │ let v20 : float = v6 + v19 │
00:05:38 #19944 [Verbose] > │ let v21 : float = 5E-10 * v12 │
00:05:38 #19945 [Verbose] > │ let v22 : float = 5E-10 * v13 │
00:05:38 #19946 [Verbose] > │ let v23 : float = 5E-10 * v14 │
00:05:38 #19947 [Verbose] > │ let v24 : float = v3 + v21 │
00:05:38 #19948 [Verbose] > │ let v25 : float = v4 + v22 │
00:05:38 #19949 [Verbose] > │ let v26 : float = v5 + v23 │
00:05:38 #19950 [Verbose] > │ let v27 : float = 5E-10 * v16 │
00:05:38 #19951 [Verbose] > │ let v28 : float = 5E-10 * v17 │
00:05:38 #19952 [Verbose] > │ let v29 : float = 5E-10 * v18 │
00:05:38 #19953 [Verbose] > │ let v30 : float = v7 + v27 │
00:05:38 #19954 [Verbose] > │ let v31 : float = v8 + v28 │
00:05:38 #19955 [Verbose] > │ let v32 : float = v9 + v29 │
00:05:38 #19956 [Verbose] > │ let struct (v33 : float, v34 : float, v35 : float, v36 : float, v37 : │
00:05:38 #19957 [Verbose] > │ float, v38 : float, v39 : float, v40 : float, v41 : float) = v0 struct (v1, │
00:05:38 #19958 [Verbose] > │ v2, v24, v25, v26, v20, v30, v31, v32) │
00:05:38 #19959 [Verbose] > │ let v42 : float = v38 * 5E-10 │
00:05:38 #19960 [Verbose] > │ let v43 : float = v6 + v42 │
00:05:38 #19961 [Verbose] > │ let v44 : float = 5E-10 * v35 │
00:05:38 #19962 [Verbose] > │ let v45 : float = 5E-10 * v36 │
00:05:38 #19963 [Verbose] > │ let v46 : float = 5E-10 * v37 │
00:05:38 #19964 [Verbose] > │ let v47 : float = v3 + v44 │
00:05:38 #19965 [Verbose] > │ let v48 : float = v4 + v45 │
00:05:38 #19966 [Verbose] > │ let v49 : float = v5 + v46 │
00:05:38 #19967 [Verbose] > │ let v50 : float = 5E-10 * v39 │
00:05:38 #19968 [Verbose] > │ let v51 : float = 5E-10 * v40 │
00:05:38 #19969 [Verbose] > │ let v52 : float = 5E-10 * v41 │
00:05:38 #19970 [Verbose] > │ let v53 : float = v7 + v50 │
00:05:38 #19971 [Verbose] > │ let v54 : float = v8 + v51 │
00:05:38 #19972 [Verbose] > │ let v55 : float = v9 + v52 │
00:05:38 #19973 [Verbose] > │ let struct (v56 : float, v57 : float, v58 : float, v59 : float, v60 : │
00:05:38 #19974 [Verbose] > │ float, v61 : float, v62 : float, v63 : float, v64 : float) = v0 struct (v1, │
00:05:38 #19975 [Verbose] > │ v2, v47, v48, v49, v43, v53, v54, v55) │
00:05:38 #19976 [Verbose] > │ let v65 : float = v61 * 1E-09 │
00:05:38 #19977 [Verbose] > │ let v66 : float = v6 + v65 │
00:05:38 #19978 [Verbose] > │ let v67 : float = 1E-09 * v58 │
00:05:38 #19979 [Verbose] > │ let v68 : float = 1E-09 * v59 │
00:05:38 #19980 [Verbose] > │ let v69 : float = 1E-09 * v60 │
00:05:38 #19981 [Verbose] > │ let v70 : float = v3 + v67 │
00:05:38 #19982 [Verbose] > │ let v71 : float = v4 + v68 │
00:05:38 #19983 [Verbose] > │ let v72 : float = v5 + v69 │
00:05:38 #19984 [Verbose] > │ let v73 : float = 1E-09 * v62 │
00:05:38 #19985 [Verbose] > │ let v74 : float = 1E-09 * v63 │
00:05:38 #19986 [Verbose] > │ let v75 : float = 1E-09 * v64 │
00:05:38 #19987 [Verbose] > │ let v76 : float = v7 + v73 │
00:05:38 #19988 [Verbose] > │ let v77 : float = v8 + v74 │
00:05:38 #19989 [Verbose] > │ let v78 : float = v9 + v75 │
00:05:38 #19990 [Verbose] > │ let struct (v79 : float, v80 : float, v81 : float, v82 : float, v83 : │
00:05:38 #19991 [Verbose] > │ float, v84 : float, v85 : float, v86 : float, v87 : float) = v0 struct (v1, │
00:05:38 #19992 [Verbose] > │ v2, v70, v71, v72, v66, v76, v77, v78) │
00:05:38 #19993 [Verbose] > │ let v88 : float = v10 + v33 │
00:05:38 #19994 [Verbose] > │ let v89 : float = v11 + v34 │
00:05:38 #19995 [Verbose] > │ let v90 : float = v15 + v38 │
00:05:38 #19996 [Verbose] > │ let v91 : float = v12 + v35 │
00:05:38 #19997 [Verbose] > │ let v92 : float = v13 + v36 │
00:05:38 #19998 [Verbose] > │ let v93 : float = v14 + v37 │
00:05:38 #19999 [Verbose] > │ let v94 : float = v16 + v39 │
00:05:38 #20000 [Verbose] > │ let v95 : float = v17 + v40 │
00:05:38 #20001 [Verbose] > │ let v96 : float = v18 + v41 │
00:05:38 #20002 [Verbose] > │ let v97 : float = v88 + v33 │
00:05:38 #20003 [Verbose] > │ let v98 : float = v89 + v34 │
00:05:38 #20004 [Verbose] > │ let v99 : float = v90 + v38 │
00:05:38 #20005 [Verbose] > │ let v100 : float = v91 + v35 │
00:05:38 #20006 [Verbose] > │ let v101 : float = v92 + v36 │
00:05:38 #20007 [Verbose] > │ let v102 : float = v93 + v37 │
00:05:38 #20008 [Verbose] > │ let v103 : float = v94 + v39 │
00:05:38 #20009 [Verbose] > │ let v104 : float = v95 + v40 │
00:05:38 #20010 [Verbose] > │ let v105 : float = v96 + v41 │
00:05:38 #20011 [Verbose] > │ let v106 : float = v97 + v56 │
00:05:38 #20012 [Verbose] > │ let v107 : float = v98 + v57 │
00:05:38 #20013 [Verbose] > │ let v108 : float = v99 + v61 │
00:05:38 #20014 [Verbose] > │ let v109 : float = v100 + v58 │
00:05:38 #20015 [Verbose] > │ let v110 : float = v101 + v59 │
00:05:38 #20016 [Verbose] > │ let v111 : float = v102 + v60 │
00:05:38 #20017 [Verbose] > │ let v112 : float = v103 + v62 │
00:05:38 #20018 [Verbose] > │ let v113 : float = v104 + v63 │
00:05:38 #20019 [Verbose] > │ let v114 : float = v105 + v64 │
00:05:38 #20020 [Verbose] > │ let v115 : float = v106 + v56 │
00:05:38 #20021 [Verbose] > │ let v116 : float = v107 + v57 │
00:05:38 #20022 [Verbose] > │ let v117 : float = v108 + v61 │
00:05:38 #20023 [Verbose] > │ let v118 : float = v109 + v58 │
00:05:38 #20024 [Verbose] > │ let v119 : float = v110 + v59 │
00:05:38 #20025 [Verbose] > │ let v120 : float = v111 + v60 │
00:05:38 #20026 [Verbose] > │ let v121 : float = v112 + v62 │
00:05:38 #20027 [Verbose] > │ let v122 : float = v113 + v63 │
00:05:38 #20028 [Verbose] > │ let v123 : float = v114 + v64 │
00:05:38 #20029 [Verbose] > │ let v124 : float = v115 + v79 │
00:05:38 #20030 [Verbose] > │ let v125 : float = v116 + v80 │
00:05:38 #20031 [Verbose] > │ let v126 : float = v117 + v84 │
00:05:38 #20032 [Verbose] > │ let v127 : float = v118 + v81 │
00:05:38 #20033 [Verbose] > │ let v128 : float = v119 + v82 │
00:05:38 #20034 [Verbose] > │ let v129 : float = v120 + v83 │
00:05:38 #20035 [Verbose] > │ let v130 : float = v121 + v85 │
00:05:38 #20036 [Verbose] > │ let v131 : float = v122 + v86 │
00:05:38 #20037 [Verbose] > │ let v132 : float = v123 + v87 │
00:05:38 #20038 [Verbose] > │ let v133 : float = v126 * 1.6666666666666669E-10 │
00:05:38 #20039 [Verbose] > │ let v134 : float = v6 + v133 │
00:05:38 #20040 [Verbose] > │ let v135 : float = 1.6666666666666669E-10 * v127 │
00:05:38 #20041 [Verbose] > │ let v136 : float = 1.6666666666666669E-10 * v128 │
00:05:38 #20042 [Verbose] > │ let v137 : float = 1.6666666666666669E-10 * v129 │
00:05:38 #20043 [Verbose] > │ let v138 : float = v3 + v135 │
00:05:38 #20044 [Verbose] > │ let v139 : float = v4 + v136 │
00:05:38 #20045 [Verbose] > │ let v140 : float = v5 + v137 │
00:05:38 #20046 [Verbose] > │ let v141 : float = 1.6666666666666669E-10 * v130 │
00:05:38 #20047 [Verbose] > │ let v142 : float = 1.6666666666666669E-10 * v131 │
00:05:38 #20048 [Verbose] > │ let v143 : float = 1.6666666666666669E-10 * v132 │
00:05:38 #20049 [Verbose] > │ let v144 : float = v7 + v141 │
00:05:38 #20050 [Verbose] > │ let v145 : float = v8 + v142 │
00:05:38 #20051 [Verbose] > │ let v146 : float = v9 + v143 │
00:05:38 #20052 [Verbose] > │ struct (v1, v2, v138, v139, v140, v134, v144, v145, v146) │
00:05:38 #20053 [Verbose] > │ and closure0 () (v0 : (struct (float * float * float * float * float * float │
00:05:38 #20054 [Verbose] > │ * float * float * float) -> struct (float * float * float * float * float * │
00:05:38 #20055 [Verbose] > │ float * float * float * float))) : (struct (float * float * float * float * │
00:05:38 #20056 [Verbose] > │ float * float * float * float * float) -> struct (float * float * float * │
00:05:38 #20057 [Verbose] > │ float * float * float * float * float * float)) = │
00:05:38 #20058 [Verbose] > │ closure1(v0) │
00:05:38 #20059 [Verbose] > │ and closure2 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 : │
00:05:38 #20060 [Verbose] > │ float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float * │
00:05:38 #20061 [Verbose] > │ float * float * float * float * float * float * float * float) = │
00:05:38 #20062 [Verbose] > │ let v9 : float = v8 * 0.0 │
00:05:38 #20063 [Verbose] > │ let v10 : float = v7 - v9 │
00:05:38 #20064 [Verbose] > │ let v11 : float = v9 - v6 │
00:05:38 #20065 [Verbose] > │ let v12 : float = v6 * 0.0 │
00:05:38 #20066 [Verbose] > │ let v13 : float = v7 * 0.0 │
00:05:38 #20067 [Verbose] > │ let v14 : float = v12 - v13 │
00:05:38 #20068 [Verbose] > │ let v15 : float = v0 * v10 │
00:05:38 #20069 [Verbose] > │ let v16 : float = v0 * v11 │
00:05:38 #20070 [Verbose] > │ let v17 : float = v0 * v14 │
00:05:38 #20071 [Verbose] > │ let v18 : float = v15 / v1 │
00:05:38 #20072 [Verbose] > │ let v19 : float = v16 / v1 │
00:05:38 #20073 [Verbose] > │ let v20 : float = v17 / v1 │
00:05:38 #20074 [Verbose] > │ struct (0.0, 0.0, v6, v7, v8, 1.0, v18, v19, v20) │
00:05:38 #20075 [Verbose] > │ and closure3 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 : │
00:05:38 #20076 [Verbose] > │ float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float * │
00:05:38 #20077 [Verbose] > │ float * float * float * float * float * float * float * float) = │
00:05:38 #20078 [Verbose] > │ let v9 : float = v8 * 0.0 │
00:05:38 #20079 [Verbose] > │ let v10 : float = v7 - v9 │
00:05:38 #20080 [Verbose] > │ let v11 : float = v9 - v6 │
00:05:38 #20081 [Verbose] > │ let v12 : float = v6 * 0.0 │
00:05:38 #20082 [Verbose] > │ let v13 : float = v7 * 0.0 │
00:05:38 #20083 [Verbose] > │ let v14 : float = v12 - v13 │
00:05:38 #20084 [Verbose] > │ let v15 : float = v0 * v10 │
00:05:38 #20085 [Verbose] > │ let v16 : float = v0 * v11 │
00:05:38 #20086 [Verbose] > │ let v17 : float = v0 * v14 │
00:05:38 #20087 [Verbose] > │ let v18 : float = v6 / 299792458.0 │
00:05:38 #20088 [Verbose] > │ let v19 : float = v7 / 299792458.0 │
00:05:38 #20089 [Verbose] > │ let v20 : float = v8 / 299792458.0 │
00:05:38 #20090 [Verbose] > │ let v21 : float = v18 * v18 │
00:05:38 #20091 [Verbose] > │ let v22 : float = v19 * v19 │
00:05:38 #20092 [Verbose] > │ let v23 : float = v21 + v22 │
00:05:38 #20093 [Verbose] > │ let v24 : float = v20 * v20 │
00:05:38 #20094 [Verbose] > │ let v25 : float = v23 + v24 │
00:05:38 #20095 [Verbose] > │ let v26 : float = 1.0 - v25 │
00:05:38 #20096 [Verbose] > │ let v27 : float = sqrt v26 │
00:05:38 #20097 [Verbose] > │ let v28 : float = v15 * v18 │
00:05:38 #20098 [Verbose] > │ let v29 : float = v16 * v19 │
00:05:38 #20099 [Verbose] > │ let v30 : float = v28 + v29 │
00:05:38 #20100 [Verbose] > │ let v31 : float = v17 * v20 │
00:05:38 #20101 [Verbose] > │ let v32 : float = v30 + v31 │
00:05:38 #20102 [Verbose] > │ let v33 : float = v32 * v18 │
00:05:38 #20103 [Verbose] > │ let v34 : float = v32 * v19 │
00:05:38 #20104 [Verbose] > │ let v35 : float = v32 * v20 │
00:05:38 #20105 [Verbose] > │ let v36 : float = -1.0 * v33 │
00:05:38 #20106 [Verbose] > │ let v37 : float = -1.0 * v34 │
00:05:38 #20107 [Verbose] > │ let v38 : float = -1.0 * v35 │
00:05:38 #20108 [Verbose] > │ let v39 : float = v15 + v36 │
00:05:38 #20109 [Verbose] > │ let v40 : float = v16 + v37 │
00:05:38 #20110 [Verbose] > │ let v41 : float = v17 + v38 │
00:05:38 #20111 [Verbose] > │ let v42 : float = v27 * v39 │
00:05:38 #20112 [Verbose] > │ let v43 : float = v27 * v40 │
00:05:38 #20113 [Verbose] > │ let v44 : float = v27 * v41 │
00:05:38 #20114 [Verbose] > │ let v45 : float = v42 / v1 │
00:05:38 #20115 [Verbose] > │ let v46 : float = v43 / v1 │
00:05:38 #20116 [Verbose] > │ let v47 : float = v44 / v1 │
00:05:38 #20117 [Verbose] > │ struct (0.0, 0.0, v6, v7, v8, 1.0, v45, v46, v47) │
00:05:38 #20118 [Verbose] > │ and method2 (v0 : (struct (float * float * float * float * float * float * │
00:05:38 #20119 [Verbose] > │ float * float * float) -> struct (float * float * float * float * float * │
00:05:38 #20120 [Verbose] > │ float * float * float * float)), v1 : float, v2 : float, v3 : float, v4 : │
00:05:38 #20121 [Verbose] > │ float, v5 : float, v6 : float, v7 : float, v8 : float, v9 : float, v10 : │
00:05:38 #20122 [Verbose] > │ int32) : struct (float * float * float * float * float * float * float * │
00:05:38 #20123 [Verbose] > │ float * float) = │
00:05:38 #20124 [Verbose] > │ let v11 : bool = v10 <= 0 │
00:05:38 #20125 [Verbose] > │ if v11 then │
00:05:38 #20126 [Verbose] > │ struct (v1, v2, v3, v4, v5, v6, v7, v8, v9) │
00:05:38 #20127 [Verbose] > │ else │
00:05:38 #20128 [Verbose] > │ let struct (v12 : float, v13 : float, v14 : float, v15 : float, v16 │
00:05:38 #20129 [Verbose] > │ : float, v17 : float, v18 : float, v19 : float, v20 : float) = v0 struct │
00:05:38 #20130 [Verbose] > │ (v1, v2, v3, v4, v5, v6, v7, v8, v9) │
00:05:38 #20131 [Verbose] > │ let v21 : int32 = v10 - 1 │
00:05:38 #20132 [Verbose] > │ method2(v0, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21) │
00:05:38 #20133 [Verbose] > │ and method3 (v0 : UH0, v1 : UH0) : UH0 = │
00:05:38 #20134 [Verbose] > │ match v0 with │
00:05:38 #20135 [Verbose] > │ | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *) │
00:05:38 #20136 [Verbose] > │ let v12 : UH0 = UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v1) │
00:05:38 #20137 [Verbose] > │ method3(v11, v12) │
00:05:38 #20138 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:05:38 #20139 [Verbose] > │ v1 │
00:05:38 #20140 [Verbose] > │ and method1 (v0 : (struct (float * float * float * float * float * float * │
00:05:38 #20141 [Verbose] > │ float * float * float) -> struct (float * float * float * float * float * │
00:05:38 #20142 [Verbose] > │ float * float * float * float)), v1 : UH0, v2 : int32) : UH0 = │
00:05:38 #20143 [Verbose] > │ let v3 : float = 1.602176621E-19 │
00:05:38 #20144 [Verbose] > │ let v4 : float = 1.672621898E-27 │
00:05:38 #20145 [Verbose] > │ let v5 : float = 0.0 │
00:05:38 #20146 [Verbose] > │ let v6 : float = 0.0 │
00:05:38 #20147 [Verbose] > │ let v7 : float = 0.0 │
00:05:38 #20148 [Verbose] > │ let v8 : float = 0.0 │
00:05:38 #20149 [Verbose] > │ let v9 : float = 0.0 │
00:05:38 #20150 [Verbose] > │ let v10 : float = 239833966.4 │
00:05:38 #20151 [Verbose] > │ let v11 : float = 0.0 │
00:05:38 #20152 [Verbose] > │ let struct (v12 : float, v13 : float, v14 : float, v15 : float, v16 : │
00:05:38 #20153 [Verbose] > │ float, v17 : float, v18 : float, v19 : float, v20 : float) = method2(v0, v3, │
00:05:38 #20154 [Verbose] > │ v4, v5, v6, v7, v8, v9, v10, v11, v2) │
00:05:38 #20155 [Verbose] > │ let v21 : bool = v2 < 100 │
00:05:38 #20156 [Verbose] > │ if v21 then │
00:05:38 #20157 [Verbose] > │ let v22 : UH0 = UH0_0(v12, v13, v14, v15, v16, v17, v18, v19, v20, │
00:05:38 #20158 [Verbose] > │ v1) │
00:05:38 #20159 [Verbose] > │ let v23 : int32 = v2 + 1 │
00:05:38 #20160 [Verbose] > │ method1(v0, v22, v23) │
00:05:38 #20161 [Verbose] > │ else │
00:05:38 #20162 [Verbose] > │ let v25 : UH0 = UH0_1 │
00:05:38 #20163 [Verbose] > │ method3(v1, v25) │
00:05:38 #20164 [Verbose] > │ and method4 (v0 : UH0, v1 : UH1) : UH1 = │
00:05:38 #20165 [Verbose] > │ match v0 with │
00:05:38 #20166 [Verbose] > │ | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *) │
00:05:38 #20167 [Verbose] > │ let v12 : UH1 = method4(v11, v1) │
00:05:38 #20168 [Verbose] > │ UH1_0(v4, v5, v12) │
00:05:38 #20169 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:05:38 #20170 [Verbose] > │ v1 │
00:05:38 #20171 [Verbose] > │ and method5 (v0 : UH1, v1 : UH2, v2 : UH2) : struct (UH2 * UH2) = │
00:05:38 #20172 [Verbose] > │ match v0 with │
00:05:38 #20173 [Verbose] > │ | UH1_0(v3, v4, v5) -> (* Cons *) │
00:05:38 #20174 [Verbose] > │ let v6 : UH2 = UH2_0(v3, v1) │
00:05:38 #20175 [Verbose] > │ let v7 : UH2 = UH2_0(v4, v2) │
00:05:38 #20176 [Verbose] > │ method5(v5, v6, v7) │
00:05:38 #20177 [Verbose] > │ | UH1_1 -> (* Nil *) │
00:05:38 #20178 [Verbose] > │ struct (v1, v2) │
00:05:38 #20179 [Verbose] > │ and method6 (v0 : UH2, v1 : UH2) : UH2 = │
00:05:38 #20180 [Verbose] > │ match v0 with │
00:05:38 #20181 [Verbose] > │ | UH2_0(v2, v3) -> (* Cons *) │
00:05:38 #20182 [Verbose] > │ let v4 : UH2 = UH2_0(v2, v1) │
00:05:38 #20183 [Verbose] > │ method6(v3, v4) │
00:05:38 #20184 [Verbose] > │ | UH2_1 -> (* Nil *) │
00:05:38 #20185 [Verbose] > │ v1 │
00:05:38 #20186 [Verbose] > │ and method7 (v0 : (struct (float * float * float * float * float * float * │
00:05:38 #20187 [Verbose] > │ float * float * float) -> struct (float * float * float * float * float * │
00:05:38 #20188 [Verbose] > │ float * float * float * float)), v1 : UH0, v2 : int32) : UH0 = │
00:05:38 #20189 [Verbose] > │ let v3 : float = 1.602176621E-19 │
00:05:38 #20190 [Verbose] > │ let v4 : float = 1.672621898E-27 │
00:05:38 #20191 [Verbose] > │ let v5 : float = 0.0 │
00:05:38 #20192 [Verbose] > │ let v6 : float = 0.0 │
00:05:38 #20193 [Verbose] > │ let v7 : float = 0.0 │
00:05:38 #20194 [Verbose] > │ let v8 : float = 0.0 │
00:05:38 #20195 [Verbose] > │ let v9 : float = 0.0 │
00:05:38 #20196 [Verbose] > │ let v10 : float = 239833966.4 │
00:05:38 #20197 [Verbose] > │ let v11 : float = 0.0 │
00:05:38 #20198 [Verbose] > │ let struct (v12 : float, v13 : float, v14 : float, v15 : float, v16 : │
00:05:38 #20199 [Verbose] > │ float, v17 : float, v18 : float, v19 : float, v20 : float) = method2(v0, v3, │
00:05:38 #20200 [Verbose] > │ v4, v5, v6, v7, v8, v9, v10, v11, v2) │
00:05:38 #20201 [Verbose] > │ let v21 : bool = v2 < 165 │
00:05:38 #20202 [Verbose] > │ if v21 then │
00:05:38 #20203 [Verbose] > │ let v22 : UH0 = UH0_0(v12, v13, v14, v15, v16, v17, v18, v19, v20, │
00:05:38 #20204 [Verbose] > │ v1) │
00:05:38 #20205 [Verbose] > │ let v23 : int32 = v2 + 1 │
00:05:38 #20206 [Verbose] > │ method7(v0, v22, v23) │
00:05:38 #20207 [Verbose] > │ else │
00:05:38 #20208 [Verbose] > │ let v25 : UH0 = UH0_1 │
00:05:38 #20209 [Verbose] > │ method3(v1, v25) │
00:05:38 #20210 [Verbose] > │ and method8 (v0 : UH0, v1 : UH1) : UH1 = │
00:05:38 #20211 [Verbose] > │ match v0 with │
00:05:38 #20212 [Verbose] > │ | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *) │
00:05:38 #20213 [Verbose] > │ let v12 : UH1 = method8(v11, v1) │
00:05:38 #20214 [Verbose] > │ UH1_0(v4, v5, v12) │
00:05:38 #20215 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:05:38 #20216 [Verbose] > │ v1 │
00:05:38 #20217 [Verbose] > │ and method10 (v0 : UH2, v1 : int32) : int32 = │
00:05:38 #20218 [Verbose] > │ match v0 with │
00:05:38 #20219 [Verbose] > │ | UH2_0(v2, v3) -> (* Cons *) │
00:05:38 #20220 [Verbose] > │ let v4 : int32 = v1 + 1 │
00:05:38 #20221 [Verbose] > │ method10(v3, v4) │
00:05:38 #20222 [Verbose] > │ | UH2_1 -> (* Nil *) │
00:05:38 #20223 [Verbose] > │ v1 │
00:05:38 #20224 [Verbose] > │ and method11 (v0 : (float []), v1 : UH2, v2 : int32) : int32 = │
00:05:38 #20225 [Verbose] > │ match v1 with │
00:05:38 #20226 [Verbose] > │ | UH2_0(v3, v4) -> (* Cons *) │
00:05:38 #20227 [Verbose] > │ v0.[int v2] <- v3 │
00:05:38 #20228 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:05:38 #20229 [Verbose] > │ method11(v0, v4, v5) │
00:05:38 #20230 [Verbose] > │ | UH2_1 -> (* Nil *) │
00:05:38 #20231 [Verbose] > │ v2 │
00:05:38 #20232 [Verbose] > │ and method9 (v0 : UH2) : (float []) = │
00:05:38 #20233 [Verbose] > │ let v1 : int32 = 0 │
00:05:38 #20234 [Verbose] > │ let v2 : int32 = method10(v0, v1) │
00:05:38 #20235 [Verbose] > │ let v3 : (float []) = Array.zeroCreate<float> (v2) │
00:05:38 #20236 [Verbose] > │ let v4 : int32 = 0 │
00:05:38 #20237 [Verbose] > │ let v5 : int32 = method11(v3, v0, v4) │
00:05:38 #20238 [Verbose] > │ v3 │
00:05:38 #20239 [Verbose] > │ and method12 (v0 : (struct (string * (float []) * (float [])) [])) : (struct │
00:05:38 #20240 [Verbose] > │ (string * (float []) * (float [])) []) = │
00:05:38 #20241 [Verbose] > │ v0 │
00:05:38 #20242 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:05:38 #20243 [Verbose] > │ []) * (float [])) [])) = │
00:05:38 #20244 [Verbose] > │ let v0 : ((struct (float * float * float * float * float * float * float │
00:05:38 #20245 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float * │
00:05:38 #20246 [Verbose] > │ float * float * float)) -> (struct (float * float * float * float * float * │
00:05:38 #20247 [Verbose] > │ float * float * float * float) -> struct (float * float * float * float * │
00:05:38 #20248 [Verbose] > │ float * float * float * float * float))) = closure0() │
00:05:38 #20249 [Verbose] > │ let v1 : (struct (float * float * float * float * float * float * float │
00:05:38 #20250 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float * │
00:05:38 #20251 [Verbose] > │ float * float * float)) = closure2() │
00:05:38 #20252 [Verbose] > │ let v2 : (struct (float * float * float * float * float * float * float │
00:05:38 #20253 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float * │
00:05:38 #20254 [Verbose] > │ float * float * float)) = v0 v1 │
00:05:38 #20255 [Verbose] > │ let v3 : (struct (float * float * float * float * float * float * float │
00:05:38 #20256 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float * │
00:05:38 #20257 [Verbose] > │ float * float * float)) = closure3() │
00:05:38 #20258 [Verbose] > │ let v4 : (struct (float * float * float * float * float * float * float │
00:05:38 #20259 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float * │
00:05:38 #20260 [Verbose] > │ float * float * float)) = v0 v3 │
00:05:38 #20261 [Verbose] > │ let v5 : UH0 = UH0_1 │
00:05:38 #20262 [Verbose] > │ let v6 : int32 = 0 │
00:05:38 #20263 [Verbose] > │ let v7 : UH0 = method1(v2, v5, v6) │
00:05:38 #20264 [Verbose] > │ let v8 : UH1 = UH1_1 │
00:05:38 #20265 [Verbose] > │ let v9 : UH1 = method4(v7, v8) │
00:05:38 #20266 [Verbose] > │ let v10 : UH2 = UH2_1 │
00:05:38 #20267 [Verbose] > │ let v11 : UH2 = UH2_1 │
00:05:38 #20268 [Verbose] > │ let struct (v12 : UH2, v13 : UH2) = method5(v9, v10, v11) │
00:05:38 #20269 [Verbose] > │ let v14 : UH2 = UH2_1 │
00:05:38 #20270 [Verbose] > │ let v15 : UH2 = method6(v12, v14) │
00:05:38 #20271 [Verbose] > │ let v16 : UH2 = UH2_1 │
00:05:38 #20272 [Verbose] > │ let v17 : UH2 = method6(v13, v16) │
00:05:38 #20273 [Verbose] > │ let v18 : UH0 = UH0_1 │
00:05:38 #20274 [Verbose] > │ let v19 : int32 = 0 │
00:05:38 #20275 [Verbose] > │ let v20 : UH0 = method7(v4, v18, v19) │
00:05:38 #20276 [Verbose] > │ let v21 : UH1 = UH1_1 │
00:05:38 #20277 [Verbose] > │ let v22 : UH1 = method8(v20, v21) │
00:05:38 #20278 [Verbose] > │ let v23 : UH2 = UH2_1 │
00:05:38 #20279 [Verbose] > │ let v24 : UH2 = UH2_1 │
00:05:38 #20280 [Verbose] > │ let struct (v25 : UH2, v26 : UH2) = method5(v22, v23, v24) │
00:05:38 #20281 [Verbose] > │ let v27 : UH2 = UH2_1 │
00:05:38 #20282 [Verbose] > │ let v28 : UH2 = method6(v25, v27) │
00:05:38 #20283 [Verbose] > │ let v29 : UH2 = UH2_1 │
00:05:38 #20284 [Verbose] > │ let v30 : UH2 = method6(v26, v29) │
00:05:38 #20285 [Verbose] > │ let v31 : (float []) = method9(v15) │
00:05:38 #20286 [Verbose] > │ let v32 : (float []) = method9(v17) │
00:05:38 #20287 [Verbose] > │ let v33 : (float []) = method9(v28) │
00:05:38 #20288 [Verbose] > │ let v34 : (float []) = method9(v30) │
00:05:38 #20289 [Verbose] > │ let v35 : string = "newtonian" │
00:05:38 #20290 [Verbose] > │ let v36 : string = "relativistic" │
00:05:38 #20291 [Verbose] > │ let v37 : (struct (string * (float []) * (float [])) []) = [|struct │
00:05:38 #20292 [Verbose] > │ (v35, v31, v32); struct (v36, v33, v34)|] │
00:05:38 #20293 [Verbose] > │ let v38 : (struct (string * (float []) * (float [])) []) = method12(v37) │
00:05:38 #20294 [Verbose] > │ let v39 : string = "proton in a 1-t magnetic field" │
00:05:38 #20295 [Verbose] > │ let v40 : string = "x (m)" │
00:05:38 #20296 [Verbose] > │ let v41 : string = "y (m)" │
00:05:38 #20297 [Verbose] > │ struct (v39, v40, v41, v38) │
00:05:38 #20298 [Verbose] > │ method0() │
00:05:38 #20299 [Verbose] > │ │
00:05:38 #20300 [Verbose] > │ │
00:05:38 #20301 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:38 #20302 [Verbose] >
00:05:38 #20303 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:38 #20304 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:38 #20305 [Verbose] > │ ### system kinetic energy versus time 1 │
00:05:38 #20306 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:38 #20307 [Verbose] >
00:05:38 #20308 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:38 #20309 [Verbose] > // // test
00:05:38 #20310 [Verbose] >
00:05:38 #20311 [Verbose] > inl central_force f (particle_state st1) (particle_state st2) =
00:05:38 #20312 [Verbose] > inl r1 = st1.pos_vec
00:05:38 #20313 [Verbose] > inl r2 = st2.pos_vec
00:05:38 #20314 [Verbose] > inl r21 = r2 ^-^ r1
00:05:38 #20315 [Verbose] > inl r21mag = magnitude r21
00:05:38 #20316 [Verbose] > f r21mag *^ r21 ^/ r21mag
00:05:38 #20317 [Verbose] >
00:05:38 #20318 [Verbose] > inl billiard_force k re =
00:05:38 #20319 [Verbose] > inl f r =
00:05:38 #20320 [Verbose] > if r >= re
00:05:38 #20321 [Verbose] > then 0
00:05:38 #20322 [Verbose] > else -k * (r - re)
00:05:38 #20323 [Verbose] > central_force f
00:05:38 #20324 [Verbose] >
00:05:38 #20325 [Verbose] > type force_vector = vec
00:05:38 #20326 [Verbose] > type two_body_force = particle_state -> particle_state -> force_vector
00:05:38 #20327 [Verbose] >
00:05:38 #20328 [Verbose] > union force =
00:05:38 #20329 [Verbose] > | ExternalForce : i32 * one_body_force
00:05:38 #20330 [Verbose] > | InternalForce : i32 * i32 * two_body_force
00:05:38 #20331 [Verbose] >
00:05:38 #20332 [Verbose] > nominal multi_particle_state = list particle_state
00:05:38 #20333 [Verbose] >
00:05:38 #20334 [Verbose] > nominal d_multi_particle_state = list d_particle_state
00:05:38 #20335 [Verbose] >
00:05:38 #20336 [Verbose] > inl force_on n sts force =
00:05:38 #20337 [Verbose] > match force with
00:05:38 #20338 [Verbose] > | ExternalForce (n0, f_one_body) =>
00:05:38 #20339 [Verbose] > if n = n0
00:05:38 #20340 [Verbose] > then f_one_body
00:05:38 #20341 [Verbose] > else fun _ => zero_vec ()
00:05:38 #20342 [Verbose] > | InternalForce (n0, n1, f_two_body) =>
00:05:38 #20343 [Verbose] > if n = n0
00:05:38 #20344 [Verbose] > then f_two_body (sts |> listm'.item n1)
00:05:38 #20345 [Verbose] > elif n = n1
00:05:38 #20346 [Verbose] > then f_two_body (sts |> listm'.item n0)
00:05:38 #20347 [Verbose] > else fun _ => zero_vec ()
00:05:38 #20348 [Verbose] >
00:05:38 #20349 [Verbose] > inl forces_on n (multi_particle_state sts) fs =
00:05:38 #20350 [Verbose] > fs |> listm.map (force_on n sts)
00:05:38 #20351 [Verbose] >
00:05:38 #20352 [Verbose] > inl newton_second_mps fs (multi_particle_state sts) : d_multi_particle_state =
00:05:38 #20353 [Verbose] > inl deriv (n, st) =
00:05:38 #20354 [Verbose] > newton_second_ps (forces_on n (multi_particle_state sts) fs) st
00:05:38 #20355 [Verbose] > sts |> listm'.indexed |> listm.map deriv |> d_multi_particle_state
00:05:38 #20356 [Verbose] >
00:05:38 #20357 [Verbose] > instance (+++) d_multi_particle_state = fun (d_multi_particle_state dsts1)
00:05:38 #20358 [Verbose] > (d_multi_particle_state dsts2) =>
00:05:38 #20359 [Verbose] > d_multi_particle_state (listm'.zip_with_ (+++) dsts1 dsts2)
00:05:38 #20360 [Verbose] >
00:05:38 #20361 [Verbose] > instance scale d_multi_particle_state = fun w (d_multi_particle_state dsts) =>
00:05:38 #20362 [Verbose] > d_multi_particle_state (dsts |> listm.map (scale w))
00:05:38 #20363 [Verbose] >
00:05:38 #20364 [Verbose] > instance shift multi_particle_state = fun dt dsts (multi_particle_state sts) =>
00:05:38 #20365 [Verbose] > inl (d_multi_particle_state dsts) =
00:05:38 #20366 [Verbose] > real
00:05:38 #20367 [Verbose] > match dsts with
00:05:38 #20368 [Verbose] > | d_multi_particle_state _ => dsts
00:05:38 #20369 [Verbose] > listm'.zip_with_ (shift dt) dsts sts |> multi_particle_state
00:05:38 #20370 [Verbose] >
00:05:38 #20371 [Verbose] > inl euler_cromer_mps dt : numerical_method multi_particle_state
00:05:38 #20372 [Verbose] > d_multi_particle_state =
00:05:38 #20373 [Verbose] > fun deriv mpst0 =>
00:05:38 #20374 [Verbose] > inl mpst1 = euler dt deriv mpst0
00:05:38 #20375 [Verbose] > inl (multi_particle_state sts0) = mpst0
00:05:38 #20376 [Verbose] > inl (multi_particle_state sts1) = mpst1
00:05:38 #20377 [Verbose] > sts1
00:05:38 #20378 [Verbose] > |> listm'.zip_ sts0
00:05:38 #20379 [Verbose] > |> listm.map (fun ((particle_state st0), (particle_state st1)) =>
00:05:38 #20380 [Verbose] > particle_state {
00:05:38 #20381 [Verbose] > st1 with
00:05:38 #20382 [Verbose] > pos_vec = st0.pos_vec ^+^ st1.velocity ^* dt
00:05:38 #20383 [Verbose] > }
00:05:38 #20384 [Verbose] > )
00:05:38 #20385 [Verbose] > |> multi_particle_state
00:05:38 #20386 [Verbose] >
00:05:38 #20387 [Verbose] > inl update_mps (method : numerical_method multi_particle_state
00:05:38 #20388 [Verbose] > d_multi_particle_state) =
00:05:38 #20389 [Verbose] > newton_second_mps >> method
00:05:38 #20390 [Verbose] >
00:05:38 #20391 [Verbose] > inl states_mps (method : numerical_method multi_particle_state
00:05:38 #20392 [Verbose] > d_multi_particle_state) =
00:05:38 #20393 [Verbose] > newton_second_mps >> method >> seq.iterate_
00:05:38 #20394 [Verbose] >
00:05:38 #20395 [Verbose] >
00:05:38 #20396 [Verbose] > inl kinetic_energy (particle_state st) =
00:05:38 #20397 [Verbose] > inl m = st.mass
00:05:38 #20398 [Verbose] > inl v = magnitude st.velocity
00:05:38 #20399 [Verbose] > 0.5 * m * v ** 2
00:05:38 #20400 [Verbose] >
00:05:38 #20401 [Verbose] > inl system_ke (multi_particle_state sts) =
00:05:38 #20402 [Verbose] > sts |> listm.map kinetic_energy |> listm'.sum
00:05:38 #20403 [Verbose] >
00:05:38 #20404 [Verbose] > inl linear_spring_pe k re (particle_state st1) (particle_state st2) =
00:05:38 #20405 [Verbose] > inl r1 = st1.pos_vec
00:05:38 #20406 [Verbose] > inl r2 = st2.pos_vec
00:05:38 #20407 [Verbose] > inl r21 = r2 ^-^ r1
00:05:38 #20408 [Verbose] > inl r21mag = magnitude r21
00:05:38 #20409 [Verbose] > k * (r21mag - re) ** 2 / 2
00:05:38 #20410 [Verbose] >
00:05:38 #20411 [Verbose] > inl earth_surface_gravity_pe (particle_state st) =
00:05:38 #20412 [Verbose] > inl g = 9.80665
00:05:38 #20413 [Verbose] > inl m = st.mass
00:05:38 #20414 [Verbose] > inl z = st.pos_vec.z
00:05:38 #20415 [Verbose] > m * g * z
00:05:38 #20416 [Verbose] >
00:05:38 #20417 [Verbose] > inl two_springs_pe (multi_particle_state sts) =
00:05:38 #20418 [Verbose] > inl st0 = sts |> listm'.item 0i32
00:05:38 #20419 [Verbose] > inl st1 = sts |> listm'.item 1i32
00:05:38 #20420 [Verbose] > linear_spring_pe 100 0.5 (default_particle_state ()) st0
00:05:38 #20421 [Verbose] > + linear_spring_pe 100 0.5 st0 st1
00:05:38 #20422 [Verbose] > + earth_surface_gravity_pe st0
00:05:38 #20423 [Verbose] > + earth_surface_gravity_pe st1
00:05:38 #20424 [Verbose] >
00:05:38 #20425 [Verbose] > inl two_springs_me mpst =
00:05:38 #20426 [Verbose] > system_ke mpst + two_springs_pe mpst
00:05:38 #20427 [Verbose] >
00:05:38 #20428 [Verbose] > inl ball_radius () = 0.03
00:05:38 #20429 [Verbose] >
00:05:38 #20430 [Verbose] > inl billiard_forces k =
00:05:38 #20431 [Verbose] > [[ InternalForce (0, 1, billiard_force k (2 * ball_radius ())) ]]
00:05:38 #20432 [Verbose] >
00:05:38 #20433 [Verbose] > inl billiard_update n_method k dt =
00:05:38 #20434 [Verbose] > update_mps (n_method dt) (billiard_forces k)
00:05:38 #20435 [Verbose] >
00:05:38 #20436 [Verbose] > inl billiard_initial () =
00:05:38 #20437 [Verbose] > inl ball_mass = 0.160
00:05:38 #20438 [Verbose] > inl (particle_state default_particle_state') = default_particle_state ()
00:05:38 #20439 [Verbose] > multi_particle_state [[
00:05:38 #20440 [Verbose] > particle_state {
00:05:38 #20441 [Verbose] > default_particle_state' with
00:05:38 #20442 [Verbose] > mass = ball_mass
00:05:38 #20443 [Verbose] > pos_vec = zero_vec ()
00:05:38 #20444 [Verbose] > velocity = 0.2 *^ i_hat ()
00:05:38 #20445 [Verbose] > }
00:05:38 #20446 [Verbose] > particle_state {
00:05:38 #20447 [Verbose] > default_particle_state' with
00:05:38 #20448 [Verbose] > mass = ball_mass
00:05:38 #20449 [Verbose] > pos_vec = i_hat () ^+^ 0.02 *^ j_hat ()
00:05:38 #20450 [Verbose] > velocity = zero_vec ()
00:05:38 #20451 [Verbose] > }
00:05:38 #20452 [Verbose] > ]]
00:05:38 #20453 [Verbose] >
00:05:38 #20454 [Verbose] > inl billiard_states ~n_method k dt =
00:05:38 #20455 [Verbose] > states_mps (n_method dt) (billiard_forces k) (billiard_initial ())
00:05:38 #20456 [Verbose] >
00:05:38 #20457 [Verbose] > inl billiard_states_finite n_method k dt =
00:05:38 #20458 [Verbose] > billiard_states n_method k dt
00:05:38 #20459 [Verbose] > >> Some
00:05:38 #20460 [Verbose] > |> seq.take_while_ (fun (multi_particle_state mpst) (_ : i32) =>
00:05:38 #20461 [Verbose] > (mpst |> listm'.item 0i32).time <= 10
00:05:38 #20462 [Verbose] > )
00:05:38 #20463 [Verbose] >
00:05:38 #20464 [Verbose] > inl momentum (particle_state st) =
00:05:38 #20465 [Verbose] > inl m = st.mass
00:05:38 #20466 [Verbose] > inl v = st.velocity
00:05:38 #20467 [Verbose] > m *^ v
00:05:38 #20468 [Verbose] >
00:05:38 #20469 [Verbose] > inl system_p (multi_particle_state sts) =
00:05:38 #20470 [Verbose] > sts |> listm.map momentum |> sum_vec
00:05:38 #20471 [Verbose] >
00:05:38 #20472 [Verbose] >
00:05:38 #20473 [Verbose] > inl time_ke_ec_x, time_ke_ec_y =
00:05:38 #20474 [Verbose] > billiard_states_finite euler_cromer_mps 30 0.03
00:05:38 #20475 [Verbose] > |> listm.map (fun (multi_particle_state mpst) =>
00:05:38 #20476 [Verbose] > (mpst |> listm'.item 0i32).time, system_ke (multi_particle_state mpst)
00:05:38 #20477 [Verbose] > )
00:05:38 #20478 [Verbose] > |> listm'.unzip
00:05:38 #20479 [Verbose] >
00:05:38 #20480 [Verbose] > inl time_ke_rk4_x, time_ke_rk4_y =
00:05:38 #20481 [Verbose] > billiard_states_finite runge_kutta_4 30 0.03
00:05:38 #20482 [Verbose] > |> listm.map (fun (multi_particle_state mpst) =>
00:05:38 #20483 [Verbose] > (mpst |> listm'.item 0i32).time, system_ke (multi_particle_state mpst)
00:05:38 #20484 [Verbose] > )
00:05:38 #20485 [Verbose] > |> listm'.unzip
00:05:38 #20486 [Verbose] >
00:05:38 #20487 [Verbose] > inl time_ke_ec_x : a i32 _ = time_ke_ec_x |> listm.toArray
00:05:38 #20488 [Verbose] > inl time_ke_ec_y : a i32 _ = time_ke_ec_y |> listm.toArray
00:05:38 #20489 [Verbose] >
00:05:38 #20490 [Verbose] > inl time_ke_rk4_x : a i32 _ = time_ke_rk4_x |> listm.toArray
00:05:38 #20491 [Verbose] > inl time_ke_rk4_y : a i32 _ = time_ke_rk4_y |> listm.toArray
00:05:38 #20492 [Verbose] >
00:05:38 #20493 [Verbose] > "system kinetic energy versus time",
00:05:38 #20494 [Verbose] > "time (s)",
00:05:38 #20495 [Verbose] > "system kinetic energy (j)",
00:05:38 #20496 [Verbose] > ;[[
00:05:38 #20497 [Verbose] > "euler-cromer", time_ke_ec_x, time_ke_ec_y
00:05:38 #20498 [Verbose] > "runge-kutta 4", time_ke_rk4_x, time_ke_rk4_y
00:05:38 #20499 [Verbose] > ]]
00:05:39 #20500 [Verbose] >
00:05:39 #20501 [Verbose] > ╭─[ 1.53s - return value ]─────────────────────────────────────────────────────╮
00:05:39 #20502 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:05:39 #20503 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:05:39 #20504 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:05:39 #20505 [Verbose] > │ stroke="none"/> │
00:05:39 #20506 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:05:39 #20507 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:05:39 #20508 [Verbose] > │ fill="#FFFFFF"> │
00:05:39 #20509 [Verbose] > │ system kinetic energy versus time │
00:05:39 #20510 [Verbose] > │ </text> │
00:05:39 #20511 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" y1="424" x2="59" │
00:05:39 #20512 [Verbose] > │ y2="75"/> │
00:05:39 #20513 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:05:39 #20514 [Verbose] > │ y2="75"/> │
00:05:39 #20515 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" y1="424" x2="79" │
00:05:39 #20516 [Verbose] > │ y2="75"/> │
00:05:39 #20517 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" y1="424" x2="89" │
00:05:39 #20518 [Verbose] > │ y2="75"/> │
00:05:39 #20519 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1... │
00:05:39 #20520 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:39 #20521 [Verbose] >
00:05:39 #20522 [Verbose] > ╭─[ 1.55s - stdout ]───────────────────────────────────────────────────────────╮
00:05:39 #20523 [Verbose] > │ type UH0 = │
00:05:39 #20524 [Verbose] > │ | UH0_0 of float * float * float * float * float * float * float * float │
00:05:39 #20525 [Verbose] > │ * float * UH0 │
00:05:39 #20526 [Verbose] > │ | UH0_1 │
00:05:39 #20527 [Verbose] > │ and UH1 = │
00:05:39 #20528 [Verbose] > │ | UH1_0 of float * float * float * float * float * float * float * float │
00:05:39 #20529 [Verbose] > │ * float * UH1 │
00:05:39 #20530 [Verbose] > │ | UH1_1 │
00:05:39 #20531 [Verbose] > │ and UH2 = │
00:05:39 #20532 [Verbose] > │ | UH2_0 of float * float * float * float * float * float * float * float │
00:05:39 #20533 [Verbose] > │ * float * float * float * float * float * float * float * float * float * │
00:05:39 #20534 [Verbose] > │ float * UH2 │
00:05:39 #20535 [Verbose] > │ | UH2_1 │
00:05:39 #20536 [Verbose] > │ and UH3 = │
00:05:39 #20537 [Verbose] > │ | UH3_0 of int32 * float * float * float * float * float * float * float │
00:05:39 #20538 [Verbose] > │ * float * float * UH3 │
00:05:39 #20539 [Verbose] > │ | UH3_1 │
00:05:39 #20540 [Verbose] > │ and [<Struct>] US0 = │
00:05:39 #20541 [Verbose] > │ | US0_0 │
00:05:39 #20542 [Verbose] > │ | US0_1 of f1_0 : float * f1_1 : float * f1_2 : float * f1_3 : float * │
00:05:39 #20543 [Verbose] > │ f1_4 : float * f1_5 : float * f1_6 : float * f1_7 : float * f1_8 : float │
00:05:39 #20544 [Verbose] > │ and UH4 = │
00:05:39 #20545 [Verbose] > │ | UH4_0 of UH0 * UH4 │
00:05:39 #20546 [Verbose] > │ | UH4_1 │
00:05:39 #20547 [Verbose] > │ and UH5 = │
00:05:39 #20548 [Verbose] > │ | UH5_0 of float * float * UH5 │
00:05:39 #20549 [Verbose] > │ | UH5_1 │
00:05:39 #20550 [Verbose] > │ and UH6 = │
00:05:39 #20551 [Verbose] > │ | UH6_0 of float * UH6 │
00:05:39 #20552 [Verbose] > │ | UH6_1 │
00:05:39 #20553 [Verbose] > │ let rec method2 (v0 : UH0, v1 : UH0) : UH0 = │
00:05:39 #20554 [Verbose] > │ match v0 with │
00:05:39 #20555 [Verbose] > │ | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *) │
00:05:39 #20556 [Verbose] > │ let v12 : UH0 = UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v1) │
00:05:39 #20557 [Verbose] > │ method2(v11, v12) │
00:05:39 #20558 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:05:39 #20559 [Verbose] > │ v1 │
00:05:39 #20560 [Verbose] > │ and method1 (v0 : float, v1 : UH0, v2 : UH1, v3 : UH0) : UH0 = │
00:05:39 #20561 [Verbose] > │ match v2 with │
00:05:39 #20562 [Verbose] > │ | UH1_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* Cons *) │
00:05:39 #20563 [Verbose] > │ match v3 with │
00:05:39 #20564 [Verbose] > │ | UH0_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (* Cons │
00:05:39 #20565 [Verbose] > │ *) │
00:05:39 #20566 [Verbose] > │ let v24 : float = v9 * v0 │
00:05:39 #20567 [Verbose] > │ let v25 : float = v19 + v24 │
00:05:39 #20568 [Verbose] > │ let v26 : float = v0 * v6 │
00:05:39 #20569 [Verbose] > │ let v27 : float = v0 * v7 │
00:05:39 #20570 [Verbose] > │ let v28 : float = v0 * v8 │
00:05:39 #20571 [Verbose] > │ let v29 : float = v16 + v26 │
00:05:39 #20572 [Verbose] > │ let v30 : float = v17 + v27 │
00:05:39 #20573 [Verbose] > │ let v31 : float = v18 + v28 │
00:05:39 #20574 [Verbose] > │ let v32 : float = v0 * v10 │
00:05:39 #20575 [Verbose] > │ let v33 : float = v0 * v11 │
00:05:39 #20576 [Verbose] > │ let v34 : float = v0 * v12 │
00:05:39 #20577 [Verbose] > │ let v35 : float = v20 + v32 │
00:05:39 #20578 [Verbose] > │ let v36 : float = v21 + v33 │
00:05:39 #20579 [Verbose] > │ let v37 : float = v22 + v34 │
00:05:39 #20580 [Verbose] > │ let v38 : UH0 = UH0_0(v14, v15, v29, v30, v31, v25, v35, v36, │
00:05:39 #20581 [Verbose] > │ v37, v1) │
00:05:39 #20582 [Verbose] > │ method1(v0, v38, v13, v23) │
00:05:39 #20583 [Verbose] > │ | _ -> │
00:05:39 #20584 [Verbose] > │ let v40 : UH0 = UH0_1 │
00:05:39 #20585 [Verbose] > │ method2(v1, v40) │
00:05:39 #20586 [Verbose] > │ | _ -> │
00:05:39 #20587 [Verbose] > │ let v43 : UH0 = UH0_1 │
00:05:39 #20588 [Verbose] > │ method2(v1, v43) │
00:05:39 #20589 [Verbose] > │ and method4 (v0 : UH2, v1 : UH2) : UH2 = │
00:05:39 #20590 [Verbose] > │ match v0 with │
00:05:39 #20591 [Verbose] > │ | UH2_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, │
00:05:39 #20592 [Verbose] > │ v16, v17, v18, v19, v20) -> (* Cons *) │
00:05:39 #20593 [Verbose] > │ let v21 : UH2 = UH2_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, │
00:05:39 #20594 [Verbose] > │ v13, v14, v15, v16, v17, v18, v19, v1) │
00:05:39 #20595 [Verbose] > │ method4(v20, v21) │
00:05:39 #20596 [Verbose] > │ | UH2_1 -> (* Nil *) │
00:05:39 #20597 [Verbose] > │ v1 │
00:05:39 #20598 [Verbose] > │ and method3 (v0 : UH2, v1 : UH0, v2 : UH0) : UH2 = │
00:05:39 #20599 [Verbose] > │ match v1 with │
00:05:39 #20600 [Verbose] > │ | UH0_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* Cons *) │
00:05:39 #20601 [Verbose] > │ match v2 with │
00:05:39 #20602 [Verbose] > │ | UH0_0(v13, v14, v15, v16, v17, v18, v19, v20, v21, v22) -> (* Cons │
00:05:39 #20603 [Verbose] > │ *) │
00:05:39 #20604 [Verbose] > │ let v23 : UH2 = UH2_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v13, │
00:05:39 #20605 [Verbose] > │ v14, v15, v16, v17, v18, v19, v20, v21, v0) │
00:05:39 #20606 [Verbose] > │ method3(v23, v12, v22) │
00:05:39 #20607 [Verbose] > │ | _ -> │
00:05:39 #20608 [Verbose] > │ let v25 : UH2 = UH2_1 │
00:05:39 #20609 [Verbose] > │ method4(v0, v25) │
00:05:39 #20610 [Verbose] > │ | _ -> │
00:05:39 #20611 [Verbose] > │ let v28 : UH2 = UH2_1 │
00:05:39 #20612 [Verbose] > │ method4(v0, v28) │
00:05:39 #20613 [Verbose] > │ and method5 (v0 : float, v1 : UH2, v2 : UH0) : UH0 = │
00:05:39 #20614 [Verbose] > │ match v1 with │
00:05:39 #20615 [Verbose] > │ | UH2_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, │
00:05:39 #20616 [Verbose] > │ v17, v18, v19, v20, v21) -> (* Cons *) │
00:05:39 #20617 [Verbose] > │ let v22 : UH0 = method5(v0, v21, v2) │
00:05:39 #20618 [Verbose] > │ let v23 : float = v0 * v18 │
00:05:39 #20619 [Verbose] > │ let v24 : float = v0 * v19 │
00:05:39 #20620 [Verbose] > │ let v25 : float = v0 * v20 │
00:05:39 #20621 [Verbose] > │ let v26 : float = v5 + v23 │
00:05:39 #20622 [Verbose] > │ let v27 : float = v6 + v24 │
00:05:39 #20623 [Verbose] > │ let v28 : float = v7 + v25 │
00:05:39 #20624 [Verbose] > │ UH0_0(v12, v13, v26, v27, v28, v17, v18, v19, v20, v22) │
00:05:39 #20625 [Verbose] > │ | UH2_1 -> (* Nil *) │
00:05:39 #20626 [Verbose] > │ v2 │
00:05:39 #20627 [Verbose] > │ and closure2 (v0 : float, v1 : (UH0 -> UH1)) (v2 : UH0) : UH0 = │
00:05:39 #20628 [Verbose] > │ let v3 : UH1 = v1 v2 │
00:05:39 #20629 [Verbose] > │ let v4 : UH0 = UH0_1 │
00:05:39 #20630 [Verbose] > │ let v5 : UH0 = method1(v0, v4, v3, v2) │
00:05:39 #20631 [Verbose] > │ let v6 : UH2 = UH2_1 │
00:05:39 #20632 [Verbose] > │ let v7 : UH2 = method3(v6, v2, v5) │
00:05:39 #20633 [Verbose] > │ let v8 : UH0 = UH0_1 │
00:05:39 #20634 [Verbose] > │ let v9 : UH0 = method5(v0, v7, v8) │
00:05:39 #20635 [Verbose] > │ v9 │
00:05:39 #20636 [Verbose] > │ and closure1 (v0 : float) (v1 : (UH0 -> UH1)) : (UH0 -> UH0) = │
00:05:39 #20637 [Verbose] > │ closure2(v0, v1) │
00:05:39 #20638 [Verbose] > │ and closure0 () (v0 : float) : ((UH0 -> UH1) -> (UH0 -> UH0)) = │
00:05:39 #20639 [Verbose] > │ closure1(v0) │
00:05:39 #20640 [Verbose] > │ and method6 (v0 : UH0, v1 : UH3, v2 : int32) : struct (UH3 * int32) = │
00:05:39 #20641 [Verbose] > │ match v0 with │
00:05:39 #20642 [Verbose] > │ | UH0_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* Cons *) │
00:05:39 #20643 [Verbose] > │ let v13 : int32 = v2 + 1 │
00:05:39 #20644 [Verbose] > │ let v14 : UH3 = UH3_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v1) │
00:05:39 #20645 [Verbose] > │ method6(v12, v14, v13) │
00:05:39 #20646 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:05:39 #20647 [Verbose] > │ struct (v1, v2) │
00:05:39 #20648 [Verbose] > │ and method7 (v0 : UH3, v1 : UH3) : UH3 = │
00:05:39 #20649 [Verbose] > │ match v0 with │
00:05:39 #20650 [Verbose] > │ | UH3_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* Cons *) │
00:05:39 #20651 [Verbose] > │ let v13 : UH3 = UH3_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v1) │
00:05:39 #20652 [Verbose] > │ method7(v12, v13) │
00:05:39 #20653 [Verbose] > │ | UH3_1 -> (* Nil *) │
00:05:39 #20654 [Verbose] > │ v1 │
00:05:39 #20655 [Verbose] > │ and closure4 (v0 : float, v1 : float, v2 : float, v3 : float, v4 : float, v5 │
00:05:39 #20656 [Verbose] > │ : float, v6 : float, v7 : float, v8 : float) struct (v9 : float, v10 : │
00:05:39 #20657 [Verbose] > │ float, v11 : float, v12 : float, v13 : float, v14 : float, v15 : float, v16 │
00:05:39 #20658 [Verbose] > │ : float, v17 : float) : struct (float * float * float) = │
00:05:39 #20659 [Verbose] > │ let v18 : float = -1.0 * v2 │
00:05:39 #20660 [Verbose] > │ let v19 : float = -1.0 * v3 │
00:05:39 #20661 [Verbose] > │ let v20 : float = -1.0 * v4 │
00:05:39 #20662 [Verbose] > │ let v21 : float = v11 + v18 │
00:05:39 #20663 [Verbose] > │ let v22 : float = v12 + v19 │
00:05:39 #20664 [Verbose] > │ let v23 : float = v13 + v20 │
00:05:39 #20665 [Verbose] > │ let v24 : float = v21 * v21 │
00:05:39 #20666 [Verbose] > │ let v25 : float = v22 * v22 │
00:05:39 #20667 [Verbose] > │ let v26 : float = v24 + v25 │
00:05:39 #20668 [Verbose] > │ let v27 : float = v23 * v23 │
00:05:39 #20669 [Verbose] > │ let v28 : float = v26 + v27 │
00:05:39 #20670 [Verbose] > │ let v29 : float = sqrt v28 │
00:05:39 #20671 [Verbose] > │ let v30 : bool = v29 >= 0.06 │
00:05:39 #20672 [Verbose] > │ let v33 : float = │
00:05:39 #20673 [Verbose] > │ if v30 then │
00:05:39 #20674 [Verbose] > │ 0.0 │
00:05:39 #20675 [Verbose] > │ else │
00:05:39 #20676 [Verbose] > │ let v31 : float = v29 - 0.06 │
00:05:39 #20677 [Verbose] > │ let v32 : float = -30.0 * v31 │
00:05:39 #20678 [Verbose] > │ v32 │
00:05:39 #20679 [Verbose] > │ let v34 : float = v33 * v21 │
00:05:39 #20680 [Verbose] > │ let v35 : float = v33 * v22 │
00:05:39 #20681 [Verbose] > │ let v36 : float = v33 * v23 │
00:05:39 #20682 [Verbose] > │ let v37 : float = v34 / v29 │
00:05:39 #20683 [Verbose] > │ let v38 : float = v35 / v29 │
00:05:39 #20684 [Verbose] > │ let v39 : float = v36 / v29 │
00:05:39 #20685 [Verbose] > │ struct (v37, v38, v39) │
00:05:39 #20686 [Verbose] > │ and closure5 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 : │
00:05:39 #20687 [Verbose] > │ float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float * │
00:05:39 #20688 [Verbose] > │ float * float) = │
00:05:39 #20689 [Verbose] > │ struct (0.0, 0.0, 0.0) │
00:05:39 #20690 [Verbose] > │ and method8 (v0 : UH0, v1 : UH3, v2 : UH1) : UH1 = │
00:05:39 #20691 [Verbose] > │ match v1 with │
00:05:39 #20692 [Verbose] > │ | UH3_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* Cons *) │
00:05:39 #20693 [Verbose] > │ let v14 : UH1 = method8(v0, v13, v2) │
00:05:39 #20694 [Verbose] > │ let v15 : bool = v3 = 0 │
00:05:39 #20695 [Verbose] > │ let v134 : (struct (float * float * float * float * float * float * │
00:05:39 #20696 [Verbose] > │ float * float * float) -> struct (float * float * float)) = │
00:05:39 #20697 [Verbose] > │ if v15 then │
00:05:39 #20698 [Verbose] > │ let v42 : US0 = │
00:05:39 #20699 [Verbose] > │ match v0 with │
00:05:39 #20700 [Verbose] > │ | UH0_0(v16, v17, v18, v19, v20, v21, v22, v23, v24, │
00:05:39 #20701 [Verbose] > │ v25) -> (* Cons *) │
00:05:39 #20702 [Verbose] > │ match v25 with │
00:05:39 #20703 [Verbose] > │ | UH0_0(v26, v27, v28, v29, v30, v31, v32, v33, v34, │
00:05:39 #20704 [Verbose] > │ v35) -> (* Cons *) │
00:05:39 #20705 [Verbose] > │ US0_1(v26, v27, v28, v29, v30, v31, v32, v33, │
00:05:39 #20706 [Verbose] > │ v34) │
00:05:39 #20707 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:05:39 #20708 [Verbose] > │ US0_0 │
00:05:39 #20709 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:05:39 #20710 [Verbose] > │ US0_0 │
00:05:39 #20711 [Verbose] > │ let struct (v70 : float, v71 : float, v72 : float, v73 : │
00:05:39 #20712 [Verbose] > │ float, v74 : float, v75 : float, v76 : float, v77 : float, v78 : float) = │
00:05:39 #20713 [Verbose] > │ match v42 with │
00:05:39 #20714 [Verbose] > │ | US0_0 -> (* None *) │
00:05:39 #20715 [Verbose] > │ failwith<struct (float * float * float * float * │
00:05:39 #20716 [Verbose] > │ float * float * float * float * float)> "Option does not have a value." │
00:05:39 #20717 [Verbose] > │ | US0_1(v43, v44, v45, v46, v47, v48, v49, v50, v51) -> │
00:05:39 #20718 [Verbose] > │ (* Some *) │
00:05:39 #20719 [Verbose] > │ struct (v43, v44, v45, v46, v47, v48, v49, v50, v51) │
00:05:39 #20720 [Verbose] > │ closure4(v70, v71, v72, v73, v74, v75, v76, v77, v78) │
00:05:39 #20721 [Verbose] > │ else │
00:05:39 #20722 [Verbose] > │ let v80 : bool = v3 = 1 │
00:05:39 #20723 [Verbose] > │ if v80 then │
00:05:39 #20724 [Verbose] > │ let v94 : US0 = │
00:05:39 #20725 [Verbose] > │ match v0 with │
00:05:39 #20726 [Verbose] > │ | UH0_0(v81, v82, v83, v84, v85, v86, v87, v88, v89, │
00:05:39 #20727 [Verbose] > │ v90) -> (* Cons *) │
00:05:39 #20728 [Verbose] > │ US0_1(v81, v82, v83, v84, v85, v86, v87, v88, │
00:05:39 #20729 [Verbose] > │ v89) │
00:05:39 #20730 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:05:39 #20731 [Verbose] > │ US0_0 │
00:05:39 #20732 [Verbose] > │ let struct (v122 : float, v123 : float, v124 : float, │
00:05:39 #20733 [Verbose] > │ v125 : float, v126 : float, v127 : float, v128 : float, v129 : float, v130 : │
00:05:39 #20734 [Verbose] > │ float) = │
00:05:39 #20735 [Verbose] > │ match v94 with │
00:05:39 #20736 [Verbose] > │ | US0_0 -> (* None *) │
00:05:39 #20737 [Verbose] > │ failwith<struct (float * float * float * float * │
00:05:39 #20738 [Verbose] > │ float * float * float * float * float)> "Option does not have a value." │
00:05:39 #20739 [Verbose] > │ | US0_1(v95, v96, v97, v98, v99, v100, v101, v102, │
00:05:39 #20740 [Verbose] > │ v103) -> (* Some *) │
00:05:39 #20741 [Verbose] > │ struct (v95, v96, v97, v98, v99, v100, v101, │
00:05:39 #20742 [Verbose] > │ v102, v103) │
00:05:39 #20743 [Verbose] > │ closure4(v122, v123, v124, v125, v126, v127, v128, v129, │
00:05:39 #20744 [Verbose] > │ v130) │
00:05:39 #20745 [Verbose] > │ else │
00:05:39 #20746 [Verbose] > │ closure5() │
00:05:39 #20747 [Verbose] > │ let struct (v135 : float, v136 : float, v137 : float) = v134 struct │
00:05:39 #20748 [Verbose] > │ (v4, v5, v6, v7, v8, v9, v10, v11, v12) │
00:05:39 #20749 [Verbose] > │ let v138 : float = v135 / v5 │
00:05:39 #20750 [Verbose] > │ let v139 : float = v136 / v5 │
00:05:39 #20751 [Verbose] > │ let v140 : float = v137 / v5 │
00:05:39 #20752 [Verbose] > │ UH1_0(0.0, 0.0, v10, v11, v12, 1.0, v138, v139, v140, v14) │
00:05:39 #20753 [Verbose] > │ | UH3_1 -> (* Nil *) │
00:05:39 #20754 [Verbose] > │ v2 │
00:05:39 #20755 [Verbose] > │ and closure3 () (v0 : UH0) : UH1 = │
00:05:39 #20756 [Verbose] > │ let v1 : UH3 = UH3_1 │
00:05:39 #20757 [Verbose] > │ let v2 : int32 = 0 │
00:05:39 #20758 [Verbose] > │ let struct (v3 : UH3, v4 : int32) = method6(v0, v1, v2) │
00:05:39 #20759 [Verbose] > │ let v5 : UH3 = UH3_1 │
00:05:39 #20760 [Verbose] > │ let v6 : UH3 = method7(v3, v5) │
00:05:39 #20761 [Verbose] > │ let v7 : UH1 = UH1_1 │
00:05:39 #20762 [Verbose] > │ let v8 : UH1 = method8(v0, v6, v7) │
00:05:39 #20763 [Verbose] > │ v8 │
00:05:39 #20764 [Verbose] > │ and method10 (v0 : (UH0 -> UH0), v1 : UH0, v2 : int32) : UH0 = │
00:05:39 #20765 [Verbose] > │ let v3 : bool = v2 <= 0 │
00:05:39 #20766 [Verbose] > │ if v3 then │
00:05:39 #20767 [Verbose] > │ v1 │
00:05:39 #20768 [Verbose] > │ else │
00:05:39 #20769 [Verbose] > │ let v4 : UH0 = v0 v1 │
00:05:39 #20770 [Verbose] > │ let v5 : int32 = v2 - 1 │
00:05:39 #20771 [Verbose] > │ method10(v0, v4, v5) │
00:05:39 #20772 [Verbose] > │ and method11 (v0 : UH4, v1 : UH4) : UH4 = │
00:05:39 #20773 [Verbose] > │ match v0 with │
00:05:39 #20774 [Verbose] > │ | UH4_0(v2, v3) -> (* Cons *) │
00:05:39 #20775 [Verbose] > │ let v4 : UH4 = UH4_0(v2, v1) │
00:05:39 #20776 [Verbose] > │ method11(v3, v4) │
00:05:39 #20777 [Verbose] > │ | UH4_1 -> (* Nil *) │
00:05:39 #20778 [Verbose] > │ v1 │
00:05:39 #20779 [Verbose] > │ and method9 (v0 : (UH0 -> UH0), v1 : UH4, v2 : int32) : UH4 = │
00:05:39 #20780 [Verbose] > │ let v3 : float = 0.0 │
00:05:39 #20781 [Verbose] > │ let v4 : float = 0.16 │
00:05:39 #20782 [Verbose] > │ let v5 : float = 0.0 │
00:05:39 #20783 [Verbose] > │ let v6 : float = 0.0 │
00:05:39 #20784 [Verbose] > │ let v7 : float = 0.0 │
00:05:39 #20785 [Verbose] > │ let v8 : float = 0.0 │
00:05:39 #20786 [Verbose] > │ let v9 : float = 0.2 │
00:05:39 #20787 [Verbose] > │ let v10 : float = 0.0 │
00:05:39 #20788 [Verbose] > │ let v11 : float = 0.0 │
00:05:39 #20789 [Verbose] > │ let v12 : float = 1.0 │
00:05:39 #20790 [Verbose] > │ let v13 : float = 0.02 │
00:05:39 #20791 [Verbose] > │ let v14 : float = 0.0 │
00:05:39 #20792 [Verbose] > │ let v15 : float = 0.0 │
00:05:39 #20793 [Verbose] > │ let v16 : float = 0.0 │
00:05:39 #20794 [Verbose] > │ let v17 : float = 0.0 │
00:05:39 #20795 [Verbose] > │ let v18 : UH0 = UH0_1 │
00:05:39 #20796 [Verbose] > │ let v19 : UH0 = UH0_0(v3, v4, v12, v13, v14, v8, v15, v16, v17, v18) │
00:05:39 #20797 [Verbose] > │ let v20 : UH0 = UH0_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v19) │
00:05:39 #20798 [Verbose] > │ let v21 : UH0 = method10(v0, v20, v2) │
00:05:39 #20799 [Verbose] > │ let v35 : US0 = │
00:05:39 #20800 [Verbose] > │ match v21 with │
00:05:39 #20801 [Verbose] > │ | UH0_0(v22, v23, v24, v25, v26, v27, v28, v29, v30, v31) -> (* Cons │
00:05:39 #20802 [Verbose] > │ *) │
00:05:39 #20803 [Verbose] > │ US0_1(v22, v23, v24, v25, v26, v27, v28, v29, v30) │
00:05:39 #20804 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:05:39 #20805 [Verbose] > │ US0_0 │
00:05:39 #20806 [Verbose] > │ let struct (v63 : float, v64 : float, v65 : float, v66 : float, v67 : │
00:05:39 #20807 [Verbose] > │ float, v68 : float, v69 : float, v70 : float, v71 : float) = │
00:05:39 #20808 [Verbose] > │ match v35 with │
00:05:39 #20809 [Verbose] > │ | US0_0 -> (* None *) │
00:05:39 #20810 [Verbose] > │ failwith<struct (float * float * float * float * float * float * │
00:05:39 #20811 [Verbose] > │ float * float * float)> "Option does not have a value." │
00:05:39 #20812 [Verbose] > │ | US0_1(v36, v37, v38, v39, v40, v41, v42, v43, v44) -> (* Some *) │
00:05:39 #20813 [Verbose] > │ struct (v36, v37, v38, v39, v40, v41, v42, v43, v44) │
00:05:39 #20814 [Verbose] > │ let v72 : bool = v68 <= 10.0 │
00:05:39 #20815 [Verbose] > │ if v72 then │
00:05:39 #20816 [Verbose] > │ let v73 : UH4 = UH4_0(v21, v1) │
00:05:39 #20817 [Verbose] > │ let v74 : int32 = v2 + 1 │
00:05:39 #20818 [Verbose] > │ method9(v0, v73, v74) │
00:05:39 #20819 [Verbose] > │ else │
00:05:39 #20820 [Verbose] > │ let v76 : UH4 = UH4_1 │
00:05:39 #20821 [Verbose] > │ method11(v1, v76) │
00:05:39 #20822 [Verbose] > │ and method13 (v0 : UH0, v1 : UH6) : UH6 = │
00:05:39 #20823 [Verbose] > │ match v0 with │
00:05:39 #20824 [Verbose] > │ | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *) │
00:05:39 #20825 [Verbose] > │ let v12 : UH6 = method13(v11, v1) │
00:05:39 #20826 [Verbose] > │ let v13 : float = v8 * v8 │
00:05:39 #20827 [Verbose] > │ let v14 : float = v9 * v9 │
00:05:39 #20828 [Verbose] > │ let v15 : float = v13 + v14 │
00:05:39 #20829 [Verbose] > │ let v16 : float = v10 * v10 │
00:05:39 #20830 [Verbose] > │ let v17 : float = v15 + v16 │
00:05:39 #20831 [Verbose] > │ let v18 : float = sqrt v17 │
00:05:39 #20832 [Verbose] > │ let v19 : float = 0.5 * v3 │
00:05:39 #20833 [Verbose] > │ let v20 : float = v18 ** 2.0 │
00:05:39 #20834 [Verbose] > │ let v21 : float = v19 * v20 │
00:05:39 #20835 [Verbose] > │ UH6_0(v21, v12) │
00:05:39 #20836 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:05:39 #20837 [Verbose] > │ v1 │
00:05:39 #20838 [Verbose] > │ and method14 (v0 : UH6, v1 : float) : float = │
00:05:39 #20839 [Verbose] > │ match v0 with │
00:05:39 #20840 [Verbose] > │ | UH6_0(v2, v3) -> (* Cons *) │
00:05:39 #20841 [Verbose] > │ let v4 : float = v1 + v2 │
00:05:39 #20842 [Verbose] > │ method14(v3, v4) │
00:05:39 #20843 [Verbose] > │ | UH6_1 -> (* Nil *) │
00:05:39 #20844 [Verbose] > │ v1 │
00:05:39 #20845 [Verbose] > │ and method12 (v0 : UH4, v1 : UH5) : UH5 = │
00:05:39 #20846 [Verbose] > │ match v0 with │
00:05:39 #20847 [Verbose] > │ | UH4_0(v2, v3) -> (* Cons *) │
00:05:39 #20848 [Verbose] > │ let v4 : UH5 = method12(v3, v1) │
00:05:39 #20849 [Verbose] > │ let v18 : US0 = │
00:05:39 #20850 [Verbose] > │ match v2 with │
00:05:39 #20851 [Verbose] > │ | UH0_0(v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) -> (* Cons │
00:05:39 #20852 [Verbose] > │ *) │
00:05:39 #20853 [Verbose] > │ US0_1(v5, v6, v7, v8, v9, v10, v11, v12, v13) │
00:05:39 #20854 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:05:39 #20855 [Verbose] > │ US0_0 │
00:05:39 #20856 [Verbose] > │ let struct (v46 : float, v47 : float, v48 : float, v49 : float, v50 │
00:05:39 #20857 [Verbose] > │ : float, v51 : float, v52 : float, v53 : float, v54 : float) = │
00:05:39 #20858 [Verbose] > │ match v18 with │
00:05:39 #20859 [Verbose] > │ | US0_0 -> (* None *) │
00:05:39 #20860 [Verbose] > │ failwith<struct (float * float * float * float * float * │
00:05:39 #20861 [Verbose] > │ float * float * float * float)> "Option does not have a value." │
00:05:39 #20862 [Verbose] > │ | US0_1(v19, v20, v21, v22, v23, v24, v25, v26, v27) -> (* Some │
00:05:39 #20863 [Verbose] > │ *) │
00:05:39 #20864 [Verbose] > │ struct (v19, v20, v21, v22, v23, v24, v25, v26, v27) │
00:05:39 #20865 [Verbose] > │ let v55 : UH6 = UH6_1 │
00:05:39 #20866 [Verbose] > │ let v56 : UH6 = method13(v2, v55) │
00:05:39 #20867 [Verbose] > │ let v57 : float = 0.0 │
00:05:39 #20868 [Verbose] > │ let v58 : float = method14(v56, v57) │
00:05:39 #20869 [Verbose] > │ UH5_0(v51, v58, v4) │
00:05:39 #20870 [Verbose] > │ | UH4_1 -> (* Nil *) │
00:05:39 #20871 [Verbose] > │ v1 │
00:05:39 #20872 [Verbose] > │ and method15 (v0 : UH5, v1 : UH6, v2 : UH6) : struct (UH6 * UH6) = │
00:05:39 #20873 [Verbose] > │ match v0 with │
00:05:39 #20874 [Verbose] > │ | UH5_0(v3, v4, v5) -> (* Cons *) │
00:05:39 #20875 [Verbose] > │ let v6 : UH6 = UH6_0(v3, v1) │
00:05:39 #20876 [Verbose] > │ let v7 : UH6 = UH6_0(v4, v2) │
00:05:39 #20877 [Verbose] > │ method15(v5, v6, v7) │
00:05:39 #20878 [Verbose] > │ | UH5_1 -> (* Nil *) │
00:05:39 #20879 [Verbose] > │ struct (v1, v2) │
00:05:39 #20880 [Verbose] > │ and method16 (v0 : UH6, v1 : UH6) : UH6 = │
00:05:39 #20881 [Verbose] > │ match v0 with │
00:05:39 #20882 [Verbose] > │ | UH6_0(v2, v3) -> (* Cons *) │
00:05:39 #20883 [Verbose] > │ let v4 : UH6 = UH6_0(v2, v1) │
00:05:39 #20884 [Verbose] > │ method16(v3, v4) │
00:05:39 #20885 [Verbose] > │ | UH6_1 -> (* Nil *) │
00:05:39 #20886 [Verbose] > │ v1 │
00:05:39 #20887 [Verbose] > │ and method18 (v0 : UH1, v1 : UH1) : UH1 = │
00:05:39 #20888 [Verbose] > │ match v0 with │
00:05:39 #20889 [Verbose] > │ | UH1_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *) │
00:05:39 #20890 [Verbose] > │ let v12 : UH1 = UH1_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v1) │
00:05:39 #20891 [Verbose] > │ method18(v11, v12) │
00:05:39 #20892 [Verbose] > │ | UH1_1 -> (* Nil *) │
00:05:39 #20893 [Verbose] > │ v1 │
00:05:39 #20894 [Verbose] > │ and method17 (v0 : UH1, v1 : UH1, v2 : UH1) : UH1 = │
00:05:39 #20895 [Verbose] > │ match v1 with │
00:05:39 #20896 [Verbose] > │ | UH1_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* Cons *) │
00:05:39 #20897 [Verbose] > │ match v2 with │
00:05:39 #20898 [Verbose] > │ | UH1_0(v13, v14, v15, v16, v17, v18, v19, v20, v21, v22) -> (* Cons │
00:05:39 #20899 [Verbose] > │ *) │
00:05:39 #20900 [Verbose] > │ let v23 : float = v3 + v13 │
00:05:39 #20901 [Verbose] > │ let v24 : float = v4 + v14 │
00:05:39 #20902 [Verbose] > │ let v25 : float = v8 + v18 │
00:05:39 #20903 [Verbose] > │ let v26 : float = v5 + v15 │
00:05:39 #20904 [Verbose] > │ let v27 : float = v6 + v16 │
00:05:39 #20905 [Verbose] > │ let v28 : float = v7 + v17 │
00:05:39 #20906 [Verbose] > │ let v29 : float = v9 + v19 │
00:05:39 #20907 [Verbose] > │ let v30 : float = v10 + v20 │
00:05:39 #20908 [Verbose] > │ let v31 : float = v11 + v21 │
00:05:39 #20909 [Verbose] > │ let v32 : UH1 = UH1_0(v23, v24, v26, v27, v28, v25, v29, v30, │
00:05:39 #20910 [Verbose] > │ v31, v0) │
00:05:39 #20911 [Verbose] > │ method17(v32, v12, v22) │
00:05:39 #20912 [Verbose] > │ | _ -> │
00:05:39 #20913 [Verbose] > │ let v34 : UH1 = UH1_1 │
00:05:39 #20914 [Verbose] > │ method18(v0, v34) │
00:05:39 #20915 [Verbose] > │ | _ -> │
00:05:39 #20916 [Verbose] > │ let v37 : UH1 = UH1_1 │
00:05:39 #20917 [Verbose] > │ method18(v0, v37) │
00:05:39 #20918 [Verbose] > │ and closure8 (v0 : float, v1 : (UH0 -> UH1)) (v2 : UH0) : UH0 = │
00:05:39 #20919 [Verbose] > │ let v3 : UH1 = v1 v2 │
00:05:39 #20920 [Verbose] > │ let v4 : float = v0 / 2.0 │
00:05:39 #20921 [Verbose] > │ let v5 : UH0 = UH0_1 │
00:05:39 #20922 [Verbose] > │ let v6 : UH0 = method1(v4, v5, v3, v2) │
00:05:39 #20923 [Verbose] > │ let v7 : UH1 = v1 v6 │
00:05:39 #20924 [Verbose] > │ let v8 : UH0 = UH0_1 │
00:05:39 #20925 [Verbose] > │ let v9 : UH0 = method1(v4, v8, v7, v2) │
00:05:39 #20926 [Verbose] > │ let v10 : UH1 = v1 v9 │
00:05:39 #20927 [Verbose] > │ let v11 : UH0 = UH0_1 │
00:05:39 #20928 [Verbose] > │ let v12 : UH0 = method1(v0, v11, v10, v2) │
00:05:39 #20929 [Verbose] > │ let v13 : UH1 = v1 v12 │
00:05:39 #20930 [Verbose] > │ let v14 : float = v0 / 6.0 │
00:05:39 #20931 [Verbose] > │ let v15 : UH1 = UH1_1 │
00:05:39 #20932 [Verbose] > │ let v16 : UH1 = method17(v15, v3, v7) │
00:05:39 #20933 [Verbose] > │ let v17 : UH1 = UH1_1 │
00:05:39 #20934 [Verbose] > │ let v18 : UH1 = method17(v17, v16, v7) │
00:05:39 #20935 [Verbose] > │ let v19 : UH1 = UH1_1 │
00:05:39 #20936 [Verbose] > │ let v20 : UH1 = method17(v19, v18, v10) │
00:05:39 #20937 [Verbose] > │ let v21 : UH1 = UH1_1 │
00:05:39 #20938 [Verbose] > │ let v22 : UH1 = method17(v21, v20, v10) │
00:05:39 #20939 [Verbose] > │ let v23 : UH1 = UH1_1 │
00:05:39 #20940 [Verbose] > │ let v24 : UH1 = method17(v23, v22, v13) │
00:05:39 #20941 [Verbose] > │ let v25 : UH0 = UH0_1 │
00:05:39 #20942 [Verbose] > │ let v26 : UH0 = method1(v14, v25, v24, v2) │
00:05:39 #20943 [Verbose] > │ v26 │
00:05:39 #20944 [Verbose] > │ and closure7 (v0 : float) (v1 : (UH0 -> UH1)) : (UH0 -> UH0) = │
00:05:39 #20945 [Verbose] > │ closure8(v0, v1) │
00:05:39 #20946 [Verbose] > │ and closure6 () (v0 : float) : ((UH0 -> UH1) -> (UH0 -> UH0)) = │
00:05:39 #20947 [Verbose] > │ closure7(v0) │
00:05:39 #20948 [Verbose] > │ and method19 (v0 : UH4, v1 : UH5) : UH5 = │
00:05:39 #20949 [Verbose] > │ match v0 with │
00:05:39 #20950 [Verbose] > │ | UH4_0(v2, v3) -> (* Cons *) │
00:05:39 #20951 [Verbose] > │ let v4 : UH5 = method19(v3, v1) │
00:05:39 #20952 [Verbose] > │ let v18 : US0 = │
00:05:39 #20953 [Verbose] > │ match v2 with │
00:05:39 #20954 [Verbose] > │ | UH0_0(v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) -> (* Cons │
00:05:39 #20955 [Verbose] > │ *) │
00:05:39 #20956 [Verbose] > │ US0_1(v5, v6, v7, v8, v9, v10, v11, v12, v13) │
00:05:39 #20957 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:05:39 #20958 [Verbose] > │ US0_0 │
00:05:39 #20959 [Verbose] > │ let struct (v46 : float, v47 : float, v48 : float, v49 : float, v50 │
00:05:39 #20960 [Verbose] > │ : float, v51 : float, v52 : float, v53 : float, v54 : float) = │
00:05:39 #20961 [Verbose] > │ match v18 with │
00:05:39 #20962 [Verbose] > │ | US0_0 -> (* None *) │
00:05:39 #20963 [Verbose] > │ failwith<struct (float * float * float * float * float * │
00:05:39 #20964 [Verbose] > │ float * float * float * float)> "Option does not have a value." │
00:05:39 #20965 [Verbose] > │ | US0_1(v19, v20, v21, v22, v23, v24, v25, v26, v27) -> (* Some │
00:05:39 #20966 [Verbose] > │ *) │
00:05:39 #20967 [Verbose] > │ struct (v19, v20, v21, v22, v23, v24, v25, v26, v27) │
00:05:39 #20968 [Verbose] > │ let v55 : UH6 = UH6_1 │
00:05:39 #20969 [Verbose] > │ let v56 : UH6 = method13(v2, v55) │
00:05:39 #20970 [Verbose] > │ let v57 : float = 0.0 │
00:05:39 #20971 [Verbose] > │ let v58 : float = method14(v56, v57) │
00:05:39 #20972 [Verbose] > │ UH5_0(v51, v58, v4) │
00:05:39 #20973 [Verbose] > │ | UH4_1 -> (* Nil *) │
00:05:39 #20974 [Verbose] > │ v1 │
00:05:39 #20975 [Verbose] > │ and method21 (v0 : UH6, v1 : int32) : int32 = │
00:05:39 #20976 [Verbose] > │ match v0 with │
00:05:39 #20977 [Verbose] > │ | UH6_0(v2, v3) -> (* Cons *) │
00:05:39 #20978 [Verbose] > │ let v4 : int32 = v1 + 1 │
00:05:39 #20979 [Verbose] > │ method21(v3, v4) │
00:05:39 #20980 [Verbose] > │ | UH6_1 -> (* Nil *) │
00:05:39 #20981 [Verbose] > │ v1 │
00:05:39 #20982 [Verbose] > │ and method22 (v0 : (float []), v1 : UH6, v2 : int32) : int32 = │
00:05:39 #20983 [Verbose] > │ match v1 with │
00:05:39 #20984 [Verbose] > │ | UH6_0(v3, v4) -> (* Cons *) │
00:05:39 #20985 [Verbose] > │ v0.[int v2] <- v3 │
00:05:39 #20986 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:05:39 #20987 [Verbose] > │ method22(v0, v4, v5) │
00:05:39 #20988 [Verbose] > │ | UH6_1 -> (* Nil *) │
00:05:39 #20989 [Verbose] > │ v2 │
00:05:39 #20990 [Verbose] > │ and method20 (v0 : UH6) : (float []) = │
00:05:39 #20991 [Verbose] > │ let v1 : int32 = 0 │
00:05:39 #20992 [Verbose] > │ let v2 : int32 = method21(v0, v1) │
00:05:39 #20993 [Verbose] > │ let v3 : (float []) = Array.zeroCreate<float> (v2) │
00:05:39 #20994 [Verbose] > │ let v4 : int32 = 0 │
00:05:39 #20995 [Verbose] > │ let v5 : int32 = method22(v3, v0, v4) │
00:05:39 #20996 [Verbose] > │ v3 │
00:05:39 #20997 [Verbose] > │ and method23 (v0 : (struct (string * (float []) * (float [])) [])) : (struct │
00:05:39 #20998 [Verbose] > │ (string * (float []) * (float [])) []) = │
00:05:39 #20999 [Verbose] > │ v0 │
00:05:39 #21000 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:05:39 #21001 [Verbose] > │ []) * (float [])) [])) = │
00:05:39 #21002 [Verbose] > │ let v0 : (float -> ((UH0 -> UH1) -> (UH0 -> UH0))) = closure0() │
00:05:39 #21003 [Verbose] > │ let v1 : ((UH0 -> UH1) -> (UH0 -> UH0)) = v0 0.03 │
00:05:39 #21004 [Verbose] > │ let v2 : (UH0 -> UH1) = closure3() │
00:05:39 #21005 [Verbose] > │ let v3 : (UH0 -> UH0) = v1 v2 │
00:05:39 #21006 [Verbose] > │ let v4 : UH4 = UH4_1 │
00:05:39 #21007 [Verbose] > │ let v5 : int32 = 0 │
00:05:39 #21008 [Verbose] > │ let v6 : UH4 = method9(v3, v4, v5) │
00:05:39 #21009 [Verbose] > │ let v7 : UH5 = UH5_1 │
00:05:39 #21010 [Verbose] > │ let v8 : UH5 = method12(v6, v7) │
00:05:39 #21011 [Verbose] > │ let v9 : UH6 = UH6_1 │
00:05:39 #21012 [Verbose] > │ let v10 : UH6 = UH6_1 │
00:05:39 #21013 [Verbose] > │ let struct (v11 : UH6, v12 : UH6) = method15(v8, v9, v10) │
00:05:39 #21014 [Verbose] > │ let v13 : UH6 = UH6_1 │
00:05:39 #21015 [Verbose] > │ let v14 : UH6 = method16(v11, v13) │
00:05:39 #21016 [Verbose] > │ let v15 : UH6 = UH6_1 │
00:05:39 #21017 [Verbose] > │ let v16 : UH6 = method16(v12, v15) │
00:05:39 #21018 [Verbose] > │ let v17 : (float -> ((UH0 -> UH1) -> (UH0 -> UH0))) = closure6() │
00:05:39 #21019 [Verbose] > │ let v18 : ((UH0 -> UH1) -> (UH0 -> UH0)) = v17 0.03 │
00:05:39 #21020 [Verbose] > │ let v19 : (UH0 -> UH0) = v18 v2 │
00:05:39 #21021 [Verbose] > │ let v20 : UH4 = UH4_1 │
00:05:39 #21022 [Verbose] > │ let v21 : int32 = 0 │
00:05:39 #21023 [Verbose] > │ let v22 : UH4 = method9(v19, v20, v21) │
00:05:39 #21024 [Verbose] > │ let v23 : UH5 = UH5_1 │
00:05:39 #21025 [Verbose] > │ let v24 : UH5 = method19(v22, v23) │
00:05:39 #21026 [Verbose] > │ let v25 : UH6 = UH6_1 │
00:05:39 #21027 [Verbose] > │ let v26 : UH6 = UH6_1 │
00:05:39 #21028 [Verbose] > │ let struct (v27 : UH6, v28 : UH6) = method15(v24, v25, v26) │
00:05:39 #21029 [Verbose] > │ let v29 : UH6 = UH6_1 │
00:05:39 #21030 [Verbose] > │ let v30 : UH6 = method16(v27, v29) │
00:05:39 #21031 [Verbose] > │ let v31 : UH6 = UH6_1 │
00:05:39 #21032 [Verbose] > │ let v32 : UH6 = method16(v28, v31) │
00:05:39 #21033 [Verbose] > │ let v33 : (float []) = method20(v14) │
00:05:39 #21034 [Verbose] > │ let v34 : (float []) = method20(v16) │
00:05:39 #21035 [Verbose] > │ let v35 : (float []) = method20(v30) │
00:05:39 #21036 [Verbose] > │ let v36 : (float []) = method20(v32) │
00:05:39 #21037 [Verbose] > │ let v37 : string = "euler-cromer" │
00:05:39 #21038 [Verbose] > │ let v38 : string = "runge-kutta 4" │
00:05:39 #21039 [Verbose] > │ let v39 : (struct (string * (float []) * (float [])) []) = [|struct │
00:05:39 #21040 [Verbose] > │ (v37, v33, v34); struct (v38, v35, v36)|] │
00:05:39 #21041 [Verbose] > │ let v40 : (struct (string * (float []) * (float [])) []) = method23(v39) │
00:05:39 #21042 [Verbose] > │ let v41 : string = "system kinetic energy versus time" │
00:05:39 #21043 [Verbose] > │ let v42 : string = "time (s)" │
00:05:39 #21044 [Verbose] > │ let v43 : string = "system kinetic energy (j)" │
00:05:39 #21045 [Verbose] > │ struct (v41, v42, v43, v40) │
00:05:39 #21046 [Verbose] > │ method0() │
00:05:39 #21047 [Verbose] > │ │
00:05:39 #21048 [Verbose] > │ │
00:05:39 #21049 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:39 #21050 [Verbose] >
00:05:39 #21051 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:39 #21052 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:39 #21053 [Verbose] > │ ### wave 1 │
00:05:39 #21054 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:39 #21055 [Verbose] >
00:05:39 #21056 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:39 #21057 [Verbose] > // // test
00:05:39 #21058 [Verbose] >
00:05:39 #21059 [Verbose] > inl linear_spring k re (particle_state st1) (particle_state st2) =
00:05:39 #21060 [Verbose] > inl r1 = st1.pos_vec
00:05:39 #21061 [Verbose] > inl r2 = st2.pos_vec
00:05:39 #21062 [Verbose] > inl r21 = r2 ^-^ r1
00:05:39 #21063 [Verbose] > inl r21mag = magnitude r21
00:05:39 #21064 [Verbose] > -k * (r21mag - re) *^ r21 ^/ r21mag
00:05:39 #21065 [Verbose] >
00:05:39 #21066 [Verbose] > inl fixed_linear_spring k re r1 =
00:05:39 #21067 [Verbose] > inl (particle_state default_particle_state') = default_particle_state ()
00:05:39 #21068 [Verbose] > linear_spring k re (particle_state { default_particle_state' with pos_vec =
00:05:39 #21069 [Verbose] > r1 })
00:05:39 #21070 [Verbose] >
00:05:39 #21071 [Verbose] > inl forces_string () =
00:05:39 #21072 [Verbose] > [[
00:05:39 #21073 [Verbose] > ExternalForce (0, fixed_linear_spring 5384 0 (zero_vec ()))
00:05:39 #21074 [Verbose] > ExternalForce (63, fixed_linear_spring 5384 0 (0.65 *^ i_hat ()))
00:05:39 #21075 [Verbose] > ]] /@ (
00:05:39 #21076 [Verbose] > listm'.init_series 0 59 1
00:05:39 #21077 [Verbose] > |> listm.map (fun n => InternalForce (n, n + 1, linear_spring 5384 0))
00:05:39 #21078 [Verbose] > )
00:05:39 #21079 [Verbose] >
00:05:39 #21080 [Verbose] > inl string_update dt =
00:05:39 #21081 [Verbose] > update_mps (runge_kutta_4 dt) (forces_string ())
00:05:39 #21082 [Verbose] >
00:05:39 #21083 [Verbose] > inl string_initial_overtone n =
00:05:39 #21084 [Verbose] > inl ball_mass = 0.0008293 * 0.65 / 64
00:05:39 #21085 [Verbose] > inl (particle_state default_particle_state') = default_particle_state ()
00:05:39 #21086 [Verbose] > listm'.init_series 0.01 0.64 0.01
00:05:39 #21087 [Verbose] > |> listm.map (fun x =>
00:05:39 #21088 [Verbose] > inl y = 0.005 * sin (conv n * pi * x / 0.65)
00:05:39 #21089 [Verbose] > particle_state {
00:05:39 #21090 [Verbose] > default_particle_state' with
00:05:39 #21091 [Verbose] > mass = ball_mass
00:05:39 #21092 [Verbose] > pos_vec = x *^ i_hat () ^+^ y *^ j_hat ()
00:05:39 #21093 [Verbose] > velocity = zero_vec ()
00:05:39 #21094 [Verbose] > }
00:05:39 #21095 [Verbose] > )
00:05:39 #21096 [Verbose] > |> multi_particle_state
00:05:39 #21097 [Verbose] >
00:05:39 #21098 [Verbose] > inl string_initial_pluck () =
00:05:39 #21099 [Verbose] > inl ball_mass = 0.0008293 * 0.65 / 64
00:05:39 #21100 [Verbose] > inl (particle_state default_particle_state') = default_particle_state ()
00:05:39 #21101 [Verbose] > listm'.init_series 0.01 0.64 0.01
00:05:39 #21102 [Verbose] > |> listm.map (fun x =>
00:05:39 #21103 [Verbose] > inl y =
00:05:39 #21104 [Verbose] > inl n = if x <= 0.51 then 0 else 0.65
00:05:39 #21105 [Verbose] > 0.005 / (0.51 - n) * (x - n)
00:05:39 #21106 [Verbose] > particle_state {
00:05:39 #21107 [Verbose] > default_particle_state' with
00:05:39 #21108 [Verbose] > mass = ball_mass
00:05:39 #21109 [Verbose] > pos_vec = x *^ i_hat () ^+^ y *^ j_hat ()
00:05:39 #21110 [Verbose] > velocity = zero_vec ()
00:05:39 #21111 [Verbose] > }
00:05:39 #21112 [Verbose] > )
00:05:39 #21113 [Verbose] > |> multi_particle_state
00:05:39 #21114 [Verbose] >
00:05:39 #21115 [Verbose] > let main () =
00:05:39 #21116 [Verbose] > inl ~frames = listm'.init_series 0 9 1f64
00:05:39 #21117 [Verbose] > inl initial_state = string_initial_overtone 3i32
00:05:39 #21118 [Verbose] > inl frames =
00:05:39 #21119 [Verbose] > frames
00:05:39 #21120 [Verbose] > |> listm.map (fun n =>
00:05:39 #21121 [Verbose] > inl (multi_particle_state sts) =
00:05:39 #21122 [Verbose] > seq.iterate' (string_update 0.000025) initial_state |> fun f =>
00:05:39 #21123 [Verbose] > f 0f64
00:05:39 #21124 [Verbose] > inl rs =
00:05:39 #21125 [Verbose] > [[ zero_vec () ]]
00:05:39 #21126 [Verbose] > /@ (sts |> listm.map (fun (particle_state st) => st.pos_vec))
00:05:39 #21127 [Verbose] > /@ [[ 0.65 *^ i_hat () ]]
00:05:39 #21128 [Verbose] > inl x, y =
00:05:39 #21129 [Verbose] > rs
00:05:39 #21130 [Verbose] > |> listm.map (fun r => r.x, r.y)
00:05:39 #21131 [Verbose] > |> listm'.unzip
00:05:39 #21132 [Verbose] > inl x : a i32 _ = x |> listm.toArray
00:05:39 #21133 [Verbose] > inl y : a i32 _ = y |> listm.toArray
00:05:39 #21134 [Verbose] > x, y
00:05:39 #21135 [Verbose] > )
00:05:39 #21136 [Verbose] > |> listm.toArray : a i32 _
00:05:39 #21137 [Verbose] >
00:05:39 #21138 [Verbose] > inl n = 0i32
00:05:39 #21139 [Verbose] >
00:05:39 #21140 [Verbose] > inl x, y = index frames n
00:05:39 #21141 [Verbose] >
00:05:39 #21142 [Verbose] > "wave",
00:05:39 #21143 [Verbose] > "position (m)",
00:05:39 #21144 [Verbose] > "displacement (m)",
00:05:39 #21145 [Verbose] > ;[[
00:05:39 #21146 [Verbose] > ($"$\"{!n}\"" : string), x, y
00:05:39 #21147 [Verbose] > ]]
00:05:40 #21148 [Verbose] >
00:05:40 #21149 [Verbose] > ╭─[ 496.56ms - return value ]──────────────────────────────────────────────────╮
00:05:40 #21150 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:05:40 #21151 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:05:40 #21152 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:05:40 #21153 [Verbose] > │ stroke="none"/> │
00:05:40 #21154 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:05:40 #21155 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:05:40 #21156 [Verbose] > │ fill="#FFFFFF"> │
00:05:40 #21157 [Verbose] > │ wave │
00:05:40 #21158 [Verbose] > │ </text> │
00:05:40 #21159 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="62" y1="424" x2="62" │
00:05:40 #21160 [Verbose] > │ y2="75"/> │
00:05:40 #21161 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:05:40 #21162 [Verbose] > │ y2="75"/> │
00:05:40 #21163 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="77" y1="424" x2="77" │
00:05:40 #21164 [Verbose] > │ y2="75"/> │
00:05:40 #21165 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="85" y1="424" x2="85" │
00:05:40 #21166 [Verbose] > │ y2="75"/> │
00:05:40 #21167 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="93" y1="424" x2="93" │
00:05:40 #21168 [Verbose] > │ y2... │
00:05:40 #21169 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:40 #21170 [Verbose] >
00:05:40 #21171 [Verbose] > ╭─[ 507.80ms - stdout ]────────────────────────────────────────────────────────╮
00:05:40 #21172 [Verbose] > │ type UH0 = │
00:05:40 #21173 [Verbose] > │ | UH0_0 of float * UH0 │
00:05:40 #21174 [Verbose] > │ | UH0_1 │
00:05:40 #21175 [Verbose] > │ and UH1 = │
00:05:40 #21176 [Verbose] > │ | UH1_0 of (float []) * (float []) * UH1 │
00:05:40 #21177 [Verbose] > │ | UH1_1 │
00:05:40 #21178 [Verbose] > │ let rec method3 (v0 : UH0, v1 : int32) : int32 = │
00:05:40 #21179 [Verbose] > │ match v0 with │
00:05:40 #21180 [Verbose] > │ | UH0_0(v2, v3) -> (* Cons *) │
00:05:40 #21181 [Verbose] > │ let v4 : int32 = v1 + 1 │
00:05:40 #21182 [Verbose] > │ method3(v3, v4) │
00:05:40 #21183 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:05:40 #21184 [Verbose] > │ v1 │
00:05:40 #21185 [Verbose] > │ and method4 (v0 : (float []), v1 : UH0, v2 : int32) : int32 = │
00:05:40 #21186 [Verbose] > │ match v1 with │
00:05:40 #21187 [Verbose] > │ | UH0_0(v3, v4) -> (* Cons *) │
00:05:40 #21188 [Verbose] > │ v0.[int v2] <- v3 │
00:05:40 #21189 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:05:40 #21190 [Verbose] > │ method4(v0, v4, v5) │
00:05:40 #21191 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:05:40 #21192 [Verbose] > │ v2 │
00:05:40 #21193 [Verbose] > │ and method2 (v0 : UH0) : (float []) = │
00:05:40 #21194 [Verbose] > │ let v1 : int32 = 0 │
00:05:40 #21195 [Verbose] > │ let v2 : int32 = method3(v0, v1) │
00:05:40 #21196 [Verbose] > │ let v3 : (float []) = Array.zeroCreate<float> (v2) │
00:05:40 #21197 [Verbose] > │ let v4 : int32 = 0 │
00:05:40 #21198 [Verbose] > │ let v5 : int32 = method4(v3, v0, v4) │
00:05:40 #21199 [Verbose] > │ v3 │
00:05:40 #21200 [Verbose] > │ and method1 (v0 : UH0, v1 : UH1) : UH1 = │
00:05:40 #21201 [Verbose] > │ match v0 with │
00:05:40 #21202 [Verbose] > │ | UH0_0(v2, v3) -> (* Cons *) │
00:05:40 #21203 [Verbose] > │ let v4 : UH1 = method1(v3, v1) │
00:05:40 #21204 [Verbose] > │ let v5 : float = 0.0 │
00:05:40 #21205 [Verbose] > │ let v6 : float = 0.01 │
00:05:40 #21206 [Verbose] > │ let v7 : float = 0.02 │
00:05:40 #21207 [Verbose] > │ let v8 : float = 0.03 │
00:05:40 #21208 [Verbose] > │ let v9 : float = 0.04 │
00:05:40 #21209 [Verbose] > │ let v10 : float = 0.05 │
00:05:40 #21210 [Verbose] > │ let v11 : float = 0.060000000000000005 │
00:05:40 #21211 [Verbose] > │ let v12 : float = 0.06999999999999999 │
00:05:40 #21212 [Verbose] > │ let v13 : float = 0.08 │
00:05:40 #21213 [Verbose] > │ let v14 : float = 0.09 │
00:05:40 #21214 [Verbose] > │ let v15 : float = 0.09999999999999999 │
00:05:40 #21215 [Verbose] > │ let v16 : float = 0.11 │
00:05:40 #21216 [Verbose] > │ let v17 : float = 0.12 │
00:05:40 #21217 [Verbose] > │ let v18 : float = 0.13 │
00:05:40 #21218 [Verbose] > │ let v19 : float = 0.14 │
00:05:40 #21219 [Verbose] > │ let v20 : float = 0.15000000000000002 │
00:05:40 #21220 [Verbose] > │ let v21 : float = 0.16 │
00:05:40 #21221 [Verbose] > │ let v22 : float = 0.17 │
00:05:40 #21222 [Verbose] > │ let v23 : float = 0.18000000000000002 │
00:05:40 #21223 [Verbose] > │ let v24 : float = 0.19 │
00:05:40 #21224 [Verbose] > │ let v25 : float = 0.2 │
00:05:40 #21225 [Verbose] > │ let v26 : float = 0.21000000000000002 │
00:05:40 #21226 [Verbose] > │ let v27 : float = 0.22 │
00:05:40 #21227 [Verbose] > │ let v28 : float = 0.23 │
00:05:40 #21228 [Verbose] > │ let v29 : float = 0.24000000000000002 │
00:05:40 #21229 [Verbose] > │ let v30 : float = 0.25 │
00:05:40 #21230 [Verbose] > │ let v31 : float = 0.26 │
00:05:40 #21231 [Verbose] > │ let v32 : float = 0.27 │
00:05:40 #21232 [Verbose] > │ let v33 : float = 0.28 │
00:05:40 #21233 [Verbose] > │ let v34 : float = 0.29000000000000004 │
00:05:40 #21234 [Verbose] > │ let v35 : float = 0.3 │
00:05:40 #21235 [Verbose] > │ let v36 : float = 0.31 │
00:05:40 #21236 [Verbose] > │ let v37 : float = 0.32 │
00:05:40 #21237 [Verbose] > │ let v38 : float = 0.33 │
00:05:40 #21238 [Verbose] > │ let v39 : float = 0.34 │
00:05:40 #21239 [Verbose] > │ let v40 : float = 0.35000000000000003 │
00:05:40 #21240 [Verbose] > │ let v41 : float = 0.36000000000000004 │
00:05:40 #21241 [Verbose] > │ let v42 : float = 0.37 │
00:05:40 #21242 [Verbose] > │ let v43 : float = 0.38 │
00:05:40 #21243 [Verbose] > │ let v44 : float = 0.39 │
00:05:40 #21244 [Verbose] > │ let v45 : float = 0.4 │
00:05:40 #21245 [Verbose] > │ let v46 : float = 0.41000000000000003 │
00:05:40 #21246 [Verbose] > │ let v47 : float = 0.42000000000000004 │
00:05:40 #21247 [Verbose] > │ let v48 : float = 0.43 │
00:05:40 #21248 [Verbose] > │ let v49 : float = 0.44 │
00:05:40 #21249 [Verbose] > │ let v50 : float = 0.45 │
00:05:40 #21250 [Verbose] > │ let v51 : float = 0.46 │
00:05:40 #21251 [Verbose] > │ let v52 : float = 0.47000000000000003 │
00:05:40 #21252 [Verbose] > │ let v53 : float = 0.48000000000000004 │
00:05:40 #21253 [Verbose] > │ let v54 : float = 0.49 │
00:05:40 #21254 [Verbose] > │ let v55 : float = 0.5 │
00:05:40 #21255 [Verbose] > │ let v56 : float = 0.51 │
00:05:40 #21256 [Verbose] > │ let v57 : float = 0.52 │
00:05:40 #21257 [Verbose] > │ let v58 : float = 0.53 │
00:05:40 #21258 [Verbose] > │ let v59 : float = 0.54 │
00:05:40 #21259 [Verbose] > │ let v60 : float = 0.55 │
00:05:40 #21260 [Verbose] > │ let v61 : float = 0.56 │
00:05:40 #21261 [Verbose] > │ let v62 : float = 0.5700000000000001 │
00:05:40 #21262 [Verbose] > │ let v63 : float = 0.5800000000000001 │
00:05:40 #21263 [Verbose] > │ let v64 : float = 0.59 │
00:05:40 #21264 [Verbose] > │ let v65 : float = 0.6 │
00:05:40 #21265 [Verbose] > │ let v66 : float = 0.61 │
00:05:40 #21266 [Verbose] > │ let v67 : float = 0.62 │
00:05:40 #21267 [Verbose] > │ let v68 : float = 0.63 │
00:05:40 #21268 [Verbose] > │ let v69 : float = 0.64 │
00:05:40 #21269 [Verbose] > │ let v70 : float = 0.65 │
00:05:40 #21270 [Verbose] > │ let v71 : UH0 = UH0_1 │
00:05:40 #21271 [Verbose] > │ let v72 : UH0 = UH0_0(v70, v71) │
00:05:40 #21272 [Verbose] > │ let v73 : UH0 = UH0_0(v69, v72) │
00:05:40 #21273 [Verbose] > │ let v74 : UH0 = UH0_0(v68, v73) │
00:05:40 #21274 [Verbose] > │ let v75 : UH0 = UH0_0(v67, v74) │
00:05:40 #21275 [Verbose] > │ let v76 : UH0 = UH0_0(v66, v75) │
00:05:40 #21276 [Verbose] > │ let v77 : UH0 = UH0_0(v65, v76) │
00:05:40 #21277 [Verbose] > │ let v78 : UH0 = UH0_0(v64, v77) │
00:05:40 #21278 [Verbose] > │ let v79 : UH0 = UH0_0(v63, v78) │
00:05:40 #21279 [Verbose] > │ let v80 : UH0 = UH0_0(v62, v79) │
00:05:40 #21280 [Verbose] > │ let v81 : UH0 = UH0_0(v61, v80) │
00:05:40 #21281 [Verbose] > │ let v82 : UH0 = UH0_0(v60, v81) │
00:05:40 #21282 [Verbose] > │ let v83 : UH0 = UH0_0(v59, v82) │
00:05:40 #21283 [Verbose] > │ let v84 : UH0 = UH0_0(v58, v83) │
00:05:40 #21284 [Verbose] > │ let v85 : UH0 = UH0_0(v57, v84) │
00:05:40 #21285 [Verbose] > │ let v86 : UH0 = UH0_0(v56, v85) │
00:05:40 #21286 [Verbose] > │ let v87 : UH0 = UH0_0(v55, v86) │
00:05:40 #21287 [Verbose] > │ let v88 : UH0 = UH0_0(v54, v87) │
00:05:40 #21288 [Verbose] > │ let v89 : UH0 = UH0_0(v53, v88) │
00:05:40 #21289 [Verbose] > │ let v90 : UH0 = UH0_0(v52, v89) │
00:05:40 #21290 [Verbose] > │ let v91 : UH0 = UH0_0(v51, v90) │
00:05:40 #21291 [Verbose] > │ let v92 : UH0 = UH0_0(v50, v91) │
00:05:40 #21292 [Verbose] > │ let v93 : UH0 = UH0_0(v49, v92) │
00:05:40 #21293 [Verbose] > │ let v94 : UH0 = UH0_0(v48, v93) │
00:05:40 #21294 [Verbose] > │ let v95 : UH0 = UH0_0(v47, v94) │
00:05:40 #21295 [Verbose] > │ let v96 : UH0 = UH0_0(v46, v95) │
00:05:40 #21296 [Verbose] > │ let v97 : UH0 = UH0_0(v45, v96) │
00:05:40 #21297 [Verbose] > │ let v98 : UH0 = UH0_0(v44, v97) │
00:05:40 #21298 [Verbose] > │ let v99 : UH0 = UH0_0(v43, v98) │
00:05:40 #21299 [Verbose] > │ let v100 : UH0 = UH0_0(v42, v99) │
00:05:40 #21300 [Verbose] > │ let v101 : UH0 = UH0_0(v41, v100) │
00:05:40 #21301 [Verbose] > │ let v102 : UH0 = UH0_0(v40, v101) │
00:05:40 #21302 [Verbose] > │ let v103 : UH0 = UH0_0(v39, v102) │
00:05:40 #21303 [Verbose] > │ let v104 : UH0 = UH0_0(v38, v103) │
00:05:40 #21304 [Verbose] > │ let v105 : UH0 = UH0_0(v37, v104) │
00:05:40 #21305 [Verbose] > │ let v106 : UH0 = UH0_0(v36, v105) │
00:05:40 #21306 [Verbose] > │ let v107 : UH0 = UH0_0(v35, v106) │
00:05:40 #21307 [Verbose] > │ let v108 : UH0 = UH0_0(v34, v107) │
00:05:40 #21308 [Verbose] > │ let v109 : UH0 = UH0_0(v33, v108) │
00:05:40 #21309 [Verbose] > │ let v110 : UH0 = UH0_0(v32, v109) │
00:05:40 #21310 [Verbose] > │ let v111 : UH0 = UH0_0(v31, v110) │
00:05:40 #21311 [Verbose] > │ let v112 : UH0 = UH0_0(v30, v111) │
00:05:40 #21312 [Verbose] > │ let v113 : UH0 = UH0_0(v29, v112) │
00:05:40 #21313 [Verbose] > │ let v114 : UH0 = UH0_0(v28, v113) │
00:05:40 #21314 [Verbose] > │ let v115 : UH0 = UH0_0(v27, v114) │
00:05:40 #21315 [Verbose] > │ let v116 : UH0 = UH0_0(v26, v115) │
00:05:40 #21316 [Verbose] > │ let v117 : UH0 = UH0_0(v25, v116) │
00:05:40 #21317 [Verbose] > │ let v118 : UH0 = UH0_0(v24, v117) │
00:05:40 #21318 [Verbose] > │ let v119 : UH0 = UH0_0(v23, v118) │
00:05:40 #21319 [Verbose] > │ let v120 : UH0 = UH0_0(v22, v119) │
00:05:40 #21320 [Verbose] > │ let v121 : UH0 = UH0_0(v21, v120) │
00:05:40 #21321 [Verbose] > │ let v122 : UH0 = UH0_0(v20, v121) │
00:05:40 #21322 [Verbose] > │ let v123 : UH0 = UH0_0(v19, v122) │
00:05:40 #21323 [Verbose] > │ let v124 : UH0 = UH0_0(v18, v123) │
00:05:40 #21324 [Verbose] > │ let v125 : UH0 = UH0_0(v17, v124) │
00:05:40 #21325 [Verbose] > │ let v126 : UH0 = UH0_0(v16, v125) │
00:05:40 #21326 [Verbose] > │ let v127 : UH0 = UH0_0(v15, v126) │
00:05:40 #21327 [Verbose] > │ let v128 : UH0 = UH0_0(v14, v127) │
00:05:40 #21328 [Verbose] > │ let v129 : UH0 = UH0_0(v13, v128) │
00:05:40 #21329 [Verbose] > │ let v130 : UH0 = UH0_0(v12, v129) │
00:05:40 #21330 [Verbose] > │ let v131 : UH0 = UH0_0(v11, v130) │
00:05:40 #21331 [Verbose] > │ let v132 : UH0 = UH0_0(v10, v131) │
00:05:40 #21332 [Verbose] > │ let v133 : UH0 = UH0_0(v9, v132) │
00:05:40 #21333 [Verbose] > │ let v134 : UH0 = UH0_0(v8, v133) │
00:05:40 #21334 [Verbose] > │ let v135 : UH0 = UH0_0(v7, v134) │
00:05:40 #21335 [Verbose] > │ let v136 : UH0 = UH0_0(v6, v135) │
00:05:40 #21336 [Verbose] > │ let v137 : UH0 = UH0_0(v5, v136) │
00:05:40 #21337 [Verbose] > │ let v138 : (float []) = method2(v137) │
00:05:40 #21338 [Verbose] > │ let v139 : float = 0.0 │
00:05:40 #21339 [Verbose] > │ let v140 : float = 0.0007224452478461068 │
00:05:40 #21340 [Verbose] > │ let v141 : float = 0.0014297283919934465 │
00:05:40 #21341 [Verbose] > │ let v142 : float = 0.0021070055388626454 │
00:05:40 #21342 [Verbose] > │ let v143 : float = 0.00274006253677335 │
00:05:40 #21343 [Verbose] > │ let v144 : float = 0.0033156132912039757 │
00:05:40 #21344 [Verbose] > │ let v145 : float = 0.0038215786027292415 │
00:05:40 #21345 [Verbose] > │ let v146 : float = 0.004247339675607605 │
00:05:40 #21346 [Verbose] > │ let v147 : float = 0.004583960976582912 │
00:05:40 #21347 [Verbose] > │ let v148 : float = 0.004824377766717757 │
00:05:40 #21348 [Verbose] > │ let v149 : float = 0.00496354437049027 │
00:05:40 #21349 [Verbose] > │ let v150 : float = 0.004998540070400965 │
00:05:40 #21350 [Verbose] > │ let v151 : float = 0.004928630404658255 │
00:05:40 #21351 [Verbose] > │ let v152 : float = 0.004755282581475768 │
00:05:40 #21352 [Verbose] > │ let v153 : float = 0.004482134686478519 │
00:05:40 #21353 [Verbose] > │ let v154 : float = 0.0041149193294682815 │
00:05:40 #21354 [Verbose] > │ let v155 : float = 0.0036613433329888666 │
00:05:40 #21355 [Verbose] > │ let v156 : float = 0.0031309259876915697 │
00:05:40 #21356 [Verbose] > │ let v157 : float = 0.002534799269067951 │
00:05:40 #21357 [Verbose] > │ let v158 : float = 0.0018854742084416015 │
00:05:40 #21358 [Verbose] > │ let v159 : float = 0.0011965783214377905 │
00:05:40 #21359 [Verbose] > │ let v160 : float = 0.00048256960457257535 │
00:05:40 #21360 [Verbose] > │ let v161 : float = -0.00024156689762753317 │
00:05:40 #21361 [Verbose] > │ let v162 : float = -0.0009606335867685418 │
00:05:40 #21362 [Verbose] > │ let v163 : float = -0.001659539265642642 │
00:05:40 #21363 [Verbose] > │ let v164 : float = -0.002323615860218842 │
00:05:40 #21364 [Verbose] > │ let v165 : float = -0.0029389262614623636 │
00:05:40 #21365 [Verbose] > │ let v166 : float = -0.003492556826244686 │
00:05:40 #21366 [Verbose] > │ let v167 : float = -0.003972888398568771 │
00:05:40 #21367 [Verbose] > │ let v168 : float = -0.00436984016313259 │
00:05:40 #21368 [Verbose] > │ let v169 : float = -0.004675081213427074 │
00:05:40 #21369 [Verbose] > │ let v170 : float = -0.004882205394146359 │
00:05:40 #21370 [Verbose] > │ let v171 : float = -0.004986865748457456 │
00:05:40 #21371 [Verbose] > │ let v172 : float = -0.004986865748457456 │
00:05:40 #21372 [Verbose] > │ let v173 : float = -0.004882205394146361 │
00:05:40 #21373 [Verbose] > │ let v174 : float = -0.004675081213427074 │
00:05:40 #21374 [Verbose] > │ let v175 : float = -0.004369840163132589 │
00:05:40 #21375 [Verbose] > │ let v176 : float = -0.003972888398568774 │
00:05:40 #21376 [Verbose] > │ let v177 : float = -0.0034925568262446837 │
00:05:40 #21377 [Verbose] > │ let v178 : float = -0.002938926261462367 │
00:05:40 #21378 [Verbose] > │ let v179 : float = -0.002323615860218846 │
00:05:40 #21379 [Verbose] > │ let v180 : float = -0.0016595392656426435 │
00:05:40 #21380 [Verbose] > │ let v181 : float = -0.0009606335867685414 │
00:05:40 #21381 [Verbose] > │ let v182 : float = -0.00024156689762753724 │
00:05:40 #21382 [Verbose] > │ let v183 : float = 0.0004825696045725713 │
00:05:40 #21383 [Verbose] > │ let v184 : float = 0.0011965783214377866 │
00:05:40 #21384 [Verbose] > │ let v185 : float = 0.0018854742084416021 │
00:05:40 #21385 [Verbose] > │ let v186 : float = 0.002534799269067953 │
00:05:40 #21386 [Verbose] > │ let v187 : float = 0.003130925987691568 │
00:05:40 #21387 [Verbose] > │ let v188 : float = 0.0036613433329888622 │
00:05:40 #21388 [Verbose] > │ let v189 : float = 0.0041149193294682815 │
00:05:40 #21389 [Verbose] > │ let v190 : float = 0.0044821346864785195 │
00:05:40 #21390 [Verbose] > │ let v191 : float = 0.004755282581475766 │
00:05:40 #21391 [Verbose] > │ let v192 : float = 0.004928630404658255 │
00:05:40 #21392 [Verbose] > │ let v193 : float = 0.004998540070400965 │
00:05:40 #21393 [Verbose] > │ let v194 : float = 0.004963544370490271 │
00:05:40 #21394 [Verbose] > │ let v195 : float = 0.004824377766717758 │
00:05:40 #21395 [Verbose] > │ let v196 : float = 0.004583960976582912 │
00:05:40 #21396 [Verbose] > │ let v197 : float = 0.004247339675607605 │
00:05:40 #21397 [Verbose] > │ let v198 : float = 0.003821578602729245 │
00:05:40 #21398 [Verbose] > │ let v199 : float = 0.0033156132912039783 │
00:05:40 #21399 [Verbose] > │ let v200 : float = 0.0027400625367733585 │
00:05:40 #21400 [Verbose] > │ let v201 : float = 0.0021070055388626528 │
00:05:40 #21401 [Verbose] > │ let v202 : float = 0.001429728391993452 │
00:05:40 #21402 [Verbose] > │ let v203 : float = 0.0007224452478461016 │
00:05:40 #21403 [Verbose] > │ let v204 : float = 0.0 │
00:05:40 #21404 [Verbose] > │ let v205 : UH0 = UH0_1 │
00:05:40 #21405 [Verbose] > │ let v206 : UH0 = UH0_0(v204, v205) │
00:05:40 #21406 [Verbose] > │ let v207 : UH0 = UH0_0(v203, v206) │
00:05:40 #21407 [Verbose] > │ let v208 : UH0 = UH0_0(v202, v207) │
00:05:40 #21408 [Verbose] > │ let v209 : UH0 = UH0_0(v201, v208) │
00:05:40 #21409 [Verbose] > │ let v210 : UH0 = UH0_0(v200, v209) │
00:05:40 #21410 [Verbose] > │ let v211 : UH0 = UH0_0(v199, v210) │
00:05:40 #21411 [Verbose] > │ let v212 : UH0 = UH0_0(v198, v211) │
00:05:40 #21412 [Verbose] > │ let v213 : UH0 = UH0_0(v197, v212) │
00:05:40 #21413 [Verbose] > │ let v214 : UH0 = UH0_0(v196, v213) │
00:05:40 #21414 [Verbose] > │ let v215 : UH0 = UH0_0(v195, v214) │
00:05:40 #21415 [Verbose] > │ let v216 : UH0 = UH0_0(v194, v215) │
00:05:40 #21416 [Verbose] > │ let v217 : UH0 = UH0_0(v193, v216) │
00:05:40 #21417 [Verbose] > │ let v218 : UH0 = UH0_0(v192, v217) │
00:05:40 #21418 [Verbose] > │ let v219 : UH0 = UH0_0(v191, v218) │
00:05:40 #21419 [Verbose] > │ let v220 : UH0 = UH0_0(v190, v219) │
00:05:40 #21420 [Verbose] > │ let v221 : UH0 = UH0_0(v189, v220) │
00:05:40 #21421 [Verbose] > │ let v222 : UH0 = UH0_0(v188, v221) │
00:05:40 #21422 [Verbose] > │ let v223 : UH0 = UH0_0(v187, v222) │
00:05:40 #21423 [Verbose] > │ let v224 : UH0 = UH0_0(v186, v223) │
00:05:40 #21424 [Verbose] > │ let v225 : UH0 = UH0_0(v185, v224) │
00:05:40 #21425 [Verbose] > │ let v226 : UH0 = UH0_0(v184, v225) │
00:05:40 #21426 [Verbose] > │ let v227 : UH0 = UH0_0(v183, v226) │
00:05:40 #21427 [Verbose] > │ let v228 : UH0 = UH0_0(v182, v227) │
00:05:40 #21428 [Verbose] > │ let v229 : UH0 = UH0_0(v181, v228) │
00:05:40 #21429 [Verbose] > │ let v230 : UH0 = UH0_0(v180, v229) │
00:05:40 #21430 [Verbose] > │ let v231 : UH0 = UH0_0(v179, v230) │
00:05:40 #21431 [Verbose] > │ let v232 : UH0 = UH0_0(v178, v231) │
00:05:40 #21432 [Verbose] > │ let v233 : UH0 = UH0_0(v177, v232) │
00:05:40 #21433 [Verbose] > │ let v234 : UH0 = UH0_0(v176, v233) │
00:05:40 #21434 [Verbose] > │ let v235 : UH0 = UH0_0(v175, v234) │
00:05:40 #21435 [Verbose] > │ let v236 : UH0 = UH0_0(v174, v235) │
00:05:40 #21436 [Verbose] > │ let v237 : UH0 = UH0_0(v173, v236) │
00:05:40 #21437 [Verbose] > │ let v238 : UH0 = UH0_0(v172, v237) │
00:05:40 #21438 [Verbose] > │ let v239 : UH0 = UH0_0(v171, v238) │
00:05:40 #21439 [Verbose] > │ let v240 : UH0 = UH0_0(v170, v239) │
00:05:40 #21440 [Verbose] > │ let v241 : UH0 = UH0_0(v169, v240) │
00:05:40 #21441 [Verbose] > │ let v242 : UH0 = UH0_0(v168, v241) │
00:05:40 #21442 [Verbose] > │ let v243 : UH0 = UH0_0(v167, v242) │
00:05:40 #21443 [Verbose] > │ let v244 : UH0 = UH0_0(v166, v243) │
00:05:40 #21444 [Verbose] > │ let v245 : UH0 = UH0_0(v165, v244) │
00:05:40 #21445 [Verbose] > │ let v246 : UH0 = UH0_0(v164, v245) │
00:05:40 #21446 [Verbose] > │ let v247 : UH0 = UH0_0(v163, v246) │
00:05:40 #21447 [Verbose] > │ let v248 : UH0 = UH0_0(v162, v247) │
00:05:40 #21448 [Verbose] > │ let v249 : UH0 = UH0_0(v161, v248) │
00:05:40 #21449 [Verbose] > │ let v250 : UH0 = UH0_0(v160, v249) │
00:05:40 #21450 [Verbose] > │ let v251 : UH0 = UH0_0(v159, v250) │
00:05:40 #21451 [Verbose] > │ let v252 : UH0 = UH0_0(v158, v251) │
00:05:40 #21452 [Verbose] > │ let v253 : UH0 = UH0_0(v157, v252) │
00:05:40 #21453 [Verbose] > │ let v254 : UH0 = UH0_0(v156, v253) │
00:05:40 #21454 [Verbose] > │ let v255 : UH0 = UH0_0(v155, v254) │
00:05:40 #21455 [Verbose] > │ let v256 : UH0 = UH0_0(v154, v255) │
00:05:40 #21456 [Verbose] > │ let v257 : UH0 = UH0_0(v153, v256) │
00:05:40 #21457 [Verbose] > │ let v258 : UH0 = UH0_0(v152, v257) │
00:05:40 #21458 [Verbose] > │ let v259 : UH0 = UH0_0(v151, v258) │
00:05:40 #21459 [Verbose] > │ let v260 : UH0 = UH0_0(v150, v259) │
00:05:40 #21460 [Verbose] > │ let v261 : UH0 = UH0_0(v149, v260) │
00:05:40 #21461 [Verbose] > │ let v262 : UH0 = UH0_0(v148, v261) │
00:05:40 #21462 [Verbose] > │ let v263 : UH0 = UH0_0(v147, v262) │
00:05:40 #21463 [Verbose] > │ let v264 : UH0 = UH0_0(v146, v263) │
00:05:40 #21464 [Verbose] > │ let v265 : UH0 = UH0_0(v145, v264) │
00:05:40 #21465 [Verbose] > │ let v266 : UH0 = UH0_0(v144, v265) │
00:05:40 #21466 [Verbose] > │ let v267 : UH0 = UH0_0(v143, v266) │
00:05:40 #21467 [Verbose] > │ let v268 : UH0 = UH0_0(v142, v267) │
00:05:40 #21468 [Verbose] > │ let v269 : UH0 = UH0_0(v141, v268) │
00:05:40 #21469 [Verbose] > │ let v270 : UH0 = UH0_0(v140, v269) │
00:05:40 #21470 [Verbose] > │ let v271 : UH0 = UH0_0(v139, v270) │
00:05:40 #21471 [Verbose] > │ let v272 : (float []) = method2(v271) │
00:05:40 #21472 [Verbose] > │ UH1_0(v138, v272, v4) │
00:05:40 #21473 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:05:40 #21474 [Verbose] > │ v1 │
00:05:40 #21475 [Verbose] > │ and method6 (v0 : UH1, v1 : int32) : int32 = │
00:05:40 #21476 [Verbose] > │ match v0 with │
00:05:40 #21477 [Verbose] > │ | UH1_0(v2, v3, v4) -> (* Cons *) │
00:05:40 #21478 [Verbose] > │ let v5 : int32 = v1 + 1 │
00:05:40 #21479 [Verbose] > │ method6(v4, v5) │
00:05:40 #21480 [Verbose] > │ | UH1_1 -> (* Nil *) │
00:05:40 #21481 [Verbose] > │ v1 │
00:05:40 #21482 [Verbose] > │ and method7 (v0 : (struct ((float []) * (float [])) []), v1 : UH1, v2 : │
00:05:40 #21483 [Verbose] > │ int32) : int32 = │
00:05:40 #21484 [Verbose] > │ match v1 with │
00:05:40 #21485 [Verbose] > │ | UH1_0(v3, v4, v5) -> (* Cons *) │
00:05:40 #21486 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:05:40 #21487 [Verbose] > │ let v6 : int32 = v2 + 1 │
00:05:40 #21488 [Verbose] > │ method7(v0, v5, v6) │
00:05:40 #21489 [Verbose] > │ | UH1_1 -> (* Nil *) │
00:05:40 #21490 [Verbose] > │ v2 │
00:05:40 #21491 [Verbose] > │ and method5 (v0 : UH1) : (struct ((float []) * (float [])) []) = │
00:05:40 #21492 [Verbose] > │ let v1 : int32 = 0 │
00:05:40 #21493 [Verbose] > │ let v2 : int32 = method6(v0, v1) │
00:05:40 #21494 [Verbose] > │ let v3 : (struct ((float []) * (float [])) []) = Array.zeroCreate<struct │
00:05:40 #21495 [Verbose] > │ ((float []) * (float []))> (v2) │
00:05:40 #21496 [Verbose] > │ let v4 : int32 = 0 │
00:05:40 #21497 [Verbose] > │ let v5 : int32 = method7(v3, v0, v4) │
00:05:40 #21498 [Verbose] > │ v3 │
00:05:40 #21499 [Verbose] > │ and method8 (v0 : (struct (string * (float []) * (float [])) [])) : (struct │
00:05:40 #21500 [Verbose] > │ (string * (float []) * (float [])) []) = │
00:05:40 #21501 [Verbose] > │ v0 │
00:05:40 #21502 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:05:40 #21503 [Verbose] > │ []) * (float [])) [])) = │
00:05:40 #21504 [Verbose] > │ let v0 : float = 0.0 │
00:05:40 #21505 [Verbose] > │ let v1 : float = 1.0 │
00:05:40 #21506 [Verbose] > │ let v2 : float = 2.0 │
00:05:40 #21507 [Verbose] > │ let v3 : float = 3.0 │
00:05:40 #21508 [Verbose] > │ let v4 : float = 4.0 │
00:05:40 #21509 [Verbose] > │ let v5 : float = 5.0 │
00:05:40 #21510 [Verbose] > │ let v6 : float = 6.0 │
00:05:40 #21511 [Verbose] > │ let v7 : float = 7.0 │
00:05:40 #21512 [Verbose] > │ let v8 : float = 8.0 │
00:05:40 #21513 [Verbose] > │ let v9 : float = 9.0 │
00:05:40 #21514 [Verbose] > │ let v10 : UH0 = UH0_1 │
00:05:40 #21515 [Verbose] > │ let v11 : UH0 = UH0_0(v9, v10) │
00:05:40 #21516 [Verbose] > │ let v12 : UH0 = UH0_0(v8, v11) │
00:05:40 #21517 [Verbose] > │ let v13 : UH0 = UH0_0(v7, v12) │
00:05:40 #21518 [Verbose] > │ let v14 : UH0 = UH0_0(v6, v13) │
00:05:40 #21519 [Verbose] > │ let v15 : UH0 = UH0_0(v5, v14) │
00:05:40 #21520 [Verbose] > │ let v16 : UH0 = UH0_0(v4, v15) │
00:05:40 #21521 [Verbose] > │ let v17 : UH0 = UH0_0(v3, v16) │
00:05:40 #21522 [Verbose] > │ let v18 : UH0 = UH0_0(v2, v17) │
00:05:40 #21523 [Verbose] > │ let v19 : UH0 = UH0_0(v1, v18) │
00:05:40 #21524 [Verbose] > │ let v20 : UH0 = UH0_0(v0, v19) │
00:05:40 #21525 [Verbose] > │ let v21 : UH1 = UH1_1 │
00:05:40 #21526 [Verbose] > │ let v22 : UH1 = method1(v20, v21) │
00:05:40 #21527 [Verbose] > │ let v23 : (struct ((float []) * (float [])) []) = method5(v22) │
00:05:40 #21528 [Verbose] > │ let struct (v24 : (float []), v25 : (float [])) = v23.[int 0] │
00:05:40 #21529 [Verbose] > │ let v26 : string = $"{0}" │
00:05:40 #21530 [Verbose] > │ let v27 : (struct (string * (float []) * (float [])) []) = [|struct │
00:05:40 #21531 [Verbose] > │ (v26, v24, v25)|] │
00:05:40 #21532 [Verbose] > │ let v28 : (struct (string * (float []) * (float [])) []) = method8(v27) │
00:05:40 #21533 [Verbose] > │ let v29 : string = "wave" │
00:05:40 #21534 [Verbose] > │ let v30 : string = "position (m)" │
00:05:40 #21535 [Verbose] > │ let v31 : string = "displacement (m)" │
00:05:40 #21536 [Verbose] > │ struct (v29, v30, v31, v28) │
00:05:40 #21537 [Verbose] > │ method0() │
00:05:40 #21538 [Verbose] > │ │
00:05:40 #21539 [Verbose] > │ │
00:05:40 #21540 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:40 #21541 [Verbose] >
00:05:40 #21542 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:40 #21543 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:40 #21544 [Verbose] > │ ### system kinetic energy versus time 2 │
00:05:40 #21545 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:40 #21546 [Verbose] >
00:05:40 #21547 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:40 #21548 [Verbose] > // // test
00:05:40 #21549 [Verbose] >
00:05:40 #21550 [Verbose] > inl central_force f (particle_state st1) (particle_state st2) =
00:05:40 #21551 [Verbose] > inl r1 = st1.pos_vec
00:05:40 #21552 [Verbose] > inl r2 = st2.pos_vec
00:05:40 #21553 [Verbose] > inl r21 = r2 ^-^ r1
00:05:40 #21554 [Verbose] > inl r21mag = magnitude r21
00:05:40 #21555 [Verbose] > f r21mag *^ r21 ^/ r21mag
00:05:40 #21556 [Verbose] >
00:05:40 #21557 [Verbose] > inl billiard_force k re =
00:05:40 #21558 [Verbose] > inl f r =
00:05:40 #21559 [Verbose] > if r >= re
00:05:40 #21560 [Verbose] > then 0
00:05:40 #21561 [Verbose] > else -k * (r - re)
00:05:40 #21562 [Verbose] > central_force f
00:05:40 #21563 [Verbose] >
00:05:40 #21564 [Verbose] > type force_vector = vec
00:05:40 #21565 [Verbose] > type two_body_force = particle_state -> particle_state -> force_vector
00:05:40 #21566 [Verbose] >
00:05:40 #21567 [Verbose] > union force t =
00:05:40 #21568 [Verbose] > | ExternalForce : t * one_body_force
00:05:40 #21569 [Verbose] > | InternalForce : t * t * two_body_force
00:05:40 #21570 [Verbose] >
00:05:40 #21571 [Verbose] > nominal multi_particle_state = stream.stream particle_state
00:05:40 #21572 [Verbose] >
00:05:40 #21573 [Verbose] > nominal d_multi_particle_state = stream.stream d_particle_state
00:05:40 #21574 [Verbose] >
00:05:40 #21575 [Verbose] > inl force_on n s force =
00:05:40 #21576 [Verbose] > match force with
00:05:40 #21577 [Verbose] > | ExternalForce (n0, f_one_body) =>
00:05:40 #21578 [Verbose] > if n = n0
00:05:40 #21579 [Verbose] > then f_one_body
00:05:40 #21580 [Verbose] > else fun _ => zero_vec ()
00:05:40 #21581 [Verbose] > | InternalForce (n0, n1, f_two_body) =>
00:05:40 #21582 [Verbose] > if n = n0
00:05:40 #21583 [Verbose] > then s |> stream.try_item n1 |> optionm.map f_two_body
00:05:40 #21584 [Verbose] > elif n = n1
00:05:40 #21585 [Verbose] > then s |> stream.try_item n0 |> optionm.map f_two_body
00:05:40 #21586 [Verbose] > else None
00:05:40 #21587 [Verbose] > |> optionm'.default_value (fun _ => zero_vec ())
00:05:40 #21588 [Verbose] >
00:05:40 #21589 [Verbose] > inl forces_on n (multi_particle_state sts) fs =
00:05:40 #21590 [Verbose] > fs
00:05:40 #21591 [Verbose] > |> listm.map (force_on n sts)
00:05:40 #21592 [Verbose] >
00:05:40 #21593 [Verbose] > inl newton_second_mps fs ((multi_particle_state sts) as mpst) =
00:05:40 #21594 [Verbose] > inl deriv (n, st) =
00:05:40 #21595 [Verbose] > newton_second_ps (forces_on n mpst fs) st
00:05:40 #21596 [Verbose] > sts |> stream.indexed |> stream.map deriv |> d_multi_particle_state
00:05:40 #21597 [Verbose] >
00:05:40 #21598 [Verbose] > instance (+++) d_multi_particle_state =
00:05:40 #21599 [Verbose] > fun (d_multi_particle_state dsts1) (d_multi_particle_state dsts2) =>
00:05:40 #21600 [Verbose] > (dsts1, dsts2)
00:05:40 #21601 [Verbose] > ||> stream.zip_with (+++)
00:05:40 #21602 [Verbose] > |> d_multi_particle_state
00:05:40 #21603 [Verbose] >
00:05:40 #21604 [Verbose] > instance scale d_multi_particle_state = fun w (d_multi_particle_state dsts) =>
00:05:40 #21605 [Verbose] > dsts
00:05:40 #21606 [Verbose] > |> stream.map (scale w)
00:05:40 #21607 [Verbose] > |> d_multi_particle_state
00:05:40 #21608 [Verbose] >
00:05:40 #21609 [Verbose] > instance shift multi_particle_state = fun dt dsts (multi_particle_state sts) =>
00:05:40 #21610 [Verbose] > inl (d_multi_particle_state dsts) =
00:05:40 #21611 [Verbose] > real
00:05:40 #21612 [Verbose] > match dsts with
00:05:40 #21613 [Verbose] > | d_multi_particle_state _ => dsts
00:05:40 #21614 [Verbose] > (dsts, sts)
00:05:40 #21615 [Verbose] > ||> stream.zip_with (shift dt)
00:05:40 #21616 [Verbose] > |> stream.memoize
00:05:40 #21617 [Verbose] > |> fun x => x ()
00:05:40 #21618 [Verbose] > |> multi_particle_state
00:05:40 #21619 [Verbose] >
00:05:40 #21620 [Verbose] > inl euler_cromer_mps dt : numerical_method multi_particle_state
00:05:40 #21621 [Verbose] > d_multi_particle_state =
00:05:40 #21622 [Verbose] > fun deriv ((multi_particle_state sts0) as mpst0) =>
00:05:40 #21623 [Verbose] > inl (multi_particle_state sts1) = euler dt deriv mpst0
00:05:40 #21624 [Verbose] > (sts0, sts1)
00:05:40 #21625 [Verbose] > ||> stream.zip
00:05:40 #21626 [Verbose] > |> stream.map (fun ((particle_state st0), (particle_state st1)) =>
00:05:40 #21627 [Verbose] > particle_state {
00:05:40 #21628 [Verbose] > st1 with
00:05:40 #21629 [Verbose] > pos_vec = st0.pos_vec ^+^ st1.velocity ^* dt
00:05:40 #21630 [Verbose] > }
00:05:40 #21631 [Verbose] > )
00:05:40 #21632 [Verbose] > |> multi_particle_state
00:05:40 #21633 [Verbose] >
00:05:40 #21634 [Verbose] > inl update_mps (method : numerical_method multi_particle_state
00:05:40 #21635 [Verbose] > d_multi_particle_state) =
00:05:40 #21636 [Verbose] > newton_second_mps >> method
00:05:40 #21637 [Verbose] >
00:05:40 #21638 [Verbose] > inl states_mps (method : numerical_method multi_particle_state
00:05:40 #21639 [Verbose] > d_multi_particle_state) =
00:05:40 #21640 [Verbose] > newton_second_mps
00:05:40 #21641 [Verbose] > >> method
00:05:40 #21642 [Verbose] > >> (fun x (multi_particle_state y) =>
00:05:40 #21643 [Verbose] > y
00:05:40 #21644 [Verbose] > |> stream.memoize
00:05:40 #21645 [Verbose] > |> (fun x => x ())
00:05:40 #21646 [Verbose] > |> multi_particle_state |> x
00:05:40 #21647 [Verbose] > )
00:05:40 #21648 [Verbose] > // >> stream.iterate
00:05:40 #21649 [Verbose] > >> seq.iterate'
00:05:40 #21650 [Verbose] >
00:05:40 #21651 [Verbose] > inl kinetic_energy (particle_state st) =
00:05:40 #21652 [Verbose] > inl m = st.mass
00:05:40 #21653 [Verbose] > inl v = magnitude st.velocity
00:05:40 #21654 [Verbose] > 0.5 * m * v ** 2
00:05:40 #21655 [Verbose] >
00:05:40 #21656 [Verbose] > inl system_ke (multi_particle_state sts) =
00:05:40 #21657 [Verbose] > sts
00:05:40 #21658 [Verbose] > |> stream.map kinetic_energy
00:05:40 #21659 [Verbose] > |> stream.sum
00:05:40 #21660 [Verbose] >
00:05:40 #21661 [Verbose] > inl linear_spring_pe k re (particle_state st1) (particle_state st2) =
00:05:40 #21662 [Verbose] > inl r1 = st1.pos_vec
00:05:40 #21663 [Verbose] > inl r2 = st2.pos_vec
00:05:40 #21664 [Verbose] > inl r21 = r2 ^-^ r1
00:05:40 #21665 [Verbose] > inl r21mag = magnitude r21
00:05:40 #21666 [Verbose] > k * (r21mag - re) ** 2 / 2
00:05:40 #21667 [Verbose] >
00:05:40 #21668 [Verbose] > inl earth_surface_gravity_pe (particle_state st) =
00:05:40 #21669 [Verbose] > inl g = 9.80665
00:05:40 #21670 [Verbose] > inl m = st.mass
00:05:40 #21671 [Verbose] > inl z = st.pos_vec.z
00:05:40 #21672 [Verbose] > m * g * z
00:05:40 #21673 [Verbose] >
00:05:40 #21674 [Verbose] > inl ball_radius () = 0.03
00:05:40 #21675 [Verbose] >
00:05:40 #21676 [Verbose] > inl billiard_forces k =
00:05:40 #21677 [Verbose] > [[ InternalForce (0i32, 1, billiard_force k (2 * ball_radius ())) ]]
00:05:40 #21678 [Verbose] >
00:05:40 #21679 [Verbose] > inl billiard_initial () =
00:05:40 #21680 [Verbose] > inl ball_mass = 0.160
00:05:40 #21681 [Verbose] > inl (particle_state default_particle_state') = default_particle_state ()
00:05:40 #21682 [Verbose] > [[
00:05:40 #21683 [Verbose] > particle_state {
00:05:40 #21684 [Verbose] > default_particle_state' with
00:05:40 #21685 [Verbose] > mass = ball_mass
00:05:40 #21686 [Verbose] > pos_vec = zero_vec ()
00:05:40 #21687 [Verbose] > velocity = 0.2 *^ i_hat ()
00:05:40 #21688 [Verbose] > }
00:05:40 #21689 [Verbose] > particle_state {
00:05:40 #21690 [Verbose] > default_particle_state' with
00:05:40 #21691 [Verbose] > mass = ball_mass
00:05:40 #21692 [Verbose] > pos_vec = i_hat () ^+^ 0.02 *^ j_hat ()
00:05:40 #21693 [Verbose] > velocity = zero_vec ()
00:05:40 #21694 [Verbose] > }
00:05:40 #21695 [Verbose] > ]]
00:05:40 #21696 [Verbose] > |> stream.from_list
00:05:40 #21697 [Verbose] > |> multi_particle_state
00:05:40 #21698 [Verbose] >
00:05:40 #21699 [Verbose] > inl billiard_states ~n_method k dt =
00:05:40 #21700 [Verbose] > states_mps (n_method dt) (billiard_forces k) (billiard_initial ())
00:05:40 #21701 [Verbose] >
00:05:40 #21702 [Verbose] > inl billiard_states_finite n_method k dt =
00:05:40 #21703 [Verbose] > billiard_states n_method k dt
00:05:40 #21704 [Verbose] > >> Some
00:05:40 #21705 [Verbose] > |> seq.take_while_ (fun (multi_particle_state mpst) (_ : i32) =>
00:05:40 #21706 [Verbose] > match mpst |> stream.try_item 0i32 with
00:05:40 #21707 [Verbose] > | Some st =>
00:05:40 #21708 [Verbose] > st.time <= 10
00:05:40 #21709 [Verbose] > | None => false
00:05:40 #21710 [Verbose] > )
00:05:40 #21711 [Verbose] >
00:05:40 #21712 [Verbose] > inl momentum (particle_state st) =
00:05:40 #21713 [Verbose] > inl m = st.mass
00:05:40 #21714 [Verbose] > inl v = st.velocity
00:05:40 #21715 [Verbose] > m *^ v
00:05:40 #21716 [Verbose] >
00:05:40 #21717 [Verbose] > inl system_p (multi_particle_state sts) =
00:05:40 #21718 [Verbose] > sts
00:05:40 #21719 [Verbose] > |> stream.map momentum
00:05:40 #21720 [Verbose] > |> stream.fold (^+^) (zero_vec ())
00:05:40 #21721 [Verbose] >
00:05:40 #21722 [Verbose] > inl time_ke_ec_x, time_ke_ec_y =
00:05:40 #21723 [Verbose] > billiard_states_finite euler_cromer_mps 30 0.03
00:05:40 #21724 [Verbose] > |> listm.map (fun (multi_particle_state mpst) =>
00:05:40 #21725 [Verbose] > mpst |> stream.try_item 0i32
00:05:40 #21726 [Verbose] > |> optionm.map (fun st =>
00:05:40 #21727 [Verbose] > st.time, system_ke (multi_particle_state mpst)
00:05:40 #21728 [Verbose] > )
00:05:40 #21729 [Verbose] > )
00:05:40 #21730 [Verbose] > // |> stream.to_list
00:05:40 #21731 [Verbose] > |> listm'.choose id
00:05:40 #21732 [Verbose] > |> listm'.unzip
00:05:40 #21733 [Verbose] >
00:05:40 #21734 [Verbose] > inl time_ke_rk4_x, time_ke_rk4_y =
00:05:40 #21735 [Verbose] > billiard_states_finite runge_kutta_4 30 0.03
00:05:40 #21736 [Verbose] > |> listm.map (fun (multi_particle_state mpst) =>
00:05:40 #21737 [Verbose] > mpst |> stream.try_item 0i32
00:05:40 #21738 [Verbose] > |> optionm.map (fun st =>
00:05:40 #21739 [Verbose] > st.time, system_ke (multi_particle_state mpst)
00:05:40 #21740 [Verbose] > )
00:05:40 #21741 [Verbose] > )
00:05:40 #21742 [Verbose] > // |> stream.to_list
00:05:40 #21743 [Verbose] > |> listm'.choose id
00:05:40 #21744 [Verbose] > |> listm'.unzip
00:05:40 #21745 [Verbose] >
00:05:40 #21746 [Verbose] > inl time_ke_ec_x : a i32 _ = time_ke_ec_x |> listm.toArray
00:05:40 #21747 [Verbose] > inl time_ke_ec_y : a i32 _ = time_ke_ec_y |> listm.toArray
00:05:40 #21748 [Verbose] >
00:05:40 #21749 [Verbose] > inl time_ke_rk4_x : a i32 _ = time_ke_rk4_x |> listm.toArray
00:05:40 #21750 [Verbose] > inl time_ke_rk4_y : a i32 _ = time_ke_rk4_y |> listm.toArray
00:05:40 #21751 [Verbose] >
00:05:40 #21752 [Verbose] > "system kinetic energy versus time",
00:05:40 #21753 [Verbose] > "time (s)",
00:05:40 #21754 [Verbose] > "system kinetic energy (j)",
00:05:40 #21755 [Verbose] > ;[[
00:05:40 #21756 [Verbose] > "euler-cromer", time_ke_ec_x, time_ke_ec_y
00:05:40 #21757 [Verbose] > "runge-kutta 4", time_ke_rk4_x, time_ke_rk4_y
00:05:40 #21758 [Verbose] > ]]
00:05:42 #21759 [Verbose] >
00:05:42 #21760 [Verbose] > ╭─[ 1.98s - return value ]─────────────────────────────────────────────────────╮
00:05:42 #21761 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:05:42 #21762 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:05:42 #21763 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:05:42 #21764 [Verbose] > │ stroke="none"/> │
00:05:42 #21765 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:05:42 #21766 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:05:42 #21767 [Verbose] > │ fill="#FFFFFF"> │
00:05:42 #21768 [Verbose] > │ system kinetic energy versus time │
00:05:42 #21769 [Verbose] > │ </text> │
00:05:42 #21770 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" y1="424" x2="59" │
00:05:42 #21771 [Verbose] > │ y2="75"/> │
00:05:42 #21772 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:05:42 #21773 [Verbose] > │ y2="75"/> │
00:05:42 #21774 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" y1="424" x2="79" │
00:05:42 #21775 [Verbose] > │ y2="75"/> │
00:05:42 #21776 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" y1="424" x2="89" │
00:05:42 #21777 [Verbose] > │ y2="75"/> │
00:05:42 #21778 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1... │
00:05:42 #21779 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:42 #21780 [Verbose] >
00:05:42 #21781 [Verbose] > ╭─[ 1.99s - stdout ]───────────────────────────────────────────────────────────╮
00:05:42 #21782 [Verbose] > │ type UH0 = │
00:05:42 #21783 [Verbose] > │ | UH0_0 of float * float * float * float * float * float * float * float │
00:05:42 #21784 [Verbose] > │ * float * (unit -> UH0) │
00:05:42 #21785 [Verbose] > │ | UH0_1 │
00:05:42 #21786 [Verbose] > │ and UH1 = │
00:05:42 #21787 [Verbose] > │ | UH1_0 of float * float * float * float * float * float * float * float │
00:05:42 #21788 [Verbose] > │ * float * (unit -> UH1) │
00:05:42 #21789 [Verbose] > │ | UH1_1 │
00:05:42 #21790 [Verbose] > │ and [<Struct>] US0 = │
00:05:42 #21791 [Verbose] > │ | US0_0 of f0_0 : UH0 │
00:05:42 #21792 [Verbose] > │ | US0_1 of f1_0 : (unit -> UH0) │
00:05:42 #21793 [Verbose] > │ and Mut0 = {mutable l0 : US0} │
00:05:42 #21794 [Verbose] > │ and UH2 = │
00:05:42 #21795 [Verbose] > │ | UH2_0 of float * float * float * float * float * float * float * float │
00:05:42 #21796 [Verbose] > │ * float * float * float * float * float * float * float * float * float * │
00:05:42 #21797 [Verbose] > │ float * (unit -> UH2) │
00:05:42 #21798 [Verbose] > │ | UH2_1 │
00:05:42 #21799 [Verbose] > │ and UH3 = │
00:05:42 #21800 [Verbose] > │ | UH3_0 of int32 * float * float * float * float * float * float * float │
00:05:42 #21801 [Verbose] > │ * float * float * (unit -> UH3) │
00:05:42 #21802 [Verbose] > │ | UH3_1 │
00:05:42 #21803 [Verbose] > │ and [<Struct>] US1 = │
00:05:42 #21804 [Verbose] > │ | US1_0 │
00:05:42 #21805 [Verbose] > │ | US1_1 of f1_0 : (struct (float * float * float * float * float * float │
00:05:42 #21806 [Verbose] > │ * float * float * float) -> struct (float * float * float)) │
00:05:42 #21807 [Verbose] > │ and [<Struct>] US2 = │
00:05:42 #21808 [Verbose] > │ | US2_0 │
00:05:42 #21809 [Verbose] > │ | US2_1 of f1_0 : float * f1_1 : float * f1_2 : float * f1_3 : float * │
00:05:42 #21810 [Verbose] > │ f1_4 : float * f1_5 : float * f1_6 : float * f1_7 : float * f1_8 : float │
00:05:42 #21811 [Verbose] > │ and UH4 = │
00:05:42 #21812 [Verbose] > │ | UH4_0 of UH0 * UH4 │
00:05:42 #21813 [Verbose] > │ | UH4_1 │
00:05:42 #21814 [Verbose] > │ and UH5 = │
00:05:42 #21815 [Verbose] > │ | UH5_0 of int32 * UH5 │
00:05:42 #21816 [Verbose] > │ | UH5_1 │
00:05:42 #21817 [Verbose] > │ and [<Struct>] US3 = │
00:05:42 #21818 [Verbose] > │ | US3_0 │
00:05:42 #21819 [Verbose] > │ | US3_1 of f1_0 : float * f1_1 : float │
00:05:42 #21820 [Verbose] > │ and UH6 = │
00:05:42 #21821 [Verbose] > │ | UH6_0 of US3 * UH6 │
00:05:42 #21822 [Verbose] > │ | UH6_1 │
00:05:42 #21823 [Verbose] > │ and UH7 = │
00:05:42 #21824 [Verbose] > │ | UH7_0 of float * (unit -> UH7) │
00:05:42 #21825 [Verbose] > │ | UH7_1 │
00:05:42 #21826 [Verbose] > │ and UH8 = │
00:05:42 #21827 [Verbose] > │ | UH8_0 of float * float * UH8 │
00:05:42 #21828 [Verbose] > │ | UH8_1 │
00:05:42 #21829 [Verbose] > │ and UH9 = │
00:05:42 #21830 [Verbose] > │ | UH9_0 of float * UH9 │
00:05:42 #21831 [Verbose] > │ | UH9_1 │
00:05:42 #21832 [Verbose] > │ let rec closure3 (v0 : float, v1 : (unit -> UH0), v2 : (unit -> UH1)) () : │
00:05:42 #21833 [Verbose] > │ UH0 = │
00:05:42 #21834 [Verbose] > │ let v3 : UH1 = v2 () │
00:05:42 #21835 [Verbose] > │ let v4 : UH0 = v1 () │
00:05:42 #21836 [Verbose] > │ match v3 with │
00:05:42 #21837 [Verbose] > │ | UH1_0(v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) -> (* StreamCons *) │
00:05:42 #21838 [Verbose] > │ match v4 with │
00:05:42 #21839 [Verbose] > │ | UH0_0(v15, v16, v17, v18, v19, v20, v21, v22, v23, v24) -> (* │
00:05:42 #21840 [Verbose] > │ StreamCons *) │
00:05:42 #21841 [Verbose] > │ let v25 : float = v10 * v0 │
00:05:42 #21842 [Verbose] > │ let v26 : float = v20 + v25 │
00:05:42 #21843 [Verbose] > │ let v27 : float = v0 * v7 │
00:05:42 #21844 [Verbose] > │ let v28 : float = v0 * v8 │
00:05:42 #21845 [Verbose] > │ let v29 : float = v0 * v9 │
00:05:42 #21846 [Verbose] > │ let v30 : float = v17 + v27 │
00:05:42 #21847 [Verbose] > │ let v31 : float = v18 + v28 │
00:05:42 #21848 [Verbose] > │ let v32 : float = v19 + v29 │
00:05:42 #21849 [Verbose] > │ let v33 : float = v0 * v11 │
00:05:42 #21850 [Verbose] > │ let v34 : float = v0 * v12 │
00:05:42 #21851 [Verbose] > │ let v35 : float = v0 * v13 │
00:05:42 #21852 [Verbose] > │ let v36 : float = v21 + v33 │
00:05:42 #21853 [Verbose] > │ let v37 : float = v22 + v34 │
00:05:42 #21854 [Verbose] > │ let v38 : float = v23 + v35 │
00:05:42 #21855 [Verbose] > │ let v39 : (unit -> UH0) = closure3(v0, v24, v14) │
00:05:42 #21856 [Verbose] > │ UH0_0(v15, v16, v30, v31, v32, v26, v36, v37, v38, v39) │
00:05:42 #21857 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:42 #21858 [Verbose] > │ UH0_1 │
00:05:42 #21859 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:05:42 #21860 [Verbose] > │ UH0_1 │
00:05:42 #21861 [Verbose] > │ and closure4 (v0 : UH0) () : UH0 = │
00:05:42 #21862 [Verbose] > │ v0 │
00:05:42 #21863 [Verbose] > │ and closure5 (v0 : UH0, v1 : Mut0) () : UH0 = │
00:05:42 #21864 [Verbose] > │ let v2 : US0 = v1.l0 │
00:05:42 #21865 [Verbose] > │ match v2 with │
00:05:42 #21866 [Verbose] > │ | US0_0(v3) -> (* Computed *) │
00:05:42 #21867 [Verbose] > │ v3 │
00:05:42 #21868 [Verbose] > │ | US0_1(v4) -> (* NotComputed *) │
00:05:42 #21869 [Verbose] > │ let v5 : UH0 = v4 () │
00:05:42 #21870 [Verbose] > │ let v20 : UH0 = │
00:05:42 #21871 [Verbose] > │ match v5 with │
00:05:42 #21872 [Verbose] > │ | UH0_0(v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) -> (* │
00:05:42 #21873 [Verbose] > │ StreamCons *) │
00:05:42 #21874 [Verbose] > │ let v17 : (unit -> UH0) = method1(v0, v16) │
00:05:42 #21875 [Verbose] > │ UH0_0(v7, v8, v9, v10, v11, v12, v13, v14, v15, v17) │
00:05:42 #21876 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:42 #21877 [Verbose] > │ UH0_1 │
00:05:42 #21878 [Verbose] > │ let v21 : US0 = US0_0(v20) │
00:05:42 #21879 [Verbose] > │ v1.l0 <- v21 │
00:05:42 #21880 [Verbose] > │ v20 │
00:05:42 #21881 [Verbose] > │ and method1 (v0 : UH0, v1 : (unit -> UH0)) : (unit -> UH0) = │
00:05:42 #21882 [Verbose] > │ let v2 : US0 = US0_1(v1) │
00:05:42 #21883 [Verbose] > │ let v3 : Mut0 = {l0 = v2} : Mut0 │
00:05:42 #21884 [Verbose] > │ closure5(v0, v3) │
00:05:42 #21885 [Verbose] > │ and closure6 (v0 : (unit -> UH0), v1 : (unit -> UH0)) () : UH2 = │
00:05:42 #21886 [Verbose] > │ let v2 : UH0 = v1 () │
00:05:42 #21887 [Verbose] > │ let v3 : UH0 = v0 () │
00:05:42 #21888 [Verbose] > │ match v2 with │
00:05:42 #21889 [Verbose] > │ | UH0_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons *) │
00:05:42 #21890 [Verbose] > │ match v3 with │
00:05:42 #21891 [Verbose] > │ | UH0_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (* │
00:05:42 #21892 [Verbose] > │ StreamCons *) │
00:05:42 #21893 [Verbose] > │ let v24 : (unit -> UH2) = closure6(v23, v13) │
00:05:42 #21894 [Verbose] > │ UH2_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v14, v15, v16, v17, │
00:05:42 #21895 [Verbose] > │ v18, v19, v20, v21, v22, v24) │
00:05:42 #21896 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:42 #21897 [Verbose] > │ UH2_1 │
00:05:42 #21898 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:42 #21899 [Verbose] > │ UH2_1 │
00:05:42 #21900 [Verbose] > │ and closure7 (v0 : UH0) () : UH0 = │
00:05:42 #21901 [Verbose] > │ v0 │
00:05:42 #21902 [Verbose] > │ and method2 (v0 : float, v1 : UH2, v2 : UH0) : UH0 = │
00:05:42 #21903 [Verbose] > │ match v1 with │
00:05:42 #21904 [Verbose] > │ | UH2_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, │
00:05:42 #21905 [Verbose] > │ v17, v18, v19, v20, v21) -> (* StreamCons *) │
00:05:42 #21906 [Verbose] > │ let v22 : UH2 = v21 () │
00:05:42 #21907 [Verbose] > │ let v23 : UH0 = method2(v0, v22, v2) │
00:05:42 #21908 [Verbose] > │ let v24 : float = v0 * v18 │
00:05:42 #21909 [Verbose] > │ let v25 : float = v0 * v19 │
00:05:42 #21910 [Verbose] > │ let v26 : float = v0 * v20 │
00:05:42 #21911 [Verbose] > │ let v27 : float = v5 + v24 │
00:05:42 #21912 [Verbose] > │ let v28 : float = v6 + v25 │
00:05:42 #21913 [Verbose] > │ let v29 : float = v7 + v26 │
00:05:42 #21914 [Verbose] > │ let v30 : (unit -> UH0) = closure7(v23) │
00:05:42 #21915 [Verbose] > │ UH0_0(v12, v13, v27, v28, v29, v17, v18, v19, v20, v30) │
00:05:42 #21916 [Verbose] > │ | UH2_1 -> (* StreamNil *) │
00:05:42 #21917 [Verbose] > │ v2 │
00:05:42 #21918 [Verbose] > │ and closure2 (v0 : float, v1 : (UH0 -> UH1)) (v2 : UH0) : UH0 = │
00:05:42 #21919 [Verbose] > │ let v3 : UH1 = v1 v2 │
00:05:42 #21920 [Verbose] > │ let v45 : UH0 = │
00:05:42 #21921 [Verbose] > │ match v3 with │
00:05:42 #21922 [Verbose] > │ | UH1_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons │
00:05:42 #21923 [Verbose] > │ *) │
00:05:42 #21924 [Verbose] > │ match v2 with │
00:05:42 #21925 [Verbose] > │ | UH0_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (* │
00:05:42 #21926 [Verbose] > │ StreamCons *) │
00:05:42 #21927 [Verbose] > │ let v24 : float = v9 * v0 │
00:05:42 #21928 [Verbose] > │ let v25 : float = v19 + v24 │
00:05:42 #21929 [Verbose] > │ let v26 : float = v0 * v6 │
00:05:42 #21930 [Verbose] > │ let v27 : float = v0 * v7 │
00:05:42 #21931 [Verbose] > │ let v28 : float = v0 * v8 │
00:05:42 #21932 [Verbose] > │ let v29 : float = v16 + v26 │
00:05:42 #21933 [Verbose] > │ let v30 : float = v17 + v27 │
00:05:42 #21934 [Verbose] > │ let v31 : float = v18 + v28 │
00:05:42 #21935 [Verbose] > │ let v32 : float = v0 * v10 │
00:05:42 #21936 [Verbose] > │ let v33 : float = v0 * v11 │
00:05:42 #21937 [Verbose] > │ let v34 : float = v0 * v12 │
00:05:42 #21938 [Verbose] > │ let v35 : float = v20 + v32 │
00:05:42 #21939 [Verbose] > │ let v36 : float = v21 + v33 │
00:05:42 #21940 [Verbose] > │ let v37 : float = v22 + v34 │
00:05:42 #21941 [Verbose] > │ let v38 : (unit -> UH0) = closure3(v0, v23, v13) │
00:05:42 #21942 [Verbose] > │ UH0_0(v14, v15, v29, v30, v31, v25, v35, v36, v37, v38) │
00:05:42 #21943 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:42 #21944 [Verbose] > │ UH0_1 │
00:05:42 #21945 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:05:42 #21946 [Verbose] > │ UH0_1 │
00:05:42 #21947 [Verbose] > │ let v46 : (unit -> UH0) = closure4(v45) │
00:05:42 #21948 [Verbose] > │ let v47 : (unit -> UH0) = method1(v45, v46) │
00:05:42 #21949 [Verbose] > │ let v48 : UH0 = v47 () │
00:05:42 #21950 [Verbose] > │ let v76 : UH2 = │
00:05:42 #21951 [Verbose] > │ match v2 with │
00:05:42 #21952 [Verbose] > │ | UH0_0(v49, v50, v51, v52, v53, v54, v55, v56, v57, v58) -> (* │
00:05:42 #21953 [Verbose] > │ StreamCons *) │
00:05:42 #21954 [Verbose] > │ match v48 with │
00:05:42 #21955 [Verbose] > │ | UH0_0(v59, v60, v61, v62, v63, v64, v65, v66, v67, v68) -> (* │
00:05:42 #21956 [Verbose] > │ StreamCons *) │
00:05:42 #21957 [Verbose] > │ let v69 : (unit -> UH2) = closure6(v68, v58) │
00:05:42 #21958 [Verbose] > │ UH2_0(v49, v50, v51, v52, v53, v54, v55, v56, v57, v59, v60, │
00:05:42 #21959 [Verbose] > │ v61, v62, v63, v64, v65, v66, v67, v69) │
00:05:42 #21960 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:42 #21961 [Verbose] > │ UH2_1 │
00:05:42 #21962 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:42 #21963 [Verbose] > │ UH2_1 │
00:05:42 #21964 [Verbose] > │ let v77 : UH0 = UH0_1 │
00:05:42 #21965 [Verbose] > │ let v78 : UH0 = method2(v0, v76, v77) │
00:05:42 #21966 [Verbose] > │ v78 │
00:05:42 #21967 [Verbose] > │ and closure1 (v0 : float) (v1 : (UH0 -> UH1)) : (UH0 -> UH0) = │
00:05:42 #21968 [Verbose] > │ closure2(v0, v1) │
00:05:42 #21969 [Verbose] > │ and closure0 () (v0 : float) : ((UH0 -> UH1) -> (UH0 -> UH0)) = │
00:05:42 #21970 [Verbose] > │ closure1(v0) │
00:05:42 #21971 [Verbose] > │ and closure9 (v0 : UH3) () : UH3 = │
00:05:42 #21972 [Verbose] > │ v0 │
00:05:42 #21973 [Verbose] > │ and method3 (v0 : UH0, v1 : UH3, v2 : int32) : struct (UH3 * int32) = │
00:05:42 #21974 [Verbose] > │ match v0 with │
00:05:42 #21975 [Verbose] > │ | UH0_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* StreamCons *) │
00:05:42 #21976 [Verbose] > │ let v13 : int32 = v2 + 1 │
00:05:42 #21977 [Verbose] > │ let v14 : UH0 = v12 () │
00:05:42 #21978 [Verbose] > │ let v15 : (unit -> UH3) = closure9(v1) │
00:05:42 #21979 [Verbose] > │ let v16 : UH3 = UH3_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v15) │
00:05:42 #21980 [Verbose] > │ method3(v14, v16, v13) │
00:05:42 #21981 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:42 #21982 [Verbose] > │ struct (v1, v2) │
00:05:42 #21983 [Verbose] > │ and closure10 (v0 : UH3) () : UH3 = │
00:05:42 #21984 [Verbose] > │ v0 │
00:05:42 #21985 [Verbose] > │ and method4 (v0 : UH3, v1 : UH3) : UH3 = │
00:05:42 #21986 [Verbose] > │ match v0 with │
00:05:42 #21987 [Verbose] > │ | UH3_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* StreamCons │
00:05:42 #21988 [Verbose] > │ *) │
00:05:42 #21989 [Verbose] > │ let v13 : UH3 = v12 () │
00:05:42 #21990 [Verbose] > │ let v14 : (unit -> UH3) = closure10(v1) │
00:05:42 #21991 [Verbose] > │ let v15 : UH3 = UH3_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v14) │
00:05:42 #21992 [Verbose] > │ method4(v13, v15) │
00:05:42 #21993 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:05:42 #21994 [Verbose] > │ v1 │
00:05:42 #21995 [Verbose] > │ and method6 (v0 : int32, v1 : UH0) : US2 = │
00:05:42 #21996 [Verbose] > │ match v1 with │
00:05:42 #21997 [Verbose] > │ | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* StreamCons *) │
00:05:42 #21998 [Verbose] > │ let v12 : bool = v0 <= 0 │
00:05:42 #21999 [Verbose] > │ if v12 then │
00:05:42 #22000 [Verbose] > │ US2_1(v2, v3, v4, v5, v6, v7, v8, v9, v10) │
00:05:42 #22001 [Verbose] > │ else │
00:05:42 #22002 [Verbose] > │ let v14 : int32 = v0 - 1 │
00:05:42 #22003 [Verbose] > │ let v15 : UH0 = v11 () │
00:05:42 #22004 [Verbose] > │ method6(v14, v15) │
00:05:42 #22005 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:42 #22006 [Verbose] > │ US2_0 │
00:05:42 #22007 [Verbose] > │ and closure11 (v0 : float, v1 : float, v2 : float, v3 : float, v4 : float, │
00:05:42 #22008 [Verbose] > │ v5 : float, v6 : float, v7 : float, v8 : float) struct (v9 : float, v10 : │
00:05:42 #22009 [Verbose] > │ float, v11 : float, v12 : float, v13 : float, v14 : float, v15 : float, v16 │
00:05:42 #22010 [Verbose] > │ : float, v17 : float) : struct (float * float * float) = │
00:05:42 #22011 [Verbose] > │ let v18 : float = -1.0 * v2 │
00:05:42 #22012 [Verbose] > │ let v19 : float = -1.0 * v3 │
00:05:42 #22013 [Verbose] > │ let v20 : float = -1.0 * v4 │
00:05:42 #22014 [Verbose] > │ let v21 : float = v11 + v18 │
00:05:42 #22015 [Verbose] > │ let v22 : float = v12 + v19 │
00:05:42 #22016 [Verbose] > │ let v23 : float = v13 + v20 │
00:05:42 #22017 [Verbose] > │ let v24 : float = v21 * v21 │
00:05:42 #22018 [Verbose] > │ let v25 : float = v22 * v22 │
00:05:42 #22019 [Verbose] > │ let v26 : float = v24 + v25 │
00:05:42 #22020 [Verbose] > │ let v27 : float = v23 * v23 │
00:05:42 #22021 [Verbose] > │ let v28 : float = v26 + v27 │
00:05:42 #22022 [Verbose] > │ let v29 : float = sqrt v28 │
00:05:42 #22023 [Verbose] > │ let v30 : bool = v29 >= 0.06 │
00:05:42 #22024 [Verbose] > │ let v33 : float = │
00:05:42 #22025 [Verbose] > │ if v30 then │
00:05:42 #22026 [Verbose] > │ 0.0 │
00:05:42 #22027 [Verbose] > │ else │
00:05:42 #22028 [Verbose] > │ let v31 : float = v29 - 0.06 │
00:05:42 #22029 [Verbose] > │ let v32 : float = -30.0 * v31 │
00:05:42 #22030 [Verbose] > │ v32 │
00:05:42 #22031 [Verbose] > │ let v34 : float = v33 * v21 │
00:05:42 #22032 [Verbose] > │ let v35 : float = v33 * v22 │
00:05:42 #22033 [Verbose] > │ let v36 : float = v33 * v23 │
00:05:42 #22034 [Verbose] > │ let v37 : float = v34 / v29 │
00:05:42 #22035 [Verbose] > │ let v38 : float = v35 / v29 │
00:05:42 #22036 [Verbose] > │ let v39 : float = v36 / v29 │
00:05:42 #22037 [Verbose] > │ struct (v37, v38, v39) │
00:05:42 #22038 [Verbose] > │ and closure12 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 │
00:05:42 #22039 [Verbose] > │ : float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float * │
00:05:42 #22040 [Verbose] > │ float * float) = │
00:05:42 #22041 [Verbose] > │ struct (0.0, 0.0, 0.0) │
00:05:42 #22042 [Verbose] > │ and closure13 (v0 : UH1) () : UH1 = │
00:05:42 #22043 [Verbose] > │ v0 │
00:05:42 #22044 [Verbose] > │ and method5 (v0 : UH0, v1 : UH3, v2 : UH1) : UH1 = │
00:05:42 #22045 [Verbose] > │ match v1 with │
00:05:42 #22046 [Verbose] > │ | UH3_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons │
00:05:42 #22047 [Verbose] > │ *) │
00:05:42 #22048 [Verbose] > │ let v14 : UH3 = v13 () │
00:05:42 #22049 [Verbose] > │ let v15 : UH1 = method5(v0, v14, v2) │
00:05:42 #22050 [Verbose] > │ let v16 : bool = v3 = 0 │
00:05:42 #22051 [Verbose] > │ let v52 : US1 = │
00:05:42 #22052 [Verbose] > │ if v16 then │
00:05:42 #22053 [Verbose] > │ let v17 : int32 = 1 │
00:05:42 #22054 [Verbose] > │ let v18 : US2 = method6(v17, v0) │
00:05:42 #22055 [Verbose] > │ match v18 with │
00:05:42 #22056 [Verbose] > │ | US2_0 -> (* None *) │
00:05:42 #22057 [Verbose] > │ US1_0 │
00:05:42 #22058 [Verbose] > │ | US2_1(v19, v20, v21, v22, v23, v24, v25, v26, v27) -> (* │
00:05:42 #22059 [Verbose] > │ Some *) │
00:05:42 #22060 [Verbose] > │ let v28 : (struct (float * float * float * float * float │
00:05:42 #22061 [Verbose] > │ * float * float * float * float) -> struct (float * float * float)) = │
00:05:42 #22062 [Verbose] > │ closure11(v19, v20, v21, v22, v23, v24, v25, v26, v27) │
00:05:42 #22063 [Verbose] > │ US1_1(v28) │
00:05:42 #22064 [Verbose] > │ else │
00:05:42 #22065 [Verbose] > │ let v33 : bool = v3 = 1 │
00:05:42 #22066 [Verbose] > │ if v33 then │
00:05:42 #22067 [Verbose] > │ let v34 : int32 = 0 │
00:05:42 #22068 [Verbose] > │ let v35 : US2 = method6(v34, v0) │
00:05:42 #22069 [Verbose] > │ match v35 with │
00:05:42 #22070 [Verbose] > │ | US2_0 -> (* None *) │
00:05:42 #22071 [Verbose] > │ US1_0 │
00:05:42 #22072 [Verbose] > │ | US2_1(v36, v37, v38, v39, v40, v41, v42, v43, v44) -> │
00:05:42 #22073 [Verbose] > │ (* Some *) │
00:05:42 #22074 [Verbose] > │ let v45 : (struct (float * float * float * float * │
00:05:42 #22075 [Verbose] > │ float * float * float * float * float) -> struct (float * float * float)) = │
00:05:42 #22076 [Verbose] > │ closure11(v36, v37, v38, v39, v40, v41, v42, v43, v44) │
00:05:42 #22077 [Verbose] > │ US1_1(v45) │
00:05:42 #22078 [Verbose] > │ else │
00:05:42 #22079 [Verbose] > │ US1_0 │
00:05:42 #22080 [Verbose] > │ let v56 : (struct (float * float * float * float * float * float * │
00:05:42 #22081 [Verbose] > │ float * float * float) -> struct (float * float * float)) = │
00:05:42 #22082 [Verbose] > │ match v52 with │
00:05:42 #22083 [Verbose] > │ | US1_0 -> (* None *) │
00:05:42 #22084 [Verbose] > │ closure12() │
00:05:42 #22085 [Verbose] > │ | US1_1(v53) -> (* Some *) │
00:05:42 #22086 [Verbose] > │ v53 │
00:05:42 #22087 [Verbose] > │ let struct (v57 : float, v58 : float, v59 : float) = v56 struct (v4, │
00:05:42 #22088 [Verbose] > │ v5, v6, v7, v8, v9, v10, v11, v12) │
00:05:42 #22089 [Verbose] > │ let v60 : float = v57 / v5 │
00:05:42 #22090 [Verbose] > │ let v61 : float = v58 / v5 │
00:05:42 #22091 [Verbose] > │ let v62 : float = v59 / v5 │
00:05:42 #22092 [Verbose] > │ let v63 : (unit -> UH1) = closure13(v15) │
00:05:42 #22093 [Verbose] > │ UH1_0(0.0, 0.0, v10, v11, v12, 1.0, v60, v61, v62, v63) │
00:05:42 #22094 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:05:42 #22095 [Verbose] > │ v2 │
00:05:42 #22096 [Verbose] > │ and closure8 () (v0 : UH0) : UH1 = │
00:05:42 #22097 [Verbose] > │ let v1 : UH3 = UH3_1 │
00:05:42 #22098 [Verbose] > │ let v2 : int32 = 0 │
00:05:42 #22099 [Verbose] > │ let struct (v3 : UH3, v4 : int32) = method3(v0, v1, v2) │
00:05:42 #22100 [Verbose] > │ let v5 : UH3 = UH3_1 │
00:05:42 #22101 [Verbose] > │ let v6 : UH3 = method4(v3, v5) │
00:05:42 #22102 [Verbose] > │ let v7 : UH1 = UH1_1 │
00:05:42 #22103 [Verbose] > │ let v8 : UH1 = method5(v0, v6, v7) │
00:05:42 #22104 [Verbose] > │ v8 │
00:05:42 #22105 [Verbose] > │ and method8 (v0 : int32, v1 : int32) : UH5 = │
00:05:42 #22106 [Verbose] > │ let v2 : bool = v1 < v0 │
00:05:42 #22107 [Verbose] > │ if v2 then │
00:05:42 #22108 [Verbose] > │ let v3 : int32 = v1 + 1 │
00:05:42 #22109 [Verbose] > │ let v4 : UH5 = method8(v0, v3) │
00:05:42 #22110 [Verbose] > │ UH5_0(v1, v4) │
00:05:42 #22111 [Verbose] > │ else │
00:05:42 #22112 [Verbose] > │ UH5_1 │
00:05:42 #22113 [Verbose] > │ and closure15 () () : UH0 = │
00:05:42 #22114 [Verbose] > │ UH0_1 │
00:05:42 #22115 [Verbose] > │ and closure14 () () : UH0 = │
00:05:42 #22116 [Verbose] > │ let v0 : (unit -> UH0) = closure15() │
00:05:42 #22117 [Verbose] > │ UH0_0(0.0, 0.16, 1.0, 0.02, 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:05:42 #22118 [Verbose] > │ and method9 (v0 : (UH0 -> UH0), v1 : UH5, v2 : UH0) : UH0 = │
00:05:42 #22119 [Verbose] > │ match v1 with │
00:05:42 #22120 [Verbose] > │ | UH5_0(v3, v4) -> (* Cons *) │
00:05:42 #22121 [Verbose] > │ let v5 : (unit -> UH0) = closure4(v2) │
00:05:42 #22122 [Verbose] > │ let v6 : (unit -> UH0) = method1(v2, v5) │
00:05:42 #22123 [Verbose] > │ let v7 : UH0 = v6 () │
00:05:42 #22124 [Verbose] > │ let v8 : UH0 = v0 v7 │
00:05:42 #22125 [Verbose] > │ method9(v0, v4, v8) │
00:05:42 #22126 [Verbose] > │ | UH5_1 -> (* Nil *) │
00:05:42 #22127 [Verbose] > │ v2 │
00:05:42 #22128 [Verbose] > │ and method10 (v0 : UH4, v1 : UH4) : UH4 = │
00:05:42 #22129 [Verbose] > │ match v0 with │
00:05:42 #22130 [Verbose] > │ | UH4_0(v2, v3) -> (* Cons *) │
00:05:42 #22131 [Verbose] > │ let v4 : UH4 = UH4_0(v2, v1) │
00:05:42 #22132 [Verbose] > │ method10(v3, v4) │
00:05:42 #22133 [Verbose] > │ | UH4_1 -> (* Nil *) │
00:05:42 #22134 [Verbose] > │ v1 │
00:05:42 #22135 [Verbose] > │ and method7 (v0 : (UH0 -> UH0), v1 : UH4, v2 : int32) : UH4 = │
00:05:42 #22136 [Verbose] > │ let v3 : int32 = 0 │
00:05:42 #22137 [Verbose] > │ let v4 : UH5 = method8(v2, v3) │
00:05:42 #22138 [Verbose] > │ let v5 : float = 0.0 │
00:05:42 #22139 [Verbose] > │ let v6 : float = 0.16 │
00:05:42 #22140 [Verbose] > │ let v7 : float = 0.0 │
00:05:42 #22141 [Verbose] > │ let v8 : float = 0.0 │
00:05:42 #22142 [Verbose] > │ let v9 : float = 0.0 │
00:05:42 #22143 [Verbose] > │ let v10 : float = 0.0 │
00:05:42 #22144 [Verbose] > │ let v11 : float = 0.2 │
00:05:42 #22145 [Verbose] > │ let v12 : float = 0.0 │
00:05:42 #22146 [Verbose] > │ let v13 : float = 0.0 │
00:05:42 #22147 [Verbose] > │ let v14 : (unit -> UH0) = closure14() │
00:05:42 #22148 [Verbose] > │ let v15 : UH0 = UH0_0(v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) │
00:05:42 #22149 [Verbose] > │ let v16 : UH0 = method9(v0, v4, v15) │
00:05:42 #22150 [Verbose] > │ let v17 : int32 = 0 │
00:05:42 #22151 [Verbose] > │ let v18 : US2 = method6(v17, v16) │
00:05:42 #22152 [Verbose] > │ let v30 : bool = │
00:05:42 #22153 [Verbose] > │ match v18 with │
00:05:42 #22154 [Verbose] > │ | US2_0 -> (* None *) │
00:05:42 #22155 [Verbose] > │ false │
00:05:42 #22156 [Verbose] > │ | US2_1(v19, v20, v21, v22, v23, v24, v25, v26, v27) -> (* Some *) │
00:05:42 #22157 [Verbose] > │ let v28 : bool = v24 <= 10.0 │
00:05:42 #22158 [Verbose] > │ v28 │
00:05:42 #22159 [Verbose] > │ if v30 then │
00:05:42 #22160 [Verbose] > │ let v31 : UH4 = UH4_0(v16, v1) │
00:05:42 #22161 [Verbose] > │ let v32 : int32 = v2 + 1 │
00:05:42 #22162 [Verbose] > │ method7(v0, v31, v32) │
00:05:42 #22163 [Verbose] > │ else │
00:05:42 #22164 [Verbose] > │ let v34 : UH4 = UH4_1 │
00:05:42 #22165 [Verbose] > │ method10(v1, v34) │
00:05:42 #22166 [Verbose] > │ and closure16 (v0 : UH7) () : UH7 = │
00:05:42 #22167 [Verbose] > │ v0 │
00:05:42 #22168 [Verbose] > │ and method12 (v0 : UH0, v1 : UH7) : UH7 = │
00:05:42 #22169 [Verbose] > │ match v0 with │
00:05:42 #22170 [Verbose] > │ | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* StreamCons *) │
00:05:42 #22171 [Verbose] > │ let v12 : UH0 = v11 () │
00:05:42 #22172 [Verbose] > │ let v13 : UH7 = method12(v12, v1) │
00:05:42 #22173 [Verbose] > │ let v14 : float = v8 * v8 │
00:05:42 #22174 [Verbose] > │ let v15 : float = v9 * v9 │
00:05:42 #22175 [Verbose] > │ let v16 : float = v14 + v15 │
00:05:42 #22176 [Verbose] > │ let v17 : float = v10 * v10 │
00:05:42 #22177 [Verbose] > │ let v18 : float = v16 + v17 │
00:05:42 #22178 [Verbose] > │ let v19 : float = sqrt v18 │
00:05:42 #22179 [Verbose] > │ let v20 : float = 0.5 * v3 │
00:05:42 #22180 [Verbose] > │ let v21 : float = v19 ** 2.0 │
00:05:42 #22181 [Verbose] > │ let v22 : float = v20 * v21 │
00:05:42 #22182 [Verbose] > │ let v23 : (unit -> UH7) = closure16(v13) │
00:05:42 #22183 [Verbose] > │ UH7_0(v22, v23) │
00:05:42 #22184 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:42 #22185 [Verbose] > │ v1 │
00:05:42 #22186 [Verbose] > │ and method13 (v0 : UH7, v1 : float) : float = │
00:05:42 #22187 [Verbose] > │ match v0 with │
00:05:42 #22188 [Verbose] > │ | UH7_0(v2, v3) -> (* StreamCons *) │
00:05:42 #22189 [Verbose] > │ let v4 : float = v1 + v2 │
00:05:42 #22190 [Verbose] > │ let v5 : UH7 = v3 () │
00:05:42 #22191 [Verbose] > │ method13(v5, v4) │
00:05:42 #22192 [Verbose] > │ | UH7_1 -> (* StreamNil *) │
00:05:42 #22193 [Verbose] > │ v1 │
00:05:42 #22194 [Verbose] > │ and method11 (v0 : UH4, v1 : UH6) : UH6 = │
00:05:42 #22195 [Verbose] > │ match v0 with │
00:05:42 #22196 [Verbose] > │ | UH4_0(v2, v3) -> (* Cons *) │
00:05:42 #22197 [Verbose] > │ let v4 : UH6 = method11(v3, v1) │
00:05:42 #22198 [Verbose] > │ let v5 : int32 = 0 │
00:05:42 #22199 [Verbose] > │ let v6 : US2 = method6(v5, v2) │
00:05:42 #22200 [Verbose] > │ let v23 : US3 = │
00:05:42 #22201 [Verbose] > │ match v6 with │
00:05:42 #22202 [Verbose] > │ | US2_0 -> (* None *) │
00:05:42 #22203 [Verbose] > │ US3_0 │
00:05:42 #22204 [Verbose] > │ | US2_1(v7, v8, v9, v10, v11, v12, v13, v14, v15) -> (* Some *) │
00:05:42 #22205 [Verbose] > │ let v16 : UH7 = UH7_1 │
00:05:42 #22206 [Verbose] > │ let v17 : UH7 = method12(v2, v16) │
00:05:42 #22207 [Verbose] > │ let v18 : float = 0.0 │
00:05:42 #22208 [Verbose] > │ let v19 : float = method13(v17, v18) │
00:05:42 #22209 [Verbose] > │ US3_1(v12, v19) │
00:05:42 #22210 [Verbose] > │ UH6_0(v23, v4) │
00:05:42 #22211 [Verbose] > │ | UH4_1 -> (* Nil *) │
00:05:42 #22212 [Verbose] > │ v1 │
00:05:42 #22213 [Verbose] > │ and method14 (v0 : UH6, v1 : UH8) : UH8 = │
00:05:42 #22214 [Verbose] > │ match v0 with │
00:05:42 #22215 [Verbose] > │ | UH6_0(v2, v3) -> (* Cons *) │
00:05:42 #22216 [Verbose] > │ let v4 : UH8 = method14(v3, v1) │
00:05:42 #22217 [Verbose] > │ match v2 with │
00:05:42 #22218 [Verbose] > │ | US3_0 -> (* None *) │
00:05:42 #22219 [Verbose] > │ v4 │
00:05:42 #22220 [Verbose] > │ | US3_1(v5, v6) -> (* Some *) │
00:05:42 #22221 [Verbose] > │ UH8_0(v5, v6, v4) │
00:05:42 #22222 [Verbose] > │ | UH6_1 -> (* Nil *) │
00:05:42 #22223 [Verbose] > │ v1 │
00:05:42 #22224 [Verbose] > │ and method15 (v0 : UH8, v1 : UH9, v2 : UH9) : struct (UH9 * UH9) = │
00:05:42 #22225 [Verbose] > │ match v0 with │
00:05:42 #22226 [Verbose] > │ | UH8_0(v3, v4, v5) -> (* Cons *) │
00:05:42 #22227 [Verbose] > │ let v6 : UH9 = UH9_0(v3, v1) │
00:05:42 #22228 [Verbose] > │ let v7 : UH9 = UH9_0(v4, v2) │
00:05:42 #22229 [Verbose] > │ method15(v5, v6, v7) │
00:05:42 #22230 [Verbose] > │ | UH8_1 -> (* Nil *) │
00:05:42 #22231 [Verbose] > │ struct (v1, v2) │
00:05:42 #22232 [Verbose] > │ and method16 (v0 : UH9, v1 : UH9) : UH9 = │
00:05:42 #22233 [Verbose] > │ match v0 with │
00:05:42 #22234 [Verbose] > │ | UH9_0(v2, v3) -> (* Cons *) │
00:05:42 #22235 [Verbose] > │ let v4 : UH9 = UH9_0(v2, v1) │
00:05:42 #22236 [Verbose] > │ method16(v3, v4) │
00:05:42 #22237 [Verbose] > │ | UH9_1 -> (* Nil *) │
00:05:42 #22238 [Verbose] > │ v1 │
00:05:42 #22239 [Verbose] > │ and closure20 (v0 : (unit -> UH1), v1 : (unit -> UH1)) () : UH1 = │
00:05:42 #22240 [Verbose] > │ let v2 : UH1 = v1 () │
00:05:42 #22241 [Verbose] > │ let v3 : UH1 = v0 () │
00:05:42 #22242 [Verbose] > │ match v2 with │
00:05:42 #22243 [Verbose] > │ | UH1_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons *) │
00:05:42 #22244 [Verbose] > │ match v3 with │
00:05:42 #22245 [Verbose] > │ | UH1_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (* │
00:05:42 #22246 [Verbose] > │ StreamCons *) │
00:05:42 #22247 [Verbose] > │ let v24 : float = v4 + v14 │
00:05:42 #22248 [Verbose] > │ let v25 : float = v5 + v15 │
00:05:42 #22249 [Verbose] > │ let v26 : float = v9 + v19 │
00:05:42 #22250 [Verbose] > │ let v27 : float = v6 + v16 │
00:05:42 #22251 [Verbose] > │ let v28 : float = v7 + v17 │
00:05:42 #22252 [Verbose] > │ let v29 : float = v8 + v18 │
00:05:42 #22253 [Verbose] > │ let v30 : float = v10 + v20 │
00:05:42 #22254 [Verbose] > │ let v31 : float = v11 + v21 │
00:05:42 #22255 [Verbose] > │ let v32 : float = v12 + v22 │
00:05:42 #22256 [Verbose] > │ let v33 : (unit -> UH1) = closure20(v23, v13) │
00:05:42 #22257 [Verbose] > │ UH1_0(v24, v25, v27, v28, v29, v26, v30, v31, v32, v33) │
00:05:42 #22258 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:05:42 #22259 [Verbose] > │ UH1_1 │
00:05:42 #22260 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:05:42 #22261 [Verbose] > │ UH1_1 │
00:05:42 #22262 [Verbose] > │ and closure19 (v0 : float, v1 : (UH0 -> UH1)) (v2 : UH0) : UH0 = │
00:05:42 #22263 [Verbose] > │ let v3 : UH1 = v1 v2 │
00:05:42 #22264 [Verbose] > │ let v4 : float = v0 / 2.0 │
00:05:42 #22265 [Verbose] > │ let v46 : UH0 = │
00:05:42 #22266 [Verbose] > │ match v3 with │
00:05:42 #22267 [Verbose] > │ | UH1_0(v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) -> (* │
00:05:42 #22268 [Verbose] > │ StreamCons *) │
00:05:42 #22269 [Verbose] > │ match v2 with │
00:05:42 #22270 [Verbose] > │ | UH0_0(v15, v16, v17, v18, v19, v20, v21, v22, v23, v24) -> (* │
00:05:42 #22271 [Verbose] > │ StreamCons *) │
00:05:42 #22272 [Verbose] > │ let v25 : float = v10 * v4 │
00:05:42 #22273 [Verbose] > │ let v26 : float = v20 + v25 │
00:05:42 #22274 [Verbose] > │ let v27 : float = v4 * v7 │
00:05:42 #22275 [Verbose] > │ let v28 : float = v4 * v8 │
00:05:42 #22276 [Verbose] > │ let v29 : float = v4 * v9 │
00:05:42 #22277 [Verbose] > │ let v30 : float = v17 + v27 │
00:05:42 #22278 [Verbose] > │ let v31 : float = v18 + v28 │
00:05:42 #22279 [Verbose] > │ let v32 : float = v19 + v29 │
00:05:42 #22280 [Verbose] > │ let v33 : float = v4 * v11 │
00:05:42 #22281 [Verbose] > │ let v34 : float = v4 * v12 │
00:05:42 #22282 [Verbose] > │ let v35 : float = v4 * v13 │
00:05:42 #22283 [Verbose] > │ let v36 : float = v21 + v33 │
00:05:42 #22284 [Verbose] > │ let v37 : float = v22 + v34 │
00:05:42 #22285 [Verbose] > │ let v38 : float = v23 + v35 │
00:05:42 #22286 [Verbose] > │ let v39 : (unit -> UH0) = closure3(v4, v24, v14) │
00:05:42 #22287 [Verbose] > │ UH0_0(v15, v16, v30, v31, v32, v26, v36, v37, v38, v39) │
00:05:42 #22288 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:42 #22289 [Verbose] > │ UH0_1 │
00:05:42 #22290 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:05:42 #22291 [Verbose] > │ UH0_1 │
00:05:42 #22292 [Verbose] > │ let v47 : (unit -> UH0) = closure4(v46) │
00:05:42 #22293 [Verbose] > │ let v48 : (unit -> UH0) = method1(v46, v47) │
00:05:42 #22294 [Verbose] > │ let v49 : UH0 = v48 () │
00:05:42 #22295 [Verbose] > │ let v50 : UH1 = v1 v49 │
00:05:42 #22296 [Verbose] > │ let v92 : UH0 = │
00:05:42 #22297 [Verbose] > │ match v50 with │
00:05:42 #22298 [Verbose] > │ | UH1_0(v51, v52, v53, v54, v55, v56, v57, v58, v59, v60) -> (* │
00:05:42 #22299 [Verbose] > │ StreamCons *) │
00:05:42 #22300 [Verbose] > │ match v2 with │
00:05:42 #22301 [Verbose] > │ | UH0_0(v61, v62, v63, v64, v65, v66, v67, v68, v69, v70) -> (* │
00:05:42 #22302 [Verbose] > │ StreamCons *) │
00:05:42 #22303 [Verbose] > │ let v71 : float = v56 * v4 │
00:05:42 #22304 [Verbose] > │ let v72 : float = v66 + v71 │
00:05:42 #22305 [Verbose] > │ let v73 : float = v4 * v53 │
00:05:42 #22306 [Verbose] > │ let v74 : float = v4 * v54 │
00:05:42 #22307 [Verbose] > │ let v75 : float = v4 * v55 │
00:05:42 #22308 [Verbose] > │ let v76 : float = v63 + v73 │
00:05:42 #22309 [Verbose] > │ let v77 : float = v64 + v74 │
00:05:42 #22310 [Verbose] > │ let v78 : float = v65 + v75 │
00:05:42 #22311 [Verbose] > │ let v79 : float = v4 * v57 │
00:05:42 #22312 [Verbose] > │ let v80 : float = v4 * v58 │
00:05:42 #22313 [Verbose] > │ let v81 : float = v4 * v59 │
00:05:42 #22314 [Verbose] > │ let v82 : float = v67 + v79 │
00:05:42 #22315 [Verbose] > │ let v83 : float = v68 + v80 │
00:05:42 #22316 [Verbose] > │ let v84 : float = v69 + v81 │
00:05:42 #22317 [Verbose] > │ let v85 : (unit -> UH0) = closure3(v4, v70, v60) │
00:05:42 #22318 [Verbose] > │ UH0_0(v61, v62, v76, v77, v78, v72, v82, v83, v84, v85) │
00:05:42 #22319 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:42 #22320 [Verbose] > │ UH0_1 │
00:05:42 #22321 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:05:42 #22322 [Verbose] > │ UH0_1 │
00:05:42 #22323 [Verbose] > │ let v93 : (unit -> UH0) = closure4(v92) │
00:05:42 #22324 [Verbose] > │ let v94 : (unit -> UH0) = method1(v92, v93) │
00:05:42 #22325 [Verbose] > │ let v95 : UH0 = v94 () │
00:05:42 #22326 [Verbose] > │ let v96 : UH1 = v1 v95 │
00:05:42 #22327 [Verbose] > │ let v138 : UH0 = │
00:05:42 #22328 [Verbose] > │ match v96 with │
00:05:42 #22329 [Verbose] > │ | UH1_0(v97, v98, v99, v100, v101, v102, v103, v104, v105, v106) -> │
00:05:42 #22330 [Verbose] > │ (* StreamCons *) │
00:05:42 #22331 [Verbose] > │ match v2 with │
00:05:42 #22332 [Verbose] > │ | UH0_0(v107, v108, v109, v110, v111, v112, v113, v114, v115, │
00:05:42 #22333 [Verbose] > │ v116) -> (* StreamCons *) │
00:05:42 #22334 [Verbose] > │ let v117 : float = v102 * v0 │
00:05:42 #22335 [Verbose] > │ let v118 : float = v112 + v117 │
00:05:42 #22336 [Verbose] > │ let v119 : float = v0 * v99 │
00:05:42 #22337 [Verbose] > │ let v120 : float = v0 * v100 │
00:05:42 #22338 [Verbose] > │ let v121 : float = v0 * v101 │
00:05:42 #22339 [Verbose] > │ let v122 : float = v109 + v119 │
00:05:42 #22340 [Verbose] > │ let v123 : float = v110 + v120 │
00:05:42 #22341 [Verbose] > │ let v124 : float = v111 + v121 │
00:05:42 #22342 [Verbose] > │ let v125 : float = v0 * v103 │
00:05:42 #22343 [Verbose] > │ let v126 : float = v0 * v104 │
00:05:42 #22344 [Verbose] > │ let v127 : float = v0 * v105 │
00:05:42 #22345 [Verbose] > │ let v128 : float = v113 + v125 │
00:05:42 #22346 [Verbose] > │ let v129 : float = v114 + v126 │
00:05:42 #22347 [Verbose] > │ let v130 : float = v115 + v127 │
00:05:42 #22348 [Verbose] > │ let v131 : (unit -> UH0) = closure3(v0, v116, v106) │
00:05:42 #22349 [Verbose] > │ UH0_0(v107, v108, v122, v123, v124, v118, v128, v129, v130, │
00:05:42 #22350 [Verbose] > │ v131) │
00:05:42 #22351 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:42 #22352 [Verbose] > │ UH0_1 │
00:05:42 #22353 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:05:42 #22354 [Verbose] > │ UH0_1 │
00:05:42 #22355 [Verbose] > │ let v139 : (unit -> UH0) = closure4(v138) │
00:05:42 #22356 [Verbose] > │ let v140 : (unit -> UH0) = method1(v138, v139) │
00:05:42 #22357 [Verbose] > │ let v141 : UH0 = v140 () │
00:05:42 #22358 [Verbose] > │ let v142 : UH1 = v1 v141 │
00:05:42 #22359 [Verbose] > │ let v143 : float = v0 / 6.0 │
00:05:42 #22360 [Verbose] > │ let v180 : UH1 = │
00:05:42 #22361 [Verbose] > │ match v3 with │
00:05:42 #22362 [Verbose] > │ | UH1_0(v144, v145, v146, v147, v148, v149, v150, v151, v152, v153) │
00:05:42 #22363 [Verbose] > │ -> (* StreamCons *) │
00:05:42 #22364 [Verbose] > │ match v50 with │
00:05:42 #22365 [Verbose] > │ | UH1_0(v154, v155, v156, v157, v158, v159, v160, v161, v162, │
00:05:42 #22366 [Verbose] > │ v163) -> (* StreamCons *) │
00:05:42 #22367 [Verbose] > │ let v164 : float = v144 + v154 │
00:05:42 #22368 [Verbose] > │ let v165 : float = v145 + v155 │
00:05:42 #22369 [Verbose] > │ let v166 : float = v149 + v159 │
00:05:42 #22370 [Verbose] > │ let v167 : float = v146 + v156 │
00:05:42 #22371 [Verbose] > │ let v168 : float = v147 + v157 │
00:05:42 #22372 [Verbose] > │ let v169 : float = v148 + v158 │
00:05:42 #22373 [Verbose] > │ let v170 : float = v150 + v160 │
00:05:42 #22374 [Verbose] > │ let v171 : float = v151 + v161 │
00:05:42 #22375 [Verbose] > │ let v172 : float = v152 + v162 │
00:05:42 #22376 [Verbose] > │ let v173 : (unit -> UH1) = closure20(v163, v153) │
00:05:42 #22377 [Verbose] > │ UH1_0(v164, v165, v167, v168, v169, v166, v170, v171, v172, │
00:05:42 #22378 [Verbose] > │ v173) │
00:05:42 #22379 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:05:42 #22380 [Verbose] > │ UH1_1 │
00:05:42 #22381 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:05:42 #22382 [Verbose] > │ UH1_1 │
00:05:42 #22383 [Verbose] > │ let v217 : UH1 = │
00:05:42 #22384 [Verbose] > │ match v180 with │
00:05:42 #22385 [Verbose] > │ | UH1_0(v181, v182, v183, v184, v185, v186, v187, v188, v189, v190) │
00:05:42 #22386 [Verbose] > │ -> (* StreamCons *) │
00:05:42 #22387 [Verbose] > │ match v50 with │
00:05:42 #22388 [Verbose] > │ | UH1_0(v191, v192, v193, v194, v195, v196, v197, v198, v199, │
00:05:42 #22389 [Verbose] > │ v200) -> (* StreamCons *) │
00:05:42 #22390 [Verbose] > │ let v201 : float = v181 + v191 │
00:05:42 #22391 [Verbose] > │ let v202 : float = v182 + v192 │
00:05:42 #22392 [Verbose] > │ let v203 : float = v186 + v196 │
00:05:42 #22393 [Verbose] > │ let v204 : float = v183 + v193 │
00:05:42 #22394 [Verbose] > │ let v205 : float = v184 + v194 │
00:05:42 #22395 [Verbose] > │ let v206 : float = v185 + v195 │
00:05:42 #22396 [Verbose] > │ let v207 : float = v187 + v197 │
00:05:42 #22397 [Verbose] > │ let v208 : float = v188 + v198 │
00:05:42 #22398 [Verbose] > │ let v209 : float = v189 + v199 │
00:05:42 #22399 [Verbose] > │ let v210 : (unit -> UH1) = closure20(v200, v190) │
00:05:42 #22400 [Verbose] > │ UH1_0(v201, v202, v204, v205, v206, v203, v207, v208, v209, │
00:05:42 #22401 [Verbose] > │ v210) │
00:05:42 #22402 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:05:42 #22403 [Verbose] > │ UH1_1 │
00:05:42 #22404 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:05:42 #22405 [Verbose] > │ UH1_1 │
00:05:42 #22406 [Verbose] > │ let v254 : UH1 = │
00:05:42 #22407 [Verbose] > │ match v217 with │
00:05:42 #22408 [Verbose] > │ | UH1_0(v218, v219, v220, v221, v222, v223, v224, v225, v226, v227) │
00:05:42 #22409 [Verbose] > │ -> (* StreamCons *) │
00:05:42 #22410 [Verbose] > │ match v96 with │
00:05:42 #22411 [Verbose] > │ | UH1_0(v228, v229, v230, v231, v232, v233, v234, v235, v236, │
00:05:42 #22412 [Verbose] > │ v237) -> (* StreamCons *) │
00:05:42 #22413 [Verbose] > │ let v238 : float = v218 + v228 │
00:05:42 #22414 [Verbose] > │ let v239 : float = v219 + v229 │
00:05:42 #22415 [Verbose] > │ let v240 : float = v223 + v233 │
00:05:42 #22416 [Verbose] > │ let v241 : float = v220 + v230 │
00:05:42 #22417 [Verbose] > │ let v242 : float = v221 + v231 │
00:05:42 #22418 [Verbose] > │ let v243 : float = v222 + v232 │
00:05:42 #22419 [Verbose] > │ let v244 : float = v224 + v234 │
00:05:42 #22420 [Verbose] > │ let v245 : float = v225 + v235 │
00:05:42 #22421 [Verbose] > │ let v246 : float = v226 + v236 │
00:05:42 #22422 [Verbose] > │ let v247 : (unit -> UH1) = closure20(v237, v227) │
00:05:42 #22423 [Verbose] > │ UH1_0(v238, v239, v241, v242, v243, v240, v244, v245, v246, │
00:05:42 #22424 [Verbose] > │ v247) │
00:05:42 #22425 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:05:42 #22426 [Verbose] > │ UH1_1 │
00:05:42 #22427 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:05:42 #22428 [Verbose] > │ UH1_1 │
00:05:42 #22429 [Verbose] > │ let v291 : UH1 = │
00:05:42 #22430 [Verbose] > │ match v254 with │
00:05:42 #22431 [Verbose] > │ | UH1_0(v255, v256, v257, v258, v259, v260, v261, v262, v263, v264) │
00:05:42 #22432 [Verbose] > │ -> (* StreamCons *) │
00:05:42 #22433 [Verbose] > │ match v96 with │
00:05:42 #22434 [Verbose] > │ | UH1_0(v265, v266, v267, v268, v269, v270, v271, v272, v273, │
00:05:42 #22435 [Verbose] > │ v274) -> (* StreamCons *) │
00:05:42 #22436 [Verbose] > │ let v275 : float = v255 + v265 │
00:05:42 #22437 [Verbose] > │ let v276 : float = v256 + v266 │
00:05:42 #22438 [Verbose] > │ let v277 : float = v260 + v270 │
00:05:42 #22439 [Verbose] > │ let v278 : float = v257 + v267 │
00:05:42 #22440 [Verbose] > │ let v279 : float = v258 + v268 │
00:05:42 #22441 [Verbose] > │ let v280 : float = v259 + v269 │
00:05:42 #22442 [Verbose] > │ let v281 : float = v261 + v271 │
00:05:42 #22443 [Verbose] > │ let v282 : float = v262 + v272 │
00:05:42 #22444 [Verbose] > │ let v283 : float = v263 + v273 │
00:05:42 #22445 [Verbose] > │ let v284 : (unit -> UH1) = closure20(v274, v264) │
00:05:42 #22446 [Verbose] > │ UH1_0(v275, v276, v278, v279, v280, v277, v281, v282, v283, │
00:05:42 #22447 [Verbose] > │ v284) │
00:05:42 #22448 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:05:42 #22449 [Verbose] > │ UH1_1 │
00:05:42 #22450 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:05:42 #22451 [Verbose] > │ UH1_1 │
00:05:42 #22452 [Verbose] > │ let v328 : UH1 = │
00:05:42 #22453 [Verbose] > │ match v291 with │
00:05:42 #22454 [Verbose] > │ | UH1_0(v292, v293, v294, v295, v296, v297, v298, v299, v300, v301) │
00:05:42 #22455 [Verbose] > │ -> (* StreamCons *) │
00:05:42 #22456 [Verbose] > │ match v142 with │
00:05:42 #22457 [Verbose] > │ | UH1_0(v302, v303, v304, v305, v306, v307, v308, v309, v310, │
00:05:42 #22458 [Verbose] > │ v311) -> (* StreamCons *) │
00:05:42 #22459 [Verbose] > │ let v312 : float = v292 + v302 │
00:05:42 #22460 [Verbose] > │ let v313 : float = v293 + v303 │
00:05:42 #22461 [Verbose] > │ let v314 : float = v297 + v307 │
00:05:42 #22462 [Verbose] > │ let v315 : float = v294 + v304 │
00:05:42 #22463 [Verbose] > │ let v316 : float = v295 + v305 │
00:05:42 #22464 [Verbose] > │ let v317 : float = v296 + v306 │
00:05:42 #22465 [Verbose] > │ let v318 : float = v298 + v308 │
00:05:42 #22466 [Verbose] > │ let v319 : float = v299 + v309 │
00:05:42 #22467 [Verbose] > │ let v320 : float = v300 + v310 │
00:05:42 #22468 [Verbose] > │ let v321 : (unit -> UH1) = closure20(v311, v301) │
00:05:42 #22469 [Verbose] > │ UH1_0(v312, v313, v315, v316, v317, v314, v318, v319, v320, │
00:05:42 #22470 [Verbose] > │ v321) │
00:05:42 #22471 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:05:42 #22472 [Verbose] > │ UH1_1 │
00:05:42 #22473 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:05:42 #22474 [Verbose] > │ UH1_1 │
00:05:42 #22475 [Verbose] > │ let v370 : UH0 = │
00:05:42 #22476 [Verbose] > │ match v328 with │
00:05:42 #22477 [Verbose] > │ | UH1_0(v329, v330, v331, v332, v333, v334, v335, v336, v337, v338) │
00:05:42 #22478 [Verbose] > │ -> (* StreamCons *) │
00:05:42 #22479 [Verbose] > │ match v2 with │
00:05:42 #22480 [Verbose] > │ | UH0_0(v339, v340, v341, v342, v343, v344, v345, v346, v347, │
00:05:42 #22481 [Verbose] > │ v348) -> (* StreamCons *) │
00:05:42 #22482 [Verbose] > │ let v349 : float = v334 * v143 │
00:05:42 #22483 [Verbose] > │ let v350 : float = v344 + v349 │
00:05:42 #22484 [Verbose] > │ let v351 : float = v143 * v331 │
00:05:42 #22485 [Verbose] > │ let v352 : float = v143 * v332 │
00:05:42 #22486 [Verbose] > │ let v353 : float = v143 * v333 │
00:05:42 #22487 [Verbose] > │ let v354 : float = v341 + v351 │
00:05:42 #22488 [Verbose] > │ let v355 : float = v342 + v352 │
00:05:42 #22489 [Verbose] > │ let v356 : float = v343 + v353 │
00:05:42 #22490 [Verbose] > │ let v357 : float = v143 * v335 │
00:05:42 #22491 [Verbose] > │ let v358 : float = v143 * v336 │
00:05:42 #22492 [Verbose] > │ let v359 : float = v143 * v337 │
00:05:42 #22493 [Verbose] > │ let v360 : float = v345 + v357 │
00:05:42 #22494 [Verbose] > │ let v361 : float = v346 + v358 │
00:05:42 #22495 [Verbose] > │ let v362 : float = v347 + v359 │
00:05:42 #22496 [Verbose] > │ let v363 : (unit -> UH0) = closure3(v143, v348, v338) │
00:05:42 #22497 [Verbose] > │ UH0_0(v339, v340, v354, v355, v356, v350, v360, v361, v362, │
00:05:42 #22498 [Verbose] > │ v363) │
00:05:42 #22499 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:42 #22500 [Verbose] > │ UH0_1 │
00:05:42 #22501 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:05:42 #22502 [Verbose] > │ UH0_1 │
00:05:42 #22503 [Verbose] > │ let v371 : (unit -> UH0) = closure4(v370) │
00:05:42 #22504 [Verbose] > │ let v372 : (unit -> UH0) = method1(v370, v371) │
00:05:42 #22505 [Verbose] > │ let v373 : UH0 = v372 () │
00:05:42 #22506 [Verbose] > │ v373 │
00:05:42 #22507 [Verbose] > │ and closure18 (v0 : float) (v1 : (UH0 -> UH1)) : (UH0 -> UH0) = │
00:05:42 #22508 [Verbose] > │ closure19(v0, v1) │
00:05:42 #22509 [Verbose] > │ and closure17 () (v0 : float) : ((UH0 -> UH1) -> (UH0 -> UH0)) = │
00:05:42 #22510 [Verbose] > │ closure18(v0) │
00:05:42 #22511 [Verbose] > │ and method17 (v0 : UH4, v1 : UH6) : UH6 = │
00:05:42 #22512 [Verbose] > │ match v0 with │
00:05:42 #22513 [Verbose] > │ | UH4_0(v2, v3) -> (* Cons *) │
00:05:42 #22514 [Verbose] > │ let v4 : UH6 = method17(v3, v1) │
00:05:42 #22515 [Verbose] > │ let v5 : int32 = 0 │
00:05:42 #22516 [Verbose] > │ let v6 : US2 = method6(v5, v2) │
00:05:42 #22517 [Verbose] > │ let v23 : US3 = │
00:05:42 #22518 [Verbose] > │ match v6 with │
00:05:42 #22519 [Verbose] > │ | US2_0 -> (* None *) │
00:05:42 #22520 [Verbose] > │ US3_0 │
00:05:42 #22521 [Verbose] > │ | US2_1(v7, v8, v9, v10, v11, v12, v13, v14, v15) -> (* Some *) │
00:05:42 #22522 [Verbose] > │ let v16 : UH7 = UH7_1 │
00:05:42 #22523 [Verbose] > │ let v17 : UH7 = method12(v2, v16) │
00:05:42 #22524 [Verbose] > │ let v18 : float = 0.0 │
00:05:42 #22525 [Verbose] > │ let v19 : float = method13(v17, v18) │
00:05:42 #22526 [Verbose] > │ US3_1(v12, v19) │
00:05:42 #22527 [Verbose] > │ UH6_0(v23, v4) │
00:05:42 #22528 [Verbose] > │ | UH4_1 -> (* Nil *) │
00:05:42 #22529 [Verbose] > │ v1 │
00:05:42 #22530 [Verbose] > │ and method19 (v0 : UH9, v1 : int32) : int32 = │
00:05:42 #22531 [Verbose] > │ match v0 with │
00:05:42 #22532 [Verbose] > │ | UH9_0(v2, v3) -> (* Cons *) │
00:05:42 #22533 [Verbose] > │ let v4 : int32 = v1 + 1 │
00:05:42 #22534 [Verbose] > │ method19(v3, v4) │
00:05:42 #22535 [Verbose] > │ | UH9_1 -> (* Nil *) │
00:05:42 #22536 [Verbose] > │ v1 │
00:05:42 #22537 [Verbose] > │ and method20 (v0 : (float []), v1 : UH9, v2 : int32) : int32 = │
00:05:42 #22538 [Verbose] > │ match v1 with │
00:05:42 #22539 [Verbose] > │ | UH9_0(v3, v4) -> (* Cons *) │
00:05:42 #22540 [Verbose] > │ v0.[int v2] <- v3 │
00:05:42 #22541 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:05:42 #22542 [Verbose] > │ method20(v0, v4, v5) │
00:05:42 #22543 [Verbose] > │ | UH9_1 -> (* Nil *) │
00:05:42 #22544 [Verbose] > │ v2 │
00:05:42 #22545 [Verbose] > │ and method18 (v0 : UH9) : (float []) = │
00:05:42 #22546 [Verbose] > │ let v1 : int32 = 0 │
00:05:42 #22547 [Verbose] > │ let v2 : int32 = method19(v0, v1) │
00:05:42 #22548 [Verbose] > │ let v3 : (float []) = Array.zeroCreate<float> (v2) │
00:05:42 #22549 [Verbose] > │ let v4 : int32 = 0 │
00:05:42 #22550 [Verbose] > │ let v5 : int32 = method20(v3, v0, v4) │
00:05:42 #22551 [Verbose] > │ v3 │
00:05:42 #22552 [Verbose] > │ and method21 (v0 : (struct (string * (float []) * (float [])) [])) : (struct │
00:05:42 #22553 [Verbose] > │ (string * (float []) * (float [])) []) = │
00:05:42 #22554 [Verbose] > │ v0 │
00:05:42 #22555 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:05:42 #22556 [Verbose] > │ []) * (float [])) [])) = │
00:05:42 #22557 [Verbose] > │ let v0 : (float -> ((UH0 -> UH1) -> (UH0 -> UH0))) = closure0() │
00:05:42 #22558 [Verbose] > │ let v1 : ((UH0 -> UH1) -> (UH0 -> UH0)) = v0 0.03 │
00:05:42 #22559 [Verbose] > │ let v2 : (UH0 -> UH1) = closure8() │
00:05:42 #22560 [Verbose] > │ let v3 : (UH0 -> UH0) = v1 v2 │
00:05:42 #22561 [Verbose] > │ let v4 : UH4 = UH4_1 │
00:05:42 #22562 [Verbose] > │ let v5 : int32 = 0 │
00:05:42 #22563 [Verbose] > │ let v6 : UH4 = method7(v3, v4, v5) │
00:05:42 #22564 [Verbose] > │ let v7 : UH6 = UH6_1 │
00:05:42 #22565 [Verbose] > │ let v8 : UH6 = method11(v6, v7) │
00:05:42 #22566 [Verbose] > │ let v9 : UH8 = UH8_1 │
00:05:42 #22567 [Verbose] > │ let v10 : UH8 = method14(v8, v9) │
00:05:42 #22568 [Verbose] > │ let v11 : UH9 = UH9_1 │
00:05:42 #22569 [Verbose] > │ let v12 : UH9 = UH9_1 │
00:05:42 #22570 [Verbose] > │ let struct (v13 : UH9, v14 : UH9) = method15(v10, v11, v12) │
00:05:42 #22571 [Verbose] > │ let v15 : UH9 = UH9_1 │
00:05:42 #22572 [Verbose] > │ let v16 : UH9 = method16(v13, v15) │
00:05:42 #22573 [Verbose] > │ let v17 : UH9 = UH9_1 │
00:05:42 #22574 [Verbose] > │ let v18 : UH9 = method16(v14, v17) │
00:05:42 #22575 [Verbose] > │ let v19 : (float -> ((UH0 -> UH1) -> (UH0 -> UH0))) = closure17() │
00:05:42 #22576 [Verbose] > │ let v20 : ((UH0 -> UH1) -> (UH0 -> UH0)) = v19 0.03 │
00:05:42 #22577 [Verbose] > │ let v21 : (UH0 -> UH0) = v20 v2 │
00:05:42 #22578 [Verbose] > │ let v22 : UH4 = UH4_1 │
00:05:42 #22579 [Verbose] > │ let v23 : int32 = 0 │
00:05:42 #22580 [Verbose] > │ let v24 : UH4 = method7(v21, v22, v23) │
00:05:42 #22581 [Verbose] > │ let v25 : UH6 = UH6_1 │
00:05:42 #22582 [Verbose] > │ let v26 : UH6 = method17(v24, v25) │
00:05:42 #22583 [Verbose] > │ let v27 : UH8 = UH8_1 │
00:05:42 #22584 [Verbose] > │ let v28 : UH8 = method14(v26, v27) │
00:05:42 #22585 [Verbose] > │ let v29 : UH9 = UH9_1 │
00:05:42 #22586 [Verbose] > │ let v30 : UH9 = UH9_1 │
00:05:42 #22587 [Verbose] > │ let struct (v31 : UH9, v32 : UH9) = method15(v28, v29, v30) │
00:05:42 #22588 [Verbose] > │ let v33 : UH9 = UH9_1 │
00:05:42 #22589 [Verbose] > │ let v34 : UH9 = method16(v31, v33) │
00:05:42 #22590 [Verbose] > │ let v35 : UH9 = UH9_1 │
00:05:42 #22591 [Verbose] > │ let v36 : UH9 = method16(v32, v35) │
00:05:42 #22592 [Verbose] > │ let v37 : (float []) = method18(v16) │
00:05:42 #22593 [Verbose] > │ let v38 : (float []) = method18(v18) │
00:05:42 #22594 [Verbose] > │ let v39 : (float []) = method18(v34) │
00:05:42 #22595 [Verbose] > │ let v40 : (float []) = method18(v36) │
00:05:42 #22596 [Verbose] > │ let v41 : string = "euler-cromer" │
00:05:42 #22597 [Verbose] > │ let v42 : string = "runge-kutta 4" │
00:05:42 #22598 [Verbose] > │ let v43 : (struct (string * (float []) * (float [])) []) = [|struct │
00:05:42 #22599 [Verbose] > │ (v41, v37, v38); struct (v42, v39, v40)|] │
00:05:42 #22600 [Verbose] > │ let v44 : (struct (string * (float []) * (float [])) []) = method21(v43) │
00:05:42 #22601 [Verbose] > │ let v45 : string = "system kinetic energy versus time" │
00:05:42 #22602 [Verbose] > │ let v46 : string = "time (s)" │
00:05:42 #22603 [Verbose] > │ let v47 : string = "system kinetic energy (j)" │
00:05:42 #22604 [Verbose] > │ struct (v45, v46, v47, v44) │
00:05:42 #22605 [Verbose] > │ method0() │
00:05:42 #22606 [Verbose] > │ │
00:05:42 #22607 [Verbose] > │ │
00:05:42 #22608 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:42 #22609 [Verbose] >
00:05:42 #22610 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:42 #22611 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:42 #22612 [Verbose] > │ ### wave 2 │
00:05:42 #22613 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:42 #22614 [Verbose] >
00:05:42 #22615 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:42 #22616 [Verbose] > // // test
00:05:42 #22617 [Verbose] >
00:05:42 #22618 [Verbose] > inl linear_spring k re (particle_state st1) (particle_state st2) =
00:05:42 #22619 [Verbose] > inl r1 = st1.pos_vec
00:05:42 #22620 [Verbose] > inl r2 = st2.pos_vec
00:05:42 #22621 [Verbose] > inl r21 = r2 ^-^ r1
00:05:42 #22622 [Verbose] > inl r21mag = magnitude r21
00:05:42 #22623 [Verbose] > -k * (r21mag - re) *^ r21 ^/ r21mag
00:05:42 #22624 [Verbose] >
00:05:42 #22625 [Verbose] > inl fixed_linear_spring k re r1 =
00:05:42 #22626 [Verbose] > inl (particle_state default_particle_state') = default_particle_state ()
00:05:42 #22627 [Verbose] > linear_spring k re (particle_state { default_particle_state' with pos_vec =
00:05:42 #22628 [Verbose] > r1 })
00:05:42 #22629 [Verbose] >
00:05:42 #22630 [Verbose] > inl forces_string () =
00:05:42 #22631 [Verbose] > [[
00:05:42 #22632 [Verbose] > ExternalForce (0i32, fixed_linear_spring 5384 0 (zero_vec ()))
00:05:42 #22633 [Verbose] > ExternalForce (63, fixed_linear_spring 5384 0 (0.65 *^ i_hat ()))
00:05:42 #22634 [Verbose] > ]] /@ (
00:05:42 #22635 [Verbose] > listm'.init_series 0 59 1
00:05:42 #22636 [Verbose] > |> listm.map (fun n => InternalForce (n, n + 1, linear_spring 5384 0))
00:05:42 #22637 [Verbose] > )
00:05:42 #22638 [Verbose] >
00:05:42 #22639 [Verbose] > inl string_update dt =
00:05:42 #22640 [Verbose] > update_mps (join runge_kutta_4 dt) (join forces_string ())
00:05:42 #22641 [Verbose] >
00:05:42 #22642 [Verbose] > inl string_initial_overtone n =
00:05:42 #22643 [Verbose] > inl ball_mass = 0.0008293 * 0.65 / 64
00:05:42 #22644 [Verbose] > inl (particle_state default_particle_state') = default_particle_state ()
00:05:42 #22645 [Verbose] > listm'.init_series 0.01 0.64 0.01
00:05:42 #22646 [Verbose] > |> listm.map (fun x =>
00:05:42 #22647 [Verbose] > inl y = 0.005 * sin (conv n * pi * x / 0.65)
00:05:42 #22648 [Verbose] > particle_state {
00:05:42 #22649 [Verbose] > default_particle_state' with
00:05:42 #22650 [Verbose] > mass = ball_mass
00:05:42 #22651 [Verbose] > pos_vec = x *^ i_hat () ^+^ y *^ j_hat ()
00:05:42 #22652 [Verbose] > velocity = zero_vec ()
00:05:42 #22653 [Verbose] > }
00:05:42 #22654 [Verbose] > )
00:05:42 #22655 [Verbose] > |> stream.from_list
00:05:42 #22656 [Verbose] > |> multi_particle_state
00:05:42 #22657 [Verbose] >
00:05:42 #22658 [Verbose] > let main () =
00:05:42 #22659 [Verbose] > inl ~frames = listm'.init_series 0 65 1f64 |> stream.from_list
00:05:42 #22660 [Verbose] > inl ~initial_state = string_initial_overtone 3i32
00:05:42 #22661 [Verbose] > inl frames =
00:05:42 #22662 [Verbose] > frames
00:05:42 #22663 [Verbose] > |> stream.map (fun n =>
00:05:42 #22664 [Verbose] > inl (multi_particle_state sts) =
00:05:42 #22665 [Verbose] > stream.iterate (string_update 0.000025) initial_state |>
00:05:42 #22666 [Verbose] > stream.item n
00:05:42 #22667 [Verbose] > inl x, y =
00:05:42 #22668 [Verbose] > [[ zero_vec () ]]
00:05:42 #22669 [Verbose] > /@ (sts |> stream.map (fun (particle_state st) => st.pos_vec) |>
00:05:42 #22670 [Verbose] > stream.to_list)
00:05:42 #22671 [Verbose] > /@ [[ 0.65 *^ i_hat () ]]
00:05:42 #22672 [Verbose] > |> listm.map (fun r => r.x, r.y)
00:05:42 #22673 [Verbose] > |> stream.from_list
00:05:42 #22674 [Verbose] > |> stream.unzip
00:05:42 #22675 [Verbose] > inl x : a i32 _ = x |> stream.to_list |> listm.toArray
00:05:42 #22676 [Verbose] > inl y : a i32 _ = y |> stream.to_list |> listm.toArray
00:05:42 #22677 [Verbose] > x, y
00:05:42 #22678 [Verbose] > )
00:05:42 #22679 [Verbose] >
00:05:42 #22680 [Verbose] > inl plots =
00:05:42 #22681 [Verbose] > frames
00:05:42 #22682 [Verbose] > |> stream.indexed
00:05:42 #22683 [Verbose] > |> stream.map (fun ((n : i32), (x, y)) =>
00:05:42 #22684 [Verbose] > "wave",
00:05:42 #22685 [Verbose] > "position (m)",
00:05:42 #22686 [Verbose] > "displacement (m)",
00:05:42 #22687 [Verbose] > ;[[
00:05:42 #22688 [Verbose] > ($"$\"{!n}\"" : string), x, y
00:05:42 #22689 [Verbose] > ]]
00:05:42 #22690 [Verbose] > )
00:05:42 #22691 [Verbose] >
00:05:42 #22692 [Verbose] > plots |> stream.to_list |> listm.toArray : a i32 _
00:05:48 #22693 [Verbose] >
00:05:48 #22694 [Verbose] > ╭─[ 5.85s - return value ]─────────────────────────────────────────────────────╮
00:05:48 #22695 [Verbose] > │ <table><thead><tr><th><i>index</i></th><th>value</th></tr></thead><tbody><tr │
00:05:48 #22696 [Verbose] > │ ><td>0</td><td><svg width="640" height="480" viewBox="0 0 640 480" │
00:05:48 #22697 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:05:48 #22698 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:05:48 #22699 [Verbose] > │ stroke="none"/> │
00:05:48 #22700 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:05:48 #22701 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:05:48 #22702 [Verbose] > │ fill="#FFFFFF"> │
00:05:48 #22703 [Verbose] > │ wave │
00:05:48 #22704 [Verbose] > │ </text> │
00:05:48 #22705 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="62" y1="424" x2="62" │
00:05:48 #22706 [Verbose] > │ y2="75"/> │
00:05:48 #22707 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:05:48 #22708 [Verbose] > │ y2="75"/> │
00:05:48 #22709 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="77" y1="424" x2="77" │
00:05:48 #22710 [Verbose] > │ y2="75"/> │
00:05:48 #22711 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="85" y1="424" │
00:05:48 #22712 [Verbose] > │ x2="85... │
00:05:48 #22713 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:48 #22714 [Verbose] >
00:05:48 #22715 [Verbose] > ╭─[ 5.88s - stdout ]───────────────────────────────────────────────────────────╮
00:05:48 #22716 [Verbose] > │ type UH0 = │
00:05:48 #22717 [Verbose] > │ | UH0_0 of float * (unit -> UH0) │
00:05:48 #22718 [Verbose] > │ | UH0_1 │
00:05:48 #22719 [Verbose] > │ and UH1 = │
00:05:48 #22720 [Verbose] > │ | UH1_0 of float * float * float * float * float * float * float * float │
00:05:48 #22721 [Verbose] > │ * float * (unit -> UH1) │
00:05:48 #22722 [Verbose] > │ | UH1_1 │
00:05:48 #22723 [Verbose] > │ and UH2 = │
00:05:48 #22724 [Verbose] > │ | UH2_0 of (float []) * (float []) * (unit -> UH2) │
00:05:48 #22725 [Verbose] > │ | UH2_1 │
00:05:48 #22726 [Verbose] > │ and UH3 = │
00:05:48 #22727 [Verbose] > │ | UH3_0 of float * float * float * float * float * float * float * float │
00:05:48 #22728 [Verbose] > │ * float * (unit -> UH3) │
00:05:48 #22729 [Verbose] > │ | UH3_1 │
00:05:48 #22730 [Verbose] > │ and [<Struct>] US0 = │
00:05:48 #22731 [Verbose] > │ | US0_0 of f0_0 : UH1 │
00:05:48 #22732 [Verbose] > │ | US0_1 of f1_0 : (unit -> UH1) │
00:05:48 #22733 [Verbose] > │ and Mut0 = {mutable l0 : US0} │
00:05:48 #22734 [Verbose] > │ and [<Struct>] US1 = │
00:05:48 #22735 [Verbose] > │ | US1_0 of f0_0 : int32 * f0_1 : (struct (float * float * float * float │
00:05:48 #22736 [Verbose] > │ * float * float * float * float * float) -> struct (float * float * float)) │
00:05:48 #22737 [Verbose] > │ | US1_1 of f1_0 : int32 * f1_1 : int32 * f1_2 : (struct (float * float * │
00:05:48 #22738 [Verbose] > │ float * float * float * float * float * float * float) -> (struct (float * │
00:05:48 #22739 [Verbose] > │ float * float * float * float * float * float * float * float) -> struct │
00:05:48 #22740 [Verbose] > │ (float * float * float))) │
00:05:48 #22741 [Verbose] > │ and UH4 = │
00:05:48 #22742 [Verbose] > │ | UH4_0 of US1 * UH4 │
00:05:48 #22743 [Verbose] > │ | UH4_1 │
00:05:48 #22744 [Verbose] > │ and UH5 = │
00:05:48 #22745 [Verbose] > │ | UH5_0 of int32 * float * float * float * float * float * float * float │
00:05:48 #22746 [Verbose] > │ * float * float * (unit -> UH5) │
00:05:48 #22747 [Verbose] > │ | UH5_1 │
00:05:48 #22748 [Verbose] > │ and UH6 = │
00:05:48 #22749 [Verbose] > │ | UH6_0 of (struct (float * float * float * float * float * float * │
00:05:48 #22750 [Verbose] > │ float * float * float) -> struct (float * float * float)) * UH6 │
00:05:48 #22751 [Verbose] > │ | UH6_1 │
00:05:48 #22752 [Verbose] > │ and [<Struct>] US2 = │
00:05:48 #22753 [Verbose] > │ | US2_0 │
00:05:48 #22754 [Verbose] > │ | US2_1 of f1_0 : (struct (float * float * float * float * float * float │
00:05:48 #22755 [Verbose] > │ * float * float * float) -> struct (float * float * float)) │
00:05:48 #22756 [Verbose] > │ and [<Struct>] US3 = │
00:05:48 #22757 [Verbose] > │ | US3_0 │
00:05:48 #22758 [Verbose] > │ | US3_1 of f1_0 : float * f1_1 : float * f1_2 : float * f1_3 : float * │
00:05:48 #22759 [Verbose] > │ f1_4 : float * f1_5 : float * f1_6 : float * f1_7 : float * f1_8 : float │
00:05:48 #22760 [Verbose] > │ and UH7 = │
00:05:48 #22761 [Verbose] > │ | UH7_0 of float * float * float * UH7 │
00:05:48 #22762 [Verbose] > │ | UH7_1 │
00:05:48 #22763 [Verbose] > │ and UH8 = │
00:05:48 #22764 [Verbose] > │ | UH8_0 of UH1 * (unit -> UH8) │
00:05:48 #22765 [Verbose] > │ | UH8_1 │
00:05:48 #22766 [Verbose] > │ and [<Struct>] US4 = │
00:05:48 #22767 [Verbose] > │ | US4_0 │
00:05:48 #22768 [Verbose] > │ | US4_1 of f1_0 : UH1 │
00:05:48 #22769 [Verbose] > │ and UH9 = │
00:05:48 #22770 [Verbose] > │ | UH9_0 of float * float * float * (unit -> UH9) │
00:05:48 #22771 [Verbose] > │ | UH9_1 │
00:05:48 #22772 [Verbose] > │ and UH10 = │
00:05:48 #22773 [Verbose] > │ | UH10_0 of float * float * UH10 │
00:05:48 #22774 [Verbose] > │ | UH10_1 │
00:05:48 #22775 [Verbose] > │ and UH11 = │
00:05:48 #22776 [Verbose] > │ | UH11_0 of float * float * (unit -> UH11) │
00:05:48 #22777 [Verbose] > │ | UH11_1 │
00:05:48 #22778 [Verbose] > │ and UH12 = │
00:05:48 #22779 [Verbose] > │ | UH12_0 of float * UH12 │
00:05:48 #22780 [Verbose] > │ | UH12_1 │
00:05:48 #22781 [Verbose] > │ and UH13 = │
00:05:48 #22782 [Verbose] > │ | UH13_0 of int32 * (float []) * (float []) * (unit -> UH13) │
00:05:48 #22783 [Verbose] > │ | UH13_1 │
00:05:48 #22784 [Verbose] > │ and UH14 = │
00:05:48 #22785 [Verbose] > │ | UH14_0 of string * string * string * (struct (string * (float []) * │
00:05:48 #22786 [Verbose] > │ (float [])) []) * (unit -> UH14) │
00:05:48 #22787 [Verbose] > │ | UH14_1 │
00:05:48 #22788 [Verbose] > │ and UH15 = │
00:05:48 #22789 [Verbose] > │ | UH15_0 of string * string * string * (struct (string * (float []) * │
00:05:48 #22790 [Verbose] > │ (float [])) []) * UH15 │
00:05:48 #22791 [Verbose] > │ | UH15_1 │
00:05:48 #22792 [Verbose] > │ let rec closure65 () () : UH0 = │
00:05:48 #22793 [Verbose] > │ UH0_1 │
00:05:48 #22794 [Verbose] > │ and closure64 () () : UH0 = │
00:05:48 #22795 [Verbose] > │ let v0 : (unit -> UH0) = closure65() │
00:05:48 #22796 [Verbose] > │ UH0_0(65.0, v0) │
00:05:48 #22797 [Verbose] > │ and closure63 () () : UH0 = │
00:05:48 #22798 [Verbose] > │ let v0 : (unit -> UH0) = closure64() │
00:05:48 #22799 [Verbose] > │ UH0_0(64.0, v0) │
00:05:48 #22800 [Verbose] > │ and closure62 () () : UH0 = │
00:05:48 #22801 [Verbose] > │ let v0 : (unit -> UH0) = closure63() │
00:05:48 #22802 [Verbose] > │ UH0_0(63.0, v0) │
00:05:48 #22803 [Verbose] > │ and closure61 () () : UH0 = │
00:05:48 #22804 [Verbose] > │ let v0 : (unit -> UH0) = closure62() │
00:05:48 #22805 [Verbose] > │ UH0_0(62.0, v0) │
00:05:48 #22806 [Verbose] > │ and closure60 () () : UH0 = │
00:05:48 #22807 [Verbose] > │ let v0 : (unit -> UH0) = closure61() │
00:05:48 #22808 [Verbose] > │ UH0_0(61.0, v0) │
00:05:48 #22809 [Verbose] > │ and closure59 () () : UH0 = │
00:05:48 #22810 [Verbose] > │ let v0 : (unit -> UH0) = closure60() │
00:05:48 #22811 [Verbose] > │ UH0_0(60.0, v0) │
00:05:48 #22812 [Verbose] > │ and closure58 () () : UH0 = │
00:05:48 #22813 [Verbose] > │ let v0 : (unit -> UH0) = closure59() │
00:05:48 #22814 [Verbose] > │ UH0_0(59.0, v0) │
00:05:48 #22815 [Verbose] > │ and closure57 () () : UH0 = │
00:05:48 #22816 [Verbose] > │ let v0 : (unit -> UH0) = closure58() │
00:05:48 #22817 [Verbose] > │ UH0_0(58.0, v0) │
00:05:48 #22818 [Verbose] > │ and closure56 () () : UH0 = │
00:05:48 #22819 [Verbose] > │ let v0 : (unit -> UH0) = closure57() │
00:05:48 #22820 [Verbose] > │ UH0_0(57.0, v0) │
00:05:48 #22821 [Verbose] > │ and closure55 () () : UH0 = │
00:05:48 #22822 [Verbose] > │ let v0 : (unit -> UH0) = closure56() │
00:05:48 #22823 [Verbose] > │ UH0_0(56.0, v0) │
00:05:48 #22824 [Verbose] > │ and closure54 () () : UH0 = │
00:05:48 #22825 [Verbose] > │ let v0 : (unit -> UH0) = closure55() │
00:05:48 #22826 [Verbose] > │ UH0_0(55.0, v0) │
00:05:48 #22827 [Verbose] > │ and closure53 () () : UH0 = │
00:05:48 #22828 [Verbose] > │ let v0 : (unit -> UH0) = closure54() │
00:05:48 #22829 [Verbose] > │ UH0_0(54.0, v0) │
00:05:48 #22830 [Verbose] > │ and closure52 () () : UH0 = │
00:05:48 #22831 [Verbose] > │ let v0 : (unit -> UH0) = closure53() │
00:05:48 #22832 [Verbose] > │ UH0_0(53.0, v0) │
00:05:48 #22833 [Verbose] > │ and closure51 () () : UH0 = │
00:05:48 #22834 [Verbose] > │ let v0 : (unit -> UH0) = closure52() │
00:05:48 #22835 [Verbose] > │ UH0_0(52.0, v0) │
00:05:48 #22836 [Verbose] > │ and closure50 () () : UH0 = │
00:05:48 #22837 [Verbose] > │ let v0 : (unit -> UH0) = closure51() │
00:05:48 #22838 [Verbose] > │ UH0_0(51.0, v0) │
00:05:48 #22839 [Verbose] > │ and closure49 () () : UH0 = │
00:05:48 #22840 [Verbose] > │ let v0 : (unit -> UH0) = closure50() │
00:05:48 #22841 [Verbose] > │ UH0_0(50.0, v0) │
00:05:48 #22842 [Verbose] > │ and closure48 () () : UH0 = │
00:05:48 #22843 [Verbose] > │ let v0 : (unit -> UH0) = closure49() │
00:05:48 #22844 [Verbose] > │ UH0_0(49.0, v0) │
00:05:48 #22845 [Verbose] > │ and closure47 () () : UH0 = │
00:05:48 #22846 [Verbose] > │ let v0 : (unit -> UH0) = closure48() │
00:05:48 #22847 [Verbose] > │ UH0_0(48.0, v0) │
00:05:48 #22848 [Verbose] > │ and closure46 () () : UH0 = │
00:05:48 #22849 [Verbose] > │ let v0 : (unit -> UH0) = closure47() │
00:05:48 #22850 [Verbose] > │ UH0_0(47.0, v0) │
00:05:48 #22851 [Verbose] > │ and closure45 () () : UH0 = │
00:05:48 #22852 [Verbose] > │ let v0 : (unit -> UH0) = closure46() │
00:05:48 #22853 [Verbose] > │ UH0_0(46.0, v0) │
00:05:48 #22854 [Verbose] > │ and closure44 () () : UH0 = │
00:05:48 #22855 [Verbose] > │ let v0 : (unit -> UH0) = closure45() │
00:05:48 #22856 [Verbose] > │ UH0_0(45.0, v0) │
00:05:48 #22857 [Verbose] > │ and closure43 () () : UH0 = │
00:05:48 #22858 [Verbose] > │ let v0 : (unit -> UH0) = closure44() │
00:05:48 #22859 [Verbose] > │ UH0_0(44.0, v0) │
00:05:48 #22860 [Verbose] > │ and closure42 () () : UH0 = │
00:05:48 #22861 [Verbose] > │ let v0 : (unit -> UH0) = closure43() │
00:05:48 #22862 [Verbose] > │ UH0_0(43.0, v0) │
00:05:48 #22863 [Verbose] > │ and closure41 () () : UH0 = │
00:05:48 #22864 [Verbose] > │ let v0 : (unit -> UH0) = closure42() │
00:05:48 #22865 [Verbose] > │ UH0_0(42.0, v0) │
00:05:48 #22866 [Verbose] > │ and closure40 () () : UH0 = │
00:05:48 #22867 [Verbose] > │ let v0 : (unit -> UH0) = closure41() │
00:05:48 #22868 [Verbose] > │ UH0_0(41.0, v0) │
00:05:48 #22869 [Verbose] > │ and closure39 () () : UH0 = │
00:05:48 #22870 [Verbose] > │ let v0 : (unit -> UH0) = closure40() │
00:05:48 #22871 [Verbose] > │ UH0_0(40.0, v0) │
00:05:48 #22872 [Verbose] > │ and closure38 () () : UH0 = │
00:05:48 #22873 [Verbose] > │ let v0 : (unit -> UH0) = closure39() │
00:05:48 #22874 [Verbose] > │ UH0_0(39.0, v0) │
00:05:48 #22875 [Verbose] > │ and closure37 () () : UH0 = │
00:05:48 #22876 [Verbose] > │ let v0 : (unit -> UH0) = closure38() │
00:05:48 #22877 [Verbose] > │ UH0_0(38.0, v0) │
00:05:48 #22878 [Verbose] > │ and closure36 () () : UH0 = │
00:05:48 #22879 [Verbose] > │ let v0 : (unit -> UH0) = closure37() │
00:05:48 #22880 [Verbose] > │ UH0_0(37.0, v0) │
00:05:48 #22881 [Verbose] > │ and closure35 () () : UH0 = │
00:05:48 #22882 [Verbose] > │ let v0 : (unit -> UH0) = closure36() │
00:05:48 #22883 [Verbose] > │ UH0_0(36.0, v0) │
00:05:48 #22884 [Verbose] > │ and closure34 () () : UH0 = │
00:05:48 #22885 [Verbose] > │ let v0 : (unit -> UH0) = closure35() │
00:05:48 #22886 [Verbose] > │ UH0_0(35.0, v0) │
00:05:48 #22887 [Verbose] > │ and closure33 () () : UH0 = │
00:05:48 #22888 [Verbose] > │ let v0 : (unit -> UH0) = closure34() │
00:05:48 #22889 [Verbose] > │ UH0_0(34.0, v0) │
00:05:48 #22890 [Verbose] > │ and closure32 () () : UH0 = │
00:05:48 #22891 [Verbose] > │ let v0 : (unit -> UH0) = closure33() │
00:05:48 #22892 [Verbose] > │ UH0_0(33.0, v0) │
00:05:48 #22893 [Verbose] > │ and closure31 () () : UH0 = │
00:05:48 #22894 [Verbose] > │ let v0 : (unit -> UH0) = closure32() │
00:05:48 #22895 [Verbose] > │ UH0_0(32.0, v0) │
00:05:48 #22896 [Verbose] > │ and closure30 () () : UH0 = │
00:05:48 #22897 [Verbose] > │ let v0 : (unit -> UH0) = closure31() │
00:05:48 #22898 [Verbose] > │ UH0_0(31.0, v0) │
00:05:48 #22899 [Verbose] > │ and closure29 () () : UH0 = │
00:05:48 #22900 [Verbose] > │ let v0 : (unit -> UH0) = closure30() │
00:05:48 #22901 [Verbose] > │ UH0_0(30.0, v0) │
00:05:48 #22902 [Verbose] > │ and closure28 () () : UH0 = │
00:05:48 #22903 [Verbose] > │ let v0 : (unit -> UH0) = closure29() │
00:05:48 #22904 [Verbose] > │ UH0_0(29.0, v0) │
00:05:48 #22905 [Verbose] > │ and closure27 () () : UH0 = │
00:05:48 #22906 [Verbose] > │ let v0 : (unit -> UH0) = closure28() │
00:05:48 #22907 [Verbose] > │ UH0_0(28.0, v0) │
00:05:48 #22908 [Verbose] > │ and closure26 () () : UH0 = │
00:05:48 #22909 [Verbose] > │ let v0 : (unit -> UH0) = closure27() │
00:05:48 #22910 [Verbose] > │ UH0_0(27.0, v0) │
00:05:48 #22911 [Verbose] > │ and closure25 () () : UH0 = │
00:05:48 #22912 [Verbose] > │ let v0 : (unit -> UH0) = closure26() │
00:05:48 #22913 [Verbose] > │ UH0_0(26.0, v0) │
00:05:48 #22914 [Verbose] > │ and closure24 () () : UH0 = │
00:05:48 #22915 [Verbose] > │ let v0 : (unit -> UH0) = closure25() │
00:05:48 #22916 [Verbose] > │ UH0_0(25.0, v0) │
00:05:48 #22917 [Verbose] > │ and closure23 () () : UH0 = │
00:05:48 #22918 [Verbose] > │ let v0 : (unit -> UH0) = closure24() │
00:05:48 #22919 [Verbose] > │ UH0_0(24.0, v0) │
00:05:48 #22920 [Verbose] > │ and closure22 () () : UH0 = │
00:05:48 #22921 [Verbose] > │ let v0 : (unit -> UH0) = closure23() │
00:05:48 #22922 [Verbose] > │ UH0_0(23.0, v0) │
00:05:48 #22923 [Verbose] > │ and closure21 () () : UH0 = │
00:05:48 #22924 [Verbose] > │ let v0 : (unit -> UH0) = closure22() │
00:05:48 #22925 [Verbose] > │ UH0_0(22.0, v0) │
00:05:48 #22926 [Verbose] > │ and closure20 () () : UH0 = │
00:05:48 #22927 [Verbose] > │ let v0 : (unit -> UH0) = closure21() │
00:05:48 #22928 [Verbose] > │ UH0_0(21.0, v0) │
00:05:48 #22929 [Verbose] > │ and closure19 () () : UH0 = │
00:05:48 #22930 [Verbose] > │ let v0 : (unit -> UH0) = closure20() │
00:05:48 #22931 [Verbose] > │ UH0_0(20.0, v0) │
00:05:48 #22932 [Verbose] > │ and closure18 () () : UH0 = │
00:05:48 #22933 [Verbose] > │ let v0 : (unit -> UH0) = closure19() │
00:05:48 #22934 [Verbose] > │ UH0_0(19.0, v0) │
00:05:48 #22935 [Verbose] > │ and closure17 () () : UH0 = │
00:05:48 #22936 [Verbose] > │ let v0 : (unit -> UH0) = closure18() │
00:05:48 #22937 [Verbose] > │ UH0_0(18.0, v0) │
00:05:48 #22938 [Verbose] > │ and closure16 () () : UH0 = │
00:05:48 #22939 [Verbose] > │ let v0 : (unit -> UH0) = closure17() │
00:05:48 #22940 [Verbose] > │ UH0_0(17.0, v0) │
00:05:48 #22941 [Verbose] > │ and closure15 () () : UH0 = │
00:05:48 #22942 [Verbose] > │ let v0 : (unit -> UH0) = closure16() │
00:05:48 #22943 [Verbose] > │ UH0_0(16.0, v0) │
00:05:48 #22944 [Verbose] > │ and closure14 () () : UH0 = │
00:05:48 #22945 [Verbose] > │ let v0 : (unit -> UH0) = closure15() │
00:05:48 #22946 [Verbose] > │ UH0_0(15.0, v0) │
00:05:48 #22947 [Verbose] > │ and closure13 () () : UH0 = │
00:05:48 #22948 [Verbose] > │ let v0 : (unit -> UH0) = closure14() │
00:05:48 #22949 [Verbose] > │ UH0_0(14.0, v0) │
00:05:48 #22950 [Verbose] > │ and closure12 () () : UH0 = │
00:05:48 #22951 [Verbose] > │ let v0 : (unit -> UH0) = closure13() │
00:05:48 #22952 [Verbose] > │ UH0_0(13.0, v0) │
00:05:48 #22953 [Verbose] > │ and closure11 () () : UH0 = │
00:05:48 #22954 [Verbose] > │ let v0 : (unit -> UH0) = closure12() │
00:05:48 #22955 [Verbose] > │ UH0_0(12.0, v0) │
00:05:48 #22956 [Verbose] > │ and closure10 () () : UH0 = │
00:05:48 #22957 [Verbose] > │ let v0 : (unit -> UH0) = closure11() │
00:05:48 #22958 [Verbose] > │ UH0_0(11.0, v0) │
00:05:48 #22959 [Verbose] > │ and closure9 () () : UH0 = │
00:05:48 #22960 [Verbose] > │ let v0 : (unit -> UH0) = closure10() │
00:05:48 #22961 [Verbose] > │ UH0_0(10.0, v0) │
00:05:48 #22962 [Verbose] > │ and closure8 () () : UH0 = │
00:05:48 #22963 [Verbose] > │ let v0 : (unit -> UH0) = closure9() │
00:05:48 #22964 [Verbose] > │ UH0_0(9.0, v0) │
00:05:48 #22965 [Verbose] > │ and closure7 () () : UH0 = │
00:05:48 #22966 [Verbose] > │ let v0 : (unit -> UH0) = closure8() │
00:05:48 #22967 [Verbose] > │ UH0_0(8.0, v0) │
00:05:48 #22968 [Verbose] > │ and closure6 () () : UH0 = │
00:05:48 #22969 [Verbose] > │ let v0 : (unit -> UH0) = closure7() │
00:05:48 #22970 [Verbose] > │ UH0_0(7.0, v0) │
00:05:48 #22971 [Verbose] > │ and closure5 () () : UH0 = │
00:05:48 #22972 [Verbose] > │ let v0 : (unit -> UH0) = closure6() │
00:05:48 #22973 [Verbose] > │ UH0_0(6.0, v0) │
00:05:48 #22974 [Verbose] > │ and closure4 () () : UH0 = │
00:05:48 #22975 [Verbose] > │ let v0 : (unit -> UH0) = closure5() │
00:05:48 #22976 [Verbose] > │ UH0_0(5.0, v0) │
00:05:48 #22977 [Verbose] > │ and closure3 () () : UH0 = │
00:05:48 #22978 [Verbose] > │ let v0 : (unit -> UH0) = closure4() │
00:05:48 #22979 [Verbose] > │ UH0_0(4.0, v0) │
00:05:48 #22980 [Verbose] > │ and closure2 () () : UH0 = │
00:05:48 #22981 [Verbose] > │ let v0 : (unit -> UH0) = closure3() │
00:05:48 #22982 [Verbose] > │ UH0_0(3.0, v0) │
00:05:48 #22983 [Verbose] > │ and closure1 () () : UH0 = │
00:05:48 #22984 [Verbose] > │ let v0 : (unit -> UH0) = closure2() │
00:05:48 #22985 [Verbose] > │ UH0_0(2.0, v0) │
00:05:48 #22986 [Verbose] > │ and closure0 () () : UH0 = │
00:05:48 #22987 [Verbose] > │ let v0 : (unit -> UH0) = closure1() │
00:05:48 #22988 [Verbose] > │ UH0_0(1.0, v0) │
00:05:48 #22989 [Verbose] > │ and closure129 () () : UH1 = │
00:05:48 #22990 [Verbose] > │ UH1_1 │
00:05:48 #22991 [Verbose] > │ and closure128 () () : UH1 = │
00:05:48 #22992 [Verbose] > │ let v0 : (unit -> UH1) = closure129() │
00:05:48 #22993 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.64, 0.0007224452478461016, 0.0, 0.0, 0.0, │
00:05:48 #22994 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #22995 [Verbose] > │ and closure127 () () : UH1 = │
00:05:48 #22996 [Verbose] > │ let v0 : (unit -> UH1) = closure128() │
00:05:48 #22997 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.63, 0.001429728391993452, 0.0, 0.0, 0.0, │
00:05:48 #22998 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #22999 [Verbose] > │ and closure126 () () : UH1 = │
00:05:48 #23000 [Verbose] > │ let v0 : (unit -> UH1) = closure127() │
00:05:48 #23001 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.62, 0.0021070055388626528, 0.0, 0.0, 0.0, │
00:05:48 #23002 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23003 [Verbose] > │ and closure125 () () : UH1 = │
00:05:48 #23004 [Verbose] > │ let v0 : (unit -> UH1) = closure126() │
00:05:48 #23005 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.61, 0.0027400625367733585, 0.0, 0.0, 0.0, │
00:05:48 #23006 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23007 [Verbose] > │ and closure124 () () : UH1 = │
00:05:48 #23008 [Verbose] > │ let v0 : (unit -> UH1) = closure125() │
00:05:48 #23009 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.6, 0.0033156132912039783, 0.0, 0.0, 0.0, │
00:05:48 #23010 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23011 [Verbose] > │ and closure123 () () : UH1 = │
00:05:48 #23012 [Verbose] > │ let v0 : (unit -> UH1) = closure124() │
00:05:48 #23013 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.59, 0.003821578602729245, 0.0, 0.0, 0.0, │
00:05:48 #23014 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23015 [Verbose] > │ and closure122 () () : UH1 = │
00:05:48 #23016 [Verbose] > │ let v0 : (unit -> UH1) = closure123() │
00:05:48 #23017 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.5800000000000001, 0.004247339675607605, │
00:05:48 #23018 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:05:48 #23019 [Verbose] > │ and closure121 () () : UH1 = │
00:05:48 #23020 [Verbose] > │ let v0 : (unit -> UH1) = closure122() │
00:05:48 #23021 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.5700000000000001, 0.004583960976582912, │
00:05:48 #23022 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:05:48 #23023 [Verbose] > │ and closure120 () () : UH1 = │
00:05:48 #23024 [Verbose] > │ let v0 : (unit -> UH1) = closure121() │
00:05:48 #23025 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.56, 0.004824377766717758, 0.0, 0.0, 0.0, │
00:05:48 #23026 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23027 [Verbose] > │ and closure119 () () : UH1 = │
00:05:48 #23028 [Verbose] > │ let v0 : (unit -> UH1) = closure120() │
00:05:48 #23029 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.55, 0.004963544370490271, 0.0, 0.0, 0.0, │
00:05:48 #23030 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23031 [Verbose] > │ and closure118 () () : UH1 = │
00:05:48 #23032 [Verbose] > │ let v0 : (unit -> UH1) = closure119() │
00:05:48 #23033 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.54, 0.004998540070400965, 0.0, 0.0, 0.0, │
00:05:48 #23034 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23035 [Verbose] > │ and closure117 () () : UH1 = │
00:05:48 #23036 [Verbose] > │ let v0 : (unit -> UH1) = closure118() │
00:05:48 #23037 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.53, 0.004928630404658255, 0.0, 0.0, 0.0, │
00:05:48 #23038 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23039 [Verbose] > │ and closure116 () () : UH1 = │
00:05:48 #23040 [Verbose] > │ let v0 : (unit -> UH1) = closure117() │
00:05:48 #23041 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.52, 0.004755282581475766, 0.0, 0.0, 0.0, │
00:05:48 #23042 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23043 [Verbose] > │ and closure115 () () : UH1 = │
00:05:48 #23044 [Verbose] > │ let v0 : (unit -> UH1) = closure116() │
00:05:48 #23045 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.51, 0.0044821346864785195, 0.0, 0.0, 0.0, │
00:05:48 #23046 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23047 [Verbose] > │ and closure114 () () : UH1 = │
00:05:48 #23048 [Verbose] > │ let v0 : (unit -> UH1) = closure115() │
00:05:48 #23049 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.5, 0.0041149193294682815, 0.0, 0.0, 0.0, │
00:05:48 #23050 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23051 [Verbose] > │ and closure113 () () : UH1 = │
00:05:48 #23052 [Verbose] > │ let v0 : (unit -> UH1) = closure114() │
00:05:48 #23053 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.49, 0.0036613433329888622, 0.0, 0.0, 0.0, │
00:05:48 #23054 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23055 [Verbose] > │ and closure112 () () : UH1 = │
00:05:48 #23056 [Verbose] > │ let v0 : (unit -> UH1) = closure113() │
00:05:48 #23057 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.48000000000000004, 0.003130925987691568, │
00:05:48 #23058 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:05:48 #23059 [Verbose] > │ and closure111 () () : UH1 = │
00:05:48 #23060 [Verbose] > │ let v0 : (unit -> UH1) = closure112() │
00:05:48 #23061 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.47000000000000003, 0.002534799269067953, │
00:05:48 #23062 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:05:48 #23063 [Verbose] > │ and closure110 () () : UH1 = │
00:05:48 #23064 [Verbose] > │ let v0 : (unit -> UH1) = closure111() │
00:05:48 #23065 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.46, 0.0018854742084416021, 0.0, 0.0, 0.0, │
00:05:48 #23066 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23067 [Verbose] > │ and closure109 () () : UH1 = │
00:05:48 #23068 [Verbose] > │ let v0 : (unit -> UH1) = closure110() │
00:05:48 #23069 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.45, 0.0011965783214377866, 0.0, 0.0, 0.0, │
00:05:48 #23070 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23071 [Verbose] > │ and closure108 () () : UH1 = │
00:05:48 #23072 [Verbose] > │ let v0 : (unit -> UH1) = closure109() │
00:05:48 #23073 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.44, 0.0004825696045725713, 0.0, 0.0, 0.0, │
00:05:48 #23074 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23075 [Verbose] > │ and closure107 () () : UH1 = │
00:05:48 #23076 [Verbose] > │ let v0 : (unit -> UH1) = closure108() │
00:05:48 #23077 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.43, -0.00024156689762753724, 0.0, 0.0, │
00:05:48 #23078 [Verbose] > │ 0.0, 0.0, 0.0, v0) │
00:05:48 #23079 [Verbose] > │ and closure106 () () : UH1 = │
00:05:48 #23080 [Verbose] > │ let v0 : (unit -> UH1) = closure107() │
00:05:48 #23081 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.42000000000000004, -0.0009606335867685414, │
00:05:48 #23082 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:05:48 #23083 [Verbose] > │ and closure105 () () : UH1 = │
00:05:48 #23084 [Verbose] > │ let v0 : (unit -> UH1) = closure106() │
00:05:48 #23085 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.41000000000000003, -0.0016595392656426435, │
00:05:48 #23086 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:05:48 #23087 [Verbose] > │ and closure104 () () : UH1 = │
00:05:48 #23088 [Verbose] > │ let v0 : (unit -> UH1) = closure105() │
00:05:48 #23089 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.4, -0.002323615860218846, 0.0, 0.0, 0.0, │
00:05:48 #23090 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23091 [Verbose] > │ and closure103 () () : UH1 = │
00:05:48 #23092 [Verbose] > │ let v0 : (unit -> UH1) = closure104() │
00:05:48 #23093 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.39, -0.002938926261462367, 0.0, 0.0, 0.0, │
00:05:48 #23094 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23095 [Verbose] > │ and closure102 () () : UH1 = │
00:05:48 #23096 [Verbose] > │ let v0 : (unit -> UH1) = closure103() │
00:05:48 #23097 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.38, -0.0034925568262446837, 0.0, 0.0, 0.0, │
00:05:48 #23098 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23099 [Verbose] > │ and closure101 () () : UH1 = │
00:05:48 #23100 [Verbose] > │ let v0 : (unit -> UH1) = closure102() │
00:05:48 #23101 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.37, -0.003972888398568774, 0.0, 0.0, 0.0, │
00:05:48 #23102 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23103 [Verbose] > │ and closure100 () () : UH1 = │
00:05:48 #23104 [Verbose] > │ let v0 : (unit -> UH1) = closure101() │
00:05:48 #23105 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.36000000000000004, -0.004369840163132589, │
00:05:48 #23106 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:05:48 #23107 [Verbose] > │ and closure99 () () : UH1 = │
00:05:48 #23108 [Verbose] > │ let v0 : (unit -> UH1) = closure100() │
00:05:48 #23109 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.35000000000000003, -0.004675081213427074, │
00:05:48 #23110 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:05:48 #23111 [Verbose] > │ and closure98 () () : UH1 = │
00:05:48 #23112 [Verbose] > │ let v0 : (unit -> UH1) = closure99() │
00:05:48 #23113 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.34, -0.004882205394146361, 0.0, 0.0, 0.0, │
00:05:48 #23114 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23115 [Verbose] > │ and closure97 () () : UH1 = │
00:05:48 #23116 [Verbose] > │ let v0 : (unit -> UH1) = closure98() │
00:05:48 #23117 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.33, -0.004986865748457456, 0.0, 0.0, 0.0, │
00:05:48 #23118 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23119 [Verbose] > │ and closure96 () () : UH1 = │
00:05:48 #23120 [Verbose] > │ let v0 : (unit -> UH1) = closure97() │
00:05:48 #23121 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.32, -0.004986865748457456, 0.0, 0.0, 0.0, │
00:05:48 #23122 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23123 [Verbose] > │ and closure95 () () : UH1 = │
00:05:48 #23124 [Verbose] > │ let v0 : (unit -> UH1) = closure96() │
00:05:48 #23125 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.31, -0.004882205394146359, 0.0, 0.0, 0.0, │
00:05:48 #23126 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23127 [Verbose] > │ and closure94 () () : UH1 = │
00:05:48 #23128 [Verbose] > │ let v0 : (unit -> UH1) = closure95() │
00:05:48 #23129 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.3, -0.004675081213427074, 0.0, 0.0, 0.0, │
00:05:48 #23130 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23131 [Verbose] > │ and closure93 () () : UH1 = │
00:05:48 #23132 [Verbose] > │ let v0 : (unit -> UH1) = closure94() │
00:05:48 #23133 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.29000000000000004, -0.00436984016313259, │
00:05:48 #23134 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:05:48 #23135 [Verbose] > │ and closure92 () () : UH1 = │
00:05:48 #23136 [Verbose] > │ let v0 : (unit -> UH1) = closure93() │
00:05:48 #23137 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.28, -0.003972888398568771, 0.0, 0.0, 0.0, │
00:05:48 #23138 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23139 [Verbose] > │ and closure91 () () : UH1 = │
00:05:48 #23140 [Verbose] > │ let v0 : (unit -> UH1) = closure92() │
00:05:48 #23141 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.27, -0.003492556826244686, 0.0, 0.0, 0.0, │
00:05:48 #23142 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23143 [Verbose] > │ and closure90 () () : UH1 = │
00:05:48 #23144 [Verbose] > │ let v0 : (unit -> UH1) = closure91() │
00:05:48 #23145 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.26, -0.0029389262614623636, 0.0, 0.0, 0.0, │
00:05:48 #23146 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23147 [Verbose] > │ and closure89 () () : UH1 = │
00:05:48 #23148 [Verbose] > │ let v0 : (unit -> UH1) = closure90() │
00:05:48 #23149 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.25, -0.002323615860218842, 0.0, 0.0, 0.0, │
00:05:48 #23150 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23151 [Verbose] > │ and closure88 () () : UH1 = │
00:05:48 #23152 [Verbose] > │ let v0 : (unit -> UH1) = closure89() │
00:05:48 #23153 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.24000000000000002, -0.001659539265642642, │
00:05:48 #23154 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:05:48 #23155 [Verbose] > │ and closure87 () () : UH1 = │
00:05:48 #23156 [Verbose] > │ let v0 : (unit -> UH1) = closure88() │
00:05:48 #23157 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.23, -0.0009606335867685418, 0.0, 0.0, 0.0, │
00:05:48 #23158 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23159 [Verbose] > │ and closure86 () () : UH1 = │
00:05:48 #23160 [Verbose] > │ let v0 : (unit -> UH1) = closure87() │
00:05:48 #23161 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.22, -0.00024156689762753317, 0.0, 0.0, │
00:05:48 #23162 [Verbose] > │ 0.0, 0.0, 0.0, v0) │
00:05:48 #23163 [Verbose] > │ and closure85 () () : UH1 = │
00:05:48 #23164 [Verbose] > │ let v0 : (unit -> UH1) = closure86() │
00:05:48 #23165 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.21000000000000002, 0.00048256960457257535, │
00:05:48 #23166 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:05:48 #23167 [Verbose] > │ and closure84 () () : UH1 = │
00:05:48 #23168 [Verbose] > │ let v0 : (unit -> UH1) = closure85() │
00:05:48 #23169 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.2, 0.0011965783214377905, 0.0, 0.0, 0.0, │
00:05:48 #23170 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23171 [Verbose] > │ and closure83 () () : UH1 = │
00:05:48 #23172 [Verbose] > │ let v0 : (unit -> UH1) = closure84() │
00:05:48 #23173 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.19, 0.0018854742084416015, 0.0, 0.0, 0.0, │
00:05:48 #23174 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23175 [Verbose] > │ and closure82 () () : UH1 = │
00:05:48 #23176 [Verbose] > │ let v0 : (unit -> UH1) = closure83() │
00:05:48 #23177 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.18000000000000002, 0.002534799269067951, │
00:05:48 #23178 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:05:48 #23179 [Verbose] > │ and closure81 () () : UH1 = │
00:05:48 #23180 [Verbose] > │ let v0 : (unit -> UH1) = closure82() │
00:05:48 #23181 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.17, 0.0031309259876915697, 0.0, 0.0, 0.0, │
00:05:48 #23182 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23183 [Verbose] > │ and closure80 () () : UH1 = │
00:05:48 #23184 [Verbose] > │ let v0 : (unit -> UH1) = closure81() │
00:05:48 #23185 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.16, 0.0036613433329888666, 0.0, 0.0, 0.0, │
00:05:48 #23186 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23187 [Verbose] > │ and closure79 () () : UH1 = │
00:05:48 #23188 [Verbose] > │ let v0 : (unit -> UH1) = closure80() │
00:05:48 #23189 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.15000000000000002, 0.0041149193294682815, │
00:05:48 #23190 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:05:48 #23191 [Verbose] > │ and closure78 () () : UH1 = │
00:05:48 #23192 [Verbose] > │ let v0 : (unit -> UH1) = closure79() │
00:05:48 #23193 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.14, 0.004482134686478519, 0.0, 0.0, 0.0, │
00:05:48 #23194 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23195 [Verbose] > │ and closure77 () () : UH1 = │
00:05:48 #23196 [Verbose] > │ let v0 : (unit -> UH1) = closure78() │
00:05:48 #23197 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.13, 0.004755282581475768, 0.0, 0.0, 0.0, │
00:05:48 #23198 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23199 [Verbose] > │ and closure76 () () : UH1 = │
00:05:48 #23200 [Verbose] > │ let v0 : (unit -> UH1) = closure77() │
00:05:48 #23201 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.12, 0.004928630404658255, 0.0, 0.0, 0.0, │
00:05:48 #23202 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23203 [Verbose] > │ and closure75 () () : UH1 = │
00:05:48 #23204 [Verbose] > │ let v0 : (unit -> UH1) = closure76() │
00:05:48 #23205 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.11, 0.004998540070400965, 0.0, 0.0, 0.0, │
00:05:48 #23206 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23207 [Verbose] > │ and closure74 () () : UH1 = │
00:05:48 #23208 [Verbose] > │ let v0 : (unit -> UH1) = closure75() │
00:05:48 #23209 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.09999999999999999, 0.00496354437049027, │
00:05:48 #23210 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:05:48 #23211 [Verbose] > │ and closure73 () () : UH1 = │
00:05:48 #23212 [Verbose] > │ let v0 : (unit -> UH1) = closure74() │
00:05:48 #23213 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.09, 0.004824377766717757, 0.0, 0.0, 0.0, │
00:05:48 #23214 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23215 [Verbose] > │ and closure72 () () : UH1 = │
00:05:48 #23216 [Verbose] > │ let v0 : (unit -> UH1) = closure73() │
00:05:48 #23217 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.08, 0.004583960976582912, 0.0, 0.0, 0.0, │
00:05:48 #23218 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23219 [Verbose] > │ and closure71 () () : UH1 = │
00:05:48 #23220 [Verbose] > │ let v0 : (unit -> UH1) = closure72() │
00:05:48 #23221 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.06999999999999999, 0.004247339675607605, │
00:05:48 #23222 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:05:48 #23223 [Verbose] > │ and closure70 () () : UH1 = │
00:05:48 #23224 [Verbose] > │ let v0 : (unit -> UH1) = closure71() │
00:05:48 #23225 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.060000000000000005, 0.0038215786027292415, │
00:05:48 #23226 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:05:48 #23227 [Verbose] > │ and closure69 () () : UH1 = │
00:05:48 #23228 [Verbose] > │ let v0 : (unit -> UH1) = closure70() │
00:05:48 #23229 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.05, 0.0033156132912039757, 0.0, 0.0, 0.0, │
00:05:48 #23230 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23231 [Verbose] > │ and closure68 () () : UH1 = │
00:05:48 #23232 [Verbose] > │ let v0 : (unit -> UH1) = closure69() │
00:05:48 #23233 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.04, 0.00274006253677335, 0.0, 0.0, 0.0, │
00:05:48 #23234 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23235 [Verbose] > │ and closure67 () () : UH1 = │
00:05:48 #23236 [Verbose] > │ let v0 : (unit -> UH1) = closure68() │
00:05:48 #23237 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.03, 0.0021070055388626454, 0.0, 0.0, 0.0, │
00:05:48 #23238 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23239 [Verbose] > │ and closure66 () () : UH1 = │
00:05:48 #23240 [Verbose] > │ let v0 : (unit -> UH1) = closure67() │
00:05:48 #23241 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.02, 0.0014297283919934465, 0.0, 0.0, 0.0, │
00:05:48 #23242 [Verbose] > │ 0.0, 0.0, v0) │
00:05:48 #23243 [Verbose] > │ and closure132 (v0 : (unit -> UH1), v1 : (unit -> UH3)) () : UH1 = │
00:05:48 #23244 [Verbose] > │ let v2 : UH3 = v1 () │
00:05:48 #23245 [Verbose] > │ let v3 : UH1 = v0 () │
00:05:48 #23246 [Verbose] > │ match v2 with │
00:05:48 #23247 [Verbose] > │ | UH3_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons *) │
00:05:48 #23248 [Verbose] > │ match v3 with │
00:05:48 #23249 [Verbose] > │ | UH1_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (* │
00:05:48 #23250 [Verbose] > │ StreamCons *) │
00:05:48 #23251 [Verbose] > │ let v24 : float = v9 * 1.25E-05 │
00:05:48 #23252 [Verbose] > │ let v25 : float = v19 + v24 │
00:05:48 #23253 [Verbose] > │ let v26 : float = 1.25E-05 * v6 │
00:05:48 #23254 [Verbose] > │ let v27 : float = 1.25E-05 * v7 │
00:05:48 #23255 [Verbose] > │ let v28 : float = 1.25E-05 * v8 │
00:05:48 #23256 [Verbose] > │ let v29 : float = v16 + v26 │
00:05:48 #23257 [Verbose] > │ let v30 : float = v17 + v27 │
00:05:48 #23258 [Verbose] > │ let v31 : float = v18 + v28 │
00:05:48 #23259 [Verbose] > │ let v32 : float = 1.25E-05 * v10 │
00:05:48 #23260 [Verbose] > │ let v33 : float = 1.25E-05 * v11 │
00:05:48 #23261 [Verbose] > │ let v34 : float = 1.25E-05 * v12 │
00:05:48 #23262 [Verbose] > │ let v35 : float = v20 + v32 │
00:05:48 #23263 [Verbose] > │ let v36 : float = v21 + v33 │
00:05:48 #23264 [Verbose] > │ let v37 : float = v22 + v34 │
00:05:48 #23265 [Verbose] > │ let v38 : (unit -> UH1) = closure132(v23, v13) │
00:05:48 #23266 [Verbose] > │ UH1_0(v14, v15, v29, v30, v31, v25, v35, v36, v37, v38) │
00:05:48 #23267 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:05:48 #23268 [Verbose] > │ UH1_1 │
00:05:48 #23269 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:05:48 #23270 [Verbose] > │ UH1_1 │
00:05:48 #23271 [Verbose] > │ and closure133 (v0 : UH1) () : UH1 = │
00:05:48 #23272 [Verbose] > │ v0 │
00:05:48 #23273 [Verbose] > │ and closure134 (v0 : UH1, v1 : Mut0) () : UH1 = │
00:05:48 #23274 [Verbose] > │ let v2 : US0 = v1.l0 │
00:05:48 #23275 [Verbose] > │ match v2 with │
00:05:48 #23276 [Verbose] > │ | US0_0(v3) -> (* Computed *) │
00:05:48 #23277 [Verbose] > │ v3 │
00:05:48 #23278 [Verbose] > │ | US0_1(v4) -> (* NotComputed *) │
00:05:48 #23279 [Verbose] > │ let v5 : UH1 = v4 () │
00:05:48 #23280 [Verbose] > │ let v20 : UH1 = │
00:05:48 #23281 [Verbose] > │ match v5 with │
00:05:48 #23282 [Verbose] > │ | UH1_0(v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) -> (* │
00:05:48 #23283 [Verbose] > │ StreamCons *) │
00:05:48 #23284 [Verbose] > │ let v17 : (unit -> UH1) = method3(v0, v16) │
00:05:48 #23285 [Verbose] > │ UH1_0(v7, v8, v9, v10, v11, v12, v13, v14, v15, v17) │
00:05:48 #23286 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:05:48 #23287 [Verbose] > │ UH1_1 │
00:05:48 #23288 [Verbose] > │ let v21 : US0 = US0_0(v20) │
00:05:48 #23289 [Verbose] > │ v1.l0 <- v21 │
00:05:48 #23290 [Verbose] > │ v20 │
00:05:48 #23291 [Verbose] > │ and method3 (v0 : UH1, v1 : (unit -> UH1)) : (unit -> UH1) = │
00:05:48 #23292 [Verbose] > │ let v2 : US0 = US0_1(v1) │
00:05:48 #23293 [Verbose] > │ let v3 : Mut0 = {l0 = v2} : Mut0 │
00:05:48 #23294 [Verbose] > │ closure134(v0, v3) │
00:05:48 #23295 [Verbose] > │ and closure135 (v0 : (unit -> UH1), v1 : (unit -> UH3)) () : UH1 = │
00:05:48 #23296 [Verbose] > │ let v2 : UH3 = v1 () │
00:05:48 #23297 [Verbose] > │ let v3 : UH1 = v0 () │
00:05:48 #23298 [Verbose] > │ match v2 with │
00:05:48 #23299 [Verbose] > │ | UH3_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons *) │
00:05:48 #23300 [Verbose] > │ match v3 with │
00:05:48 #23301 [Verbose] > │ | UH1_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (* │
00:05:48 #23302 [Verbose] > │ StreamCons *) │
00:05:48 #23303 [Verbose] > │ let v24 : float = v9 * 2.5E-05 │
00:05:48 #23304 [Verbose] > │ let v25 : float = v19 + v24 │
00:05:48 #23305 [Verbose] > │ let v26 : float = 2.5E-05 * v6 │
00:05:48 #23306 [Verbose] > │ let v27 : float = 2.5E-05 * v7 │
00:05:48 #23307 [Verbose] > │ let v28 : float = 2.5E-05 * v8 │
00:05:48 #23308 [Verbose] > │ let v29 : float = v16 + v26 │
00:05:48 #23309 [Verbose] > │ let v30 : float = v17 + v27 │
00:05:48 #23310 [Verbose] > │ let v31 : float = v18 + v28 │
00:05:48 #23311 [Verbose] > │ let v32 : float = 2.5E-05 * v10 │
00:05:48 #23312 [Verbose] > │ let v33 : float = 2.5E-05 * v11 │
00:05:48 #23313 [Verbose] > │ let v34 : float = 2.5E-05 * v12 │
00:05:48 #23314 [Verbose] > │ let v35 : float = v20 + v32 │
00:05:48 #23315 [Verbose] > │ let v36 : float = v21 + v33 │
00:05:48 #23316 [Verbose] > │ let v37 : float = v22 + v34 │
00:05:48 #23317 [Verbose] > │ let v38 : (unit -> UH1) = closure135(v23, v13) │
00:05:48 #23318 [Verbose] > │ UH1_0(v14, v15, v29, v30, v31, v25, v35, v36, v37, v38) │
00:05:48 #23319 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:05:48 #23320 [Verbose] > │ UH1_1 │
00:05:48 #23321 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:05:48 #23322 [Verbose] > │ UH1_1 │
00:05:48 #23323 [Verbose] > │ and closure136 (v0 : (unit -> UH3), v1 : (unit -> UH3)) () : UH3 = │
00:05:48 #23324 [Verbose] > │ let v2 : UH3 = v1 () │
00:05:48 #23325 [Verbose] > │ let v3 : UH3 = v0 () │
00:05:48 #23326 [Verbose] > │ match v2 with │
00:05:48 #23327 [Verbose] > │ | UH3_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons *) │
00:05:48 #23328 [Verbose] > │ match v3 with │
00:05:48 #23329 [Verbose] > │ | UH3_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (* │
00:05:48 #23330 [Verbose] > │ StreamCons *) │
00:05:48 #23331 [Verbose] > │ let v24 : float = v4 + v14 │
00:05:48 #23332 [Verbose] > │ let v25 : float = v5 + v15 │
00:05:48 #23333 [Verbose] > │ let v26 : float = v9 + v19 │
00:05:48 #23334 [Verbose] > │ let v27 : float = v6 + v16 │
00:05:48 #23335 [Verbose] > │ let v28 : float = v7 + v17 │
00:05:48 #23336 [Verbose] > │ let v29 : float = v8 + v18 │
00:05:48 #23337 [Verbose] > │ let v30 : float = v10 + v20 │
00:05:48 #23338 [Verbose] > │ let v31 : float = v11 + v21 │
00:05:48 #23339 [Verbose] > │ let v32 : float = v12 + v22 │
00:05:48 #23340 [Verbose] > │ let v33 : (unit -> UH3) = closure136(v23, v13) │
00:05:48 #23341 [Verbose] > │ UH3_0(v24, v25, v27, v28, v29, v26, v30, v31, v32, v33) │
00:05:48 #23342 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:05:48 #23343 [Verbose] > │ UH3_1 │
00:05:48 #23344 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:05:48 #23345 [Verbose] > │ UH3_1 │
00:05:48 #23346 [Verbose] > │ and closure137 (v0 : (unit -> UH1), v1 : (unit -> UH3)) () : UH1 = │
00:05:48 #23347 [Verbose] > │ let v2 : UH3 = v1 () │
00:05:48 #23348 [Verbose] > │ let v3 : UH1 = v0 () │
00:05:48 #23349 [Verbose] > │ match v2 with │
00:05:48 #23350 [Verbose] > │ | UH3_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons *) │
00:05:48 #23351 [Verbose] > │ match v3 with │
00:05:48 #23352 [Verbose] > │ | UH1_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (* │
00:05:48 #23353 [Verbose] > │ StreamCons *) │
00:05:48 #23354 [Verbose] > │ let v24 : float = v9 * 4.166666666666667E-06 │
00:05:48 #23355 [Verbose] > │ let v25 : float = v19 + v24 │
00:05:48 #23356 [Verbose] > │ let v26 : float = 4.166666666666667E-06 * v6 │
00:05:48 #23357 [Verbose] > │ let v27 : float = 4.166666666666667E-06 * v7 │
00:05:48 #23358 [Verbose] > │ let v28 : float = 4.166666666666667E-06 * v8 │
00:05:48 #23359 [Verbose] > │ let v29 : float = v16 + v26 │
00:05:48 #23360 [Verbose] > │ let v30 : float = v17 + v27 │
00:05:48 #23361 [Verbose] > │ let v31 : float = v18 + v28 │
00:05:48 #23362 [Verbose] > │ let v32 : float = 4.166666666666667E-06 * v10 │
00:05:48 #23363 [Verbose] > │ let v33 : float = 4.166666666666667E-06 * v11 │
00:05:48 #23364 [Verbose] > │ let v34 : float = 4.166666666666667E-06 * v12 │
00:05:48 #23365 [Verbose] > │ let v35 : float = v20 + v32 │
00:05:48 #23366 [Verbose] > │ let v36 : float = v21 + v33 │
00:05:48 #23367 [Verbose] > │ let v37 : float = v22 + v34 │
00:05:48 #23368 [Verbose] > │ let v38 : (unit -> UH1) = closure137(v23, v13) │
00:05:48 #23369 [Verbose] > │ UH1_0(v14, v15, v29, v30, v31, v25, v35, v36, v37, v38) │
00:05:48 #23370 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:05:48 #23371 [Verbose] > │ UH1_1 │
00:05:48 #23372 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:05:48 #23373 [Verbose] > │ UH1_1 │
00:05:48 #23374 [Verbose] > │ and closure131 (v0 : (UH1 -> UH3)) (v1 : UH1) : UH1 = │
00:05:48 #23375 [Verbose] > │ let v2 : UH3 = v0 v1 │
00:05:48 #23376 [Verbose] > │ let v44 : UH1 = │
00:05:48 #23377 [Verbose] > │ match v2 with │
00:05:48 #23378 [Verbose] > │ | UH3_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* StreamCons │
00:05:48 #23379 [Verbose] > │ *) │
00:05:48 #23380 [Verbose] > │ match v1 with │
00:05:48 #23381 [Verbose] > │ | UH1_0(v13, v14, v15, v16, v17, v18, v19, v20, v21, v22) -> (* │
00:05:48 #23382 [Verbose] > │ StreamCons *) │
00:05:48 #23383 [Verbose] > │ let v23 : float = v8 * 1.25E-05 │
00:05:48 #23384 [Verbose] > │ let v24 : float = v18 + v23 │
00:05:48 #23385 [Verbose] > │ let v25 : float = 1.25E-05 * v5 │
00:05:48 #23386 [Verbose] > │ let v26 : float = 1.25E-05 * v6 │
00:05:48 #23387 [Verbose] > │ let v27 : float = 1.25E-05 * v7 │
00:05:48 #23388 [Verbose] > │ let v28 : float = v15 + v25 │
00:05:48 #23389 [Verbose] > │ let v29 : float = v16 + v26 │
00:05:48 #23390 [Verbose] > │ let v30 : float = v17 + v27 │
00:05:48 #23391 [Verbose] > │ let v31 : float = 1.25E-05 * v9 │
00:05:48 #23392 [Verbose] > │ let v32 : float = 1.25E-05 * v10 │
00:05:48 #23393 [Verbose] > │ let v33 : float = 1.25E-05 * v11 │
00:05:48 #23394 [Verbose] > │ let v34 : float = v19 + v31 │
00:05:48 #23395 [Verbose] > │ let v35 : float = v20 + v32 │
00:05:48 #23396 [Verbose] > │ let v36 : float = v21 + v33 │
00:05:48 #23397 [Verbose] > │ let v37 : (unit -> UH1) = closure132(v22, v12) │
00:05:48 #23398 [Verbose] > │ UH1_0(v13, v14, v28, v29, v30, v24, v34, v35, v36, v37) │
00:05:48 #23399 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:05:48 #23400 [Verbose] > │ UH1_1 │
00:05:48 #23401 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:05:48 #23402 [Verbose] > │ UH1_1 │
00:05:48 #23403 [Verbose] > │ let v45 : (unit -> UH1) = closure133(v44) │
00:05:48 #23404 [Verbose] > │ let v46 : (unit -> UH1) = method3(v44, v45) │
00:05:48 #23405 [Verbose] > │ let v47 : UH1 = v46 () │
00:05:48 #23406 [Verbose] > │ let v48 : UH3 = v0 v47 │
00:05:48 #23407 [Verbose] > │ let v90 : UH1 = │
00:05:48 #23408 [Verbose] > │ match v48 with │
00:05:48 #23409 [Verbose] > │ | UH3_0(v49, v50, v51, v52, v53, v54, v55, v56, v57, v58) -> (* │
00:05:48 #23410 [Verbose] > │ StreamCons *) │
00:05:48 #23411 [Verbose] > │ match v1 with │
00:05:48 #23412 [Verbose] > │ | UH1_0(v59, v60, v61, v62, v63, v64, v65, v66, v67, v68) -> (* │
00:05:48 #23413 [Verbose] > │ StreamCons *) │
00:05:48 #23414 [Verbose] > │ let v69 : float = v54 * 1.25E-05 │
00:05:48 #23415 [Verbose] > │ let v70 : float = v64 + v69 │
00:05:48 #23416 [Verbose] > │ let v71 : float = 1.25E-05 * v51 │
00:05:48 #23417 [Verbose] > │ let v72 : float = 1.25E-05 * v52 │
00:05:48 #23418 [Verbose] > │ let v73 : float = 1.25E-05 * v53 │
00:05:48 #23419 [Verbose] > │ let v74 : float = v61 + v71 │
00:05:48 #23420 [Verbose] > │ let v75 : float = v62 + v72 │
00:05:48 #23421 [Verbose] > │ let v76 : float = v63 + v73 │
00:05:48 #23422 [Verbose] > │ let v77 : float = 1.25E-05 * v55 │
00:05:48 #23423 [Verbose] > │ let v78 : float = 1.25E-05 * v56 │
00:05:48 #23424 [Verbose] > │ let v79 : float = 1.25E-05 * v57 │
00:05:48 #23425 [Verbose] > │ let v80 : float = v65 + v77 │
00:05:48 #23426 [Verbose] > │ let v81 : float = v66 + v78 │
00:05:48 #23427 [Verbose] > │ let v82 : float = v67 + v79 │
00:05:48 #23428 [Verbose] > │ let v83 : (unit -> UH1) = closure132(v68, v58) │
00:05:48 #23429 [Verbose] > │ UH1_0(v59, v60, v74, v75, v76, v70, v80, v81, v82, v83) │
00:05:48 #23430 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:05:48 #23431 [Verbose] > │ UH1_1 │
00:05:48 #23432 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:05:48 #23433 [Verbose] > │ UH1_1 │
00:05:48 #23434 [Verbose] > │ let v91 : (unit -> UH1) = closure133(v90) │
00:05:48 #23435 [Verbose] > │ let v92 : (unit -> UH1) = method3(v90, v91) │
00:05:48 #23436 [Verbose] > │ let v93 : UH1 = v92 () │
00:05:48 #23437 [Verbose] > │ let v94 : UH3 = v0 v93 │
00:05:48 #23438 [Verbose] > │ let v136 : UH1 = │
00:05:48 #23439 [Verbose] > │ match v94 with │
00:05:48 #23440 [Verbose] > │ | UH3_0(v95, v96, v97, v98, v99, v100, v101, v102, v103, v104) -> (* │
00:05:48 #23441 [Verbose] > │ StreamCons *) │
00:05:48 #23442 [Verbose] > │ match v1 with │
00:05:48 #23443 [Verbose] > │ | UH1_0(v105, v106, v107, v108, v109, v110, v111, v112, v113, │
00:05:48 #23444 [Verbose] > │ v114) -> (* StreamCons *) │
00:05:48 #23445 [Verbose] > │ let v115 : float = v100 * 2.5E-05 │
00:05:48 #23446 [Verbose] > │ let v116 : float = v110 + v115 │
00:05:48 #23447 [Verbose] > │ let v117 : float = 2.5E-05 * v97 │
00:05:48 #23448 [Verbose] > │ let v118 : float = 2.5E-05 * v98 │
00:05:48 #23449 [Verbose] > │ let v119 : float = 2.5E-05 * v99 │
00:05:48 #23450 [Verbose] > │ let v120 : float = v107 + v117 │
00:05:48 #23451 [Verbose] > │ let v121 : float = v108 + v118 │
00:05:48 #23452 [Verbose] > │ let v122 : float = v109 + v119 │
00:05:48 #23453 [Verbose] > │ let v123 : float = 2.5E-05 * v101 │
00:05:48 #23454 [Verbose] > │ let v124 : float = 2.5E-05 * v102 │
00:05:48 #23455 [Verbose] > │ let v125 : float = 2.5E-05 * v103 │
00:05:48 #23456 [Verbose] > │ let v126 : float = v111 + v123 │
00:05:48 #23457 [Verbose] > │ let v127 : float = v112 + v124 │
00:05:48 #23458 [Verbose] > │ let v128 : float = v113 + v125 │
00:05:48 #23459 [Verbose] > │ let v129 : (unit -> UH1) = closure135(v114, v104) │
00:05:48 #23460 [Verbose] > │ UH1_0(v105, v106, v120, v121, v122, v116, v126, v127, v128, │
00:05:48 #23461 [Verbose] > │ v129) │
00:05:48 #23462 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:05:48 #23463 [Verbose] > │ UH1_1 │
00:05:48 #23464 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:05:48 #23465 [Verbose] > │ UH1_1 │
00:05:48 #23466 [Verbose] > │ let v137 : (unit -> UH1) = closure133(v136) │
00:05:48 #23467 [Verbose] > │ let v138 : (unit -> UH1) = method3(v136, v137) │
00:05:48 #23468 [Verbose] > │ let v139 : UH1 = v138 () │
00:05:48 #23469 [Verbose] > │ let v140 : UH3 = v0 v139 │
00:05:48 #23470 [Verbose] > │ let v177 : UH3 = │
00:05:48 #23471 [Verbose] > │ match v2 with │
00:05:48 #23472 [Verbose] > │ | UH3_0(v141, v142, v143, v144, v145, v146, v147, v148, v149, v150) │
00:05:48 #23473 [Verbose] > │ -> (* StreamCons *) │
00:05:48 #23474 [Verbose] > │ match v48 with │
00:05:48 #23475 [Verbose] > │ | UH3_0(v151, v152, v153, v154, v155, v156, v157, v158, v159, │
00:05:48 #23476 [Verbose] > │ v160) -> (* StreamCons *) │
00:05:48 #23477 [Verbose] > │ let v161 : float = v141 + v151 │
00:05:48 #23478 [Verbose] > │ let v162 : float = v142 + v152 │
00:05:48 #23479 [Verbose] > │ let v163 : float = v146 + v156 │
00:05:48 #23480 [Verbose] > │ let v164 : float = v143 + v153 │
00:05:48 #23481 [Verbose] > │ let v165 : float = v144 + v154 │
00:05:48 #23482 [Verbose] > │ let v166 : float = v145 + v155 │
00:05:48 #23483 [Verbose] > │ let v167 : float = v147 + v157 │
00:05:48 #23484 [Verbose] > │ let v168 : float = v148 + v158 │
00:05:48 #23485 [Verbose] > │ let v169 : float = v149 + v159 │
00:05:48 #23486 [Verbose] > │ let v170 : (unit -> UH3) = closure136(v160, v150) │
00:05:48 #23487 [Verbose] > │ UH3_0(v161, v162, v164, v165, v166, v163, v167, v168, v169, │
00:05:48 #23488 [Verbose] > │ v170) │
00:05:48 #23489 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:05:48 #23490 [Verbose] > │ UH3_1 │
00:05:48 #23491 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:05:48 #23492 [Verbose] > │ UH3_1 │
00:05:48 #23493 [Verbose] > │ let v214 : UH3 = │
00:05:48 #23494 [Verbose] > │ match v177 with │
00:05:48 #23495 [Verbose] > │ | UH3_0(v178, v179, v180, v181, v182, v183, v184, v185, v186, v187) │
00:05:48 #23496 [Verbose] > │ -> (* StreamCons *) │
00:05:48 #23497 [Verbose] > │ match v48 with │
00:05:48 #23498 [Verbose] > │ | UH3_0(v188, v189, v190, v191, v192, v193, v194, v195, v196, │
00:05:48 #23499 [Verbose] > │ v197) -> (* StreamCons *) │
00:05:48 #23500 [Verbose] > │ let v198 : float = v178 + v188 │
00:05:48 #23501 [Verbose] > │ let v199 : float = v179 + v189 │
00:05:48 #23502 [Verbose] > │ let v200 : float = v183 + v193 │
00:05:48 #23503 [Verbose] > │ let v201 : float = v180 + v190 │
00:05:48 #23504 [Verbose] > │ let v202 : float = v181 + v191 │
00:05:48 #23505 [Verbose] > │ let v203 : float = v182 + v192 │
00:05:48 #23506 [Verbose] > │ let v204 : float = v184 + v194 │
00:05:48 #23507 [Verbose] > │ let v205 : float = v185 + v195 │
00:05:48 #23508 [Verbose] > │ let v206 : float = v186 + v196 │
00:05:48 #23509 [Verbose] > │ let v207 : (unit -> UH3) = closure136(v197, v187) │
00:05:48 #23510 [Verbose] > │ UH3_0(v198, v199, v201, v202, v203, v200, v204, v205, v206, │
00:05:48 #23511 [Verbose] > │ v207) │
00:05:48 #23512 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:05:48 #23513 [Verbose] > │ UH3_1 │
00:05:48 #23514 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:05:48 #23515 [Verbose] > │ UH3_1 │
00:05:48 #23516 [Verbose] > │ let v251 : UH3 = │
00:05:48 #23517 [Verbose] > │ match v214 with │
00:05:48 #23518 [Verbose] > │ | UH3_0(v215, v216, v217, v218, v219, v220, v221, v222, v223, v224) │
00:05:48 #23519 [Verbose] > │ -> (* StreamCons *) │
00:05:48 #23520 [Verbose] > │ match v94 with │
00:05:48 #23521 [Verbose] > │ | UH3_0(v225, v226, v227, v228, v229, v230, v231, v232, v233, │
00:05:48 #23522 [Verbose] > │ v234) -> (* StreamCons *) │
00:05:48 #23523 [Verbose] > │ let v235 : float = v215 + v225 │
00:05:48 #23524 [Verbose] > │ let v236 : float = v216 + v226 │
00:05:48 #23525 [Verbose] > │ let v237 : float = v220 + v230 │
00:05:48 #23526 [Verbose] > │ let v238 : float = v217 + v227 │
00:05:48 #23527 [Verbose] > │ let v239 : float = v218 + v228 │
00:05:48 #23528 [Verbose] > │ let v240 : float = v219 + v229 │
00:05:48 #23529 [Verbose] > │ let v241 : float = v221 + v231 │
00:05:48 #23530 [Verbose] > │ let v242 : float = v222 + v232 │
00:05:48 #23531 [Verbose] > │ let v243 : float = v223 + v233 │
00:05:48 #23532 [Verbose] > │ let v244 : (unit -> UH3) = closure136(v234, v224) │
00:05:48 #23533 [Verbose] > │ UH3_0(v235, v236, v238, v239, v240, v237, v241, v242, v243, │
00:05:48 #23534 [Verbose] > │ v244) │
00:05:48 #23535 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:05:48 #23536 [Verbose] > │ UH3_1 │
00:05:48 #23537 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:05:48 #23538 [Verbose] > │ UH3_1 │
00:05:48 #23539 [Verbose] > │ let v288 : UH3 = │
00:05:48 #23540 [Verbose] > │ match v251 with │
00:05:48 #23541 [Verbose] > │ | UH3_0(v252, v253, v254, v255, v256, v257, v258, v259, v260, v261) │
00:05:48 #23542 [Verbose] > │ -> (* StreamCons *) │
00:05:48 #23543 [Verbose] > │ match v94 with │
00:05:48 #23544 [Verbose] > │ | UH3_0(v262, v263, v264, v265, v266, v267, v268, v269, v270, │
00:05:48 #23545 [Verbose] > │ v271) -> (* StreamCons *) │
00:05:48 #23546 [Verbose] > │ let v272 : float = v252 + v262 │
00:05:48 #23547 [Verbose] > │ let v273 : float = v253 + v263 │
00:05:48 #23548 [Verbose] > │ let v274 : float = v257 + v267 │
00:05:48 #23549 [Verbose] > │ let v275 : float = v254 + v264 │
00:05:48 #23550 [Verbose] > │ let v276 : float = v255 + v265 │
00:05:48 #23551 [Verbose] > │ let v277 : float = v256 + v266 │
00:05:48 #23552 [Verbose] > │ let v278 : float = v258 + v268 │
00:05:48 #23553 [Verbose] > │ let v279 : float = v259 + v269 │
00:05:48 #23554 [Verbose] > │ let v280 : float = v260 + v270 │
00:05:48 #23555 [Verbose] > │ let v281 : (unit -> UH3) = closure136(v271, v261) │
00:05:48 #23556 [Verbose] > │ UH3_0(v272, v273, v275, v276, v277, v274, v278, v279, v280, │
00:05:48 #23557 [Verbose] > │ v281) │
00:05:48 #23558 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:05:48 #23559 [Verbose] > │ UH3_1 │
00:05:48 #23560 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:05:48 #23561 [Verbose] > │ UH3_1 │
00:05:48 #23562 [Verbose] > │ let v325 : UH3 = │
00:05:48 #23563 [Verbose] > │ match v288 with │
00:05:48 #23564 [Verbose] > │ | UH3_0(v289, v290, v291, v292, v293, v294, v295, v296, v297, v298) │
00:05:48 #23565 [Verbose] > │ -> (* StreamCons *) │
00:05:48 #23566 [Verbose] > │ match v140 with │
00:05:48 #23567 [Verbose] > │ | UH3_0(v299, v300, v301, v302, v303, v304, v305, v306, v307, │
00:05:48 #23568 [Verbose] > │ v308) -> (* StreamCons *) │
00:05:48 #23569 [Verbose] > │ let v309 : float = v289 + v299 │
00:05:48 #23570 [Verbose] > │ let v310 : float = v290 + v300 │
00:05:48 #23571 [Verbose] > │ let v311 : float = v294 + v304 │
00:05:48 #23572 [Verbose] > │ let v312 : float = v291 + v301 │
00:05:48 #23573 [Verbose] > │ let v313 : float = v292 + v302 │
00:05:48 #23574 [Verbose] > │ let v314 : float = v293 + v303 │
00:05:48 #23575 [Verbose] > │ let v315 : float = v295 + v305 │
00:05:48 #23576 [Verbose] > │ let v316 : float = v296 + v306 │
00:05:48 #23577 [Verbose] > │ let v317 : float = v297 + v307 │
00:05:48 #23578 [Verbose] > │ let v318 : (unit -> UH3) = closure136(v308, v298) │
00:05:48 #23579 [Verbose] > │ UH3_0(v309, v310, v312, v313, v314, v311, v315, v316, v317, │
00:05:48 #23580 [Verbose] > │ v318) │
00:05:48 #23581 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:05:48 #23582 [Verbose] > │ UH3_1 │
00:05:48 #23583 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:05:48 #23584 [Verbose] > │ UH3_1 │
00:05:48 #23585 [Verbose] > │ let v367 : UH1 = │
00:05:48 #23586 [Verbose] > │ match v325 with │
00:05:48 #23587 [Verbose] > │ | UH3_0(v326, v327, v328, v329, v330, v331, v332, v333, v334, v335) │
00:05:48 #23588 [Verbose] > │ -> (* StreamCons *) │
00:05:48 #23589 [Verbose] > │ match v1 with │
00:05:48 #23590 [Verbose] > │ | UH1_0(v336, v337, v338, v339, v340, v341, v342, v343, v344, │
00:05:48 #23591 [Verbose] > │ v345) -> (* StreamCons *) │
00:05:48 #23592 [Verbose] > │ let v346 : float = v331 * 4.166666666666667E-06 │
00:05:48 #23593 [Verbose] > │ let v347 : float = v341 + v346 │
00:05:48 #23594 [Verbose] > │ let v348 : float = 4.166666666666667E-06 * v328 │
00:05:48 #23595 [Verbose] > │ let v349 : float = 4.166666666666667E-06 * v329 │
00:05:48 #23596 [Verbose] > │ let v350 : float = 4.166666666666667E-06 * v330 │
00:05:48 #23597 [Verbose] > │ let v351 : float = v338 + v348 │
00:05:48 #23598 [Verbose] > │ let v352 : float = v339 + v349 │
00:05:48 #23599 [Verbose] > │ let v353 : float = v340 + v350 │
00:05:48 #23600 [Verbose] > │ let v354 : float = 4.166666666666667E-06 * v332 │
00:05:48 #23601 [Verbose] > │ let v355 : float = 4.166666666666667E-06 * v333 │
00:05:48 #23602 [Verbose] > │ let v356 : float = 4.166666666666667E-06 * v334 │
00:05:48 #23603 [Verbose] > │ let v357 : float = v342 + v354 │
00:05:48 #23604 [Verbose] > │ let v358 : float = v343 + v355 │
00:05:48 #23605 [Verbose] > │ let v359 : float = v344 + v356 │
00:05:48 #23606 [Verbose] > │ let v360 : (unit -> UH1) = closure137(v345, v335) │
00:05:48 #23607 [Verbose] > │ UH1_0(v336, v337, v351, v352, v353, v347, v357, v358, v359, │
00:05:48 #23608 [Verbose] > │ v360) │
00:05:48 #23609 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:05:48 #23610 [Verbose] > │ UH1_1 │
00:05:48 #23611 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:05:48 #23612 [Verbose] > │ UH1_1 │
00:05:48 #23613 [Verbose] > │ let v368 : (unit -> UH1) = closure133(v367) │
00:05:48 #23614 [Verbose] > │ let v369 : (unit -> UH1) = method3(v367, v368) │
00:05:48 #23615 [Verbose] > │ let v370 : UH1 = v369 () │
00:05:48 #23616 [Verbose] > │ v370 │
00:05:48 #23617 [Verbose] > │ and closure130 () (v0 : (UH1 -> UH3)) : (UH1 -> UH1) = │
00:05:48 #23618 [Verbose] > │ closure131(v0) │
00:05:48 #23619 [Verbose] > │ and method2 () : ((UH1 -> UH3) -> (UH1 -> UH1)) = │
00:05:48 #23620 [Verbose] > │ closure130() │
00:05:48 #23621 [Verbose] > │ and closure138 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 │
00:05:48 #23622 [Verbose] > │ : float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float * │
00:05:48 #23623 [Verbose] > │ float * float) = │
00:05:48 #23624 [Verbose] > │ let v9 : float = v2 * v2 │
00:05:48 #23625 [Verbose] > │ let v10 : float = v3 * v3 │
00:05:48 #23626 [Verbose] > │ let v11 : float = v9 + v10 │
00:05:48 #23627 [Verbose] > │ let v12 : float = v4 * v4 │
00:05:48 #23628 [Verbose] > │ let v13 : float = v11 + v12 │
00:05:48 #23629 [Verbose] > │ let v14 : float = sqrt v13 │
00:05:48 #23630 [Verbose] > │ let v15 : float = -5384.0 * v14 │
00:05:48 #23631 [Verbose] > │ let v16 : float = v15 * v2 │
00:05:48 #23632 [Verbose] > │ let v17 : float = v15 * v3 │
00:05:48 #23633 [Verbose] > │ let v18 : float = v15 * v4 │
00:05:48 #23634 [Verbose] > │ let v19 : float = v16 / v14 │
00:05:48 #23635 [Verbose] > │ let v20 : float = v17 / v14 │
00:05:48 #23636 [Verbose] > │ let v21 : float = v18 / v14 │
00:05:48 #23637 [Verbose] > │ struct (v19, v20, v21) │
00:05:48 #23638 [Verbose] > │ and closure139 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 │
00:05:48 #23639 [Verbose] > │ : float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float * │
00:05:48 #23640 [Verbose] > │ float * float) = │
00:05:48 #23641 [Verbose] > │ let v9 : float = v2 + -0.65 │
00:05:48 #23642 [Verbose] > │ let v10 : float = v9 * v9 │
00:05:48 #23643 [Verbose] > │ let v11 : float = v3 * v3 │
00:05:48 #23644 [Verbose] > │ let v12 : float = v10 + v11 │
00:05:48 #23645 [Verbose] > │ let v13 : float = v4 * v4 │
00:05:48 #23646 [Verbose] > │ let v14 : float = v12 + v13 │
00:05:48 #23647 [Verbose] > │ let v15 : float = sqrt v14 │
00:05:48 #23648 [Verbose] > │ let v16 : float = -5384.0 * v15 │
00:05:48 #23649 [Verbose] > │ let v17 : float = v16 * v9 │
00:05:48 #23650 [Verbose] > │ let v18 : float = v16 * v3 │
00:05:48 #23651 [Verbose] > │ let v19 : float = v16 * v4 │
00:05:48 #23652 [Verbose] > │ let v20 : float = v17 / v15 │
00:05:48 #23653 [Verbose] > │ let v21 : float = v18 / v15 │
00:05:48 #23654 [Verbose] > │ let v22 : float = v19 / v15 │
00:05:48 #23655 [Verbose] > │ struct (v20, v21, v22) │
00:05:48 #23656 [Verbose] > │ and closure141 (v0 : float, v1 : float, v2 : float, v3 : float, v4 : float, │
00:05:49 #23657 [Verbose] > │ v5 : float, v6 : float, v7 : float, v8 : float) struct (v9 : float, v10 : │
00:05:49 #23658 [Verbose] > │ float, v11 : float, v12 : float, v13 : float, v14 : float, v15 : float, v16 │
00:05:49 #23659 [Verbose] > │ : float, v17 : float) : struct (float * float * float) = │
00:05:49 #23660 [Verbose] > │ let v18 : float = -1.0 * v2 │
00:05:49 #23661 [Verbose] > │ let v19 : float = -1.0 * v3 │
00:05:49 #23662 [Verbose] > │ let v20 : float = -1.0 * v4 │
00:05:49 #23663 [Verbose] > │ let v21 : float = v11 + v18 │
00:05:49 #23664 [Verbose] > │ let v22 : float = v12 + v19 │
00:05:49 #23665 [Verbose] > │ let v23 : float = v13 + v20 │
00:05:49 #23666 [Verbose] > │ let v24 : float = v21 * v21 │
00:05:49 #23667 [Verbose] > │ let v25 : float = v22 * v22 │
00:05:49 #23668 [Verbose] > │ let v26 : float = v24 + v25 │
00:05:49 #23669 [Verbose] > │ let v27 : float = v23 * v23 │
00:05:49 #23670 [Verbose] > │ let v28 : float = v26 + v27 │
00:05:49 #23671 [Verbose] > │ let v29 : float = sqrt v28 │
00:05:49 #23672 [Verbose] > │ let v30 : float = -5384.0 * v29 │
00:05:49 #23673 [Verbose] > │ let v31 : float = v30 * v21 │
00:05:49 #23674 [Verbose] > │ let v32 : float = v30 * v22 │
00:05:49 #23675 [Verbose] > │ let v33 : float = v30 * v23 │
00:05:49 #23676 [Verbose] > │ let v34 : float = v31 / v29 │
00:05:49 #23677 [Verbose] > │ let v35 : float = v32 / v29 │
00:05:49 #23678 [Verbose] > │ let v36 : float = v33 / v29 │
00:05:49 #23679 [Verbose] > │ struct (v34, v35, v36) │
00:05:49 #23680 [Verbose] > │ and closure140 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 │
00:05:49 #23681 [Verbose] > │ : float, v5 : float, v6 : float, v7 : float, v8 : float) : (struct (float * │
00:05:49 #23682 [Verbose] > │ float * float * float * float * float * float * float * float) -> struct │
00:05:49 #23683 [Verbose] > │ (float * float * float)) = │
00:05:49 #23684 [Verbose] > │ closure141(v0, v1, v2, v3, v4, v5, v6, v7, v8) │
00:05:49 #23685 [Verbose] > │ and method4 () : UH4 = │
00:05:49 #23686 [Verbose] > │ let v0 : (struct (float * float * float * float * float * float * float │
00:05:49 #23687 [Verbose] > │ * float * float) -> struct (float * float * float)) = closure138() │
00:05:49 #23688 [Verbose] > │ let v1 : US1 = US1_0(0, v0) │
00:05:49 #23689 [Verbose] > │ let v2 : (struct (float * float * float * float * float * float * float │
00:05:49 #23690 [Verbose] > │ * float * float) -> struct (float * float * float)) = closure139() │
00:05:49 #23691 [Verbose] > │ let v3 : US1 = US1_0(63, v2) │
00:05:49 #23692 [Verbose] > │ let v4 : (struct (float * float * float * float * float * float * float │
00:05:49 #23693 [Verbose] > │ * float * float) -> (struct (float * float * float * float * float * float * │
00:05:49 #23694 [Verbose] > │ float * float * float) -> struct (float * float * float))) = closure140() │
00:05:49 #23695 [Verbose] > │ let v5 : US1 = US1_1(0, 1, v4) │
00:05:49 #23696 [Verbose] > │ let v6 : US1 = US1_1(1, 2, v4) │
00:05:49 #23697 [Verbose] > │ let v7 : US1 = US1_1(2, 3, v4) │
00:05:49 #23698 [Verbose] > │ let v8 : US1 = US1_1(3, 4, v4) │
00:05:49 #23699 [Verbose] > │ let v9 : US1 = US1_1(4, 5, v4) │
00:05:49 #23700 [Verbose] > │ let v10 : US1 = US1_1(5, 6, v4) │
00:05:49 #23701 [Verbose] > │ let v11 : US1 = US1_1(6, 7, v4) │
00:05:49 #23702 [Verbose] > │ let v12 : US1 = US1_1(7, 8, v4) │
00:05:49 #23703 [Verbose] > │ let v13 : US1 = US1_1(8, 9, v4) │
00:05:49 #23704 [Verbose] > │ let v14 : US1 = US1_1(9, 10, v4) │
00:05:49 #23705 [Verbose] > │ let v15 : US1 = US1_1(10, 11, v4) │
00:05:49 #23706 [Verbose] > │ let v16 : US1 = US1_1(11, 12, v4) │
00:05:49 #23707 [Verbose] > │ let v17 : US1 = US1_1(12, 13, v4) │
00:05:49 #23708 [Verbose] > │ let v18 : US1 = US1_1(13, 14, v4) │
00:05:49 #23709 [Verbose] > │ let v19 : US1 = US1_1(14, 15, v4) │
00:05:49 #23710 [Verbose] > │ let v20 : US1 = US1_1(15, 16, v4) │
00:05:49 #23711 [Verbose] > │ let v21 : US1 = US1_1(16, 17, v4) │
00:05:49 #23712 [Verbose] > │ let v22 : US1 = US1_1(17, 18, v4) │
00:05:49 #23713 [Verbose] > │ let v23 : US1 = US1_1(18, 19, v4) │
00:05:49 #23714 [Verbose] > │ let v24 : US1 = US1_1(19, 20, v4) │
00:05:49 #23715 [Verbose] > │ let v25 : US1 = US1_1(20, 21, v4) │
00:05:49 #23716 [Verbose] > │ let v26 : US1 = US1_1(21, 22, v4) │
00:05:49 #23717 [Verbose] > │ let v27 : US1 = US1_1(22, 23, v4) │
00:05:49 #23718 [Verbose] > │ let v28 : US1 = US1_1(23, 24, v4) │
00:05:49 #23719 [Verbose] > │ let v29 : US1 = US1_1(24, 25, v4) │
00:05:49 #23720 [Verbose] > │ let v30 : US1 = US1_1(25, 26, v4) │
00:05:49 #23721 [Verbose] > │ let v31 : US1 = US1_1(26, 27, v4) │
00:05:49 #23722 [Verbose] > │ let v32 : US1 = US1_1(27, 28, v4) │
00:05:49 #23723 [Verbose] > │ let v33 : US1 = US1_1(28, 29, v4) │
00:05:49 #23724 [Verbose] > │ let v34 : US1 = US1_1(29, 30, v4) │
00:05:49 #23725 [Verbose] > │ let v35 : US1 = US1_1(30, 31, v4) │
00:05:49 #23726 [Verbose] > │ let v36 : US1 = US1_1(31, 32, v4) │
00:05:49 #23727 [Verbose] > │ let v37 : US1 = US1_1(32, 33, v4) │
00:05:49 #23728 [Verbose] > │ let v38 : US1 = US1_1(33, 34, v4) │
00:05:49 #23729 [Verbose] > │ let v39 : US1 = US1_1(34, 35, v4) │
00:05:49 #23730 [Verbose] > │ let v40 : US1 = US1_1(35, 36, v4) │
00:05:49 #23731 [Verbose] > │ let v41 : US1 = US1_1(36, 37, v4) │
00:05:49 #23732 [Verbose] > │ let v42 : US1 = US1_1(37, 38, v4) │
00:05:49 #23733 [Verbose] > │ let v43 : US1 = US1_1(38, 39, v4) │
00:05:49 #23734 [Verbose] > │ let v44 : US1 = US1_1(39, 40, v4) │
00:05:49 #23735 [Verbose] > │ let v45 : US1 = US1_1(40, 41, v4) │
00:05:49 #23736 [Verbose] > │ let v46 : US1 = US1_1(41, 42, v4) │
00:05:49 #23737 [Verbose] > │ let v47 : US1 = US1_1(42, 43, v4) │
00:05:49 #23738 [Verbose] > │ let v48 : US1 = US1_1(43, 44, v4) │
00:05:49 #23739 [Verbose] > │ let v49 : US1 = US1_1(44, 45, v4) │
00:05:49 #23740 [Verbose] > │ let v50 : US1 = US1_1(45, 46, v4) │
00:05:49 #23741 [Verbose] > │ let v51 : US1 = US1_1(46, 47, v4) │
00:05:49 #23742 [Verbose] > │ let v52 : US1 = US1_1(47, 48, v4) │
00:05:49 #23743 [Verbose] > │ let v53 : US1 = US1_1(48, 49, v4) │
00:05:49 #23744 [Verbose] > │ let v54 : US1 = US1_1(49, 50, v4) │
00:05:49 #23745 [Verbose] > │ let v55 : US1 = US1_1(50, 51, v4) │
00:05:49 #23746 [Verbose] > │ let v56 : US1 = US1_1(51, 52, v4) │
00:05:49 #23747 [Verbose] > │ let v57 : US1 = US1_1(52, 53, v4) │
00:05:49 #23748 [Verbose] > │ let v58 : US1 = US1_1(53, 54, v4) │
00:05:49 #23749 [Verbose] > │ let v59 : US1 = US1_1(54, 55, v4) │
00:05:49 #23750 [Verbose] > │ let v60 : US1 = US1_1(55, 56, v4) │
00:05:49 #23751 [Verbose] > │ let v61 : US1 = US1_1(56, 57, v4) │
00:05:49 #23752 [Verbose] > │ let v62 : US1 = US1_1(57, 58, v4) │
00:05:49 #23753 [Verbose] > │ let v63 : US1 = US1_1(58, 59, v4) │
00:05:49 #23754 [Verbose] > │ let v64 : US1 = US1_1(59, 60, v4) │
00:05:49 #23755 [Verbose] > │ let v65 : UH4 = UH4_1 │
00:05:49 #23756 [Verbose] > │ let v66 : UH4 = UH4_0(v64, v65) │
00:05:49 #23757 [Verbose] > │ let v67 : UH4 = UH4_0(v63, v66) │
00:05:49 #23758 [Verbose] > │ let v68 : UH4 = UH4_0(v62, v67) │
00:05:49 #23759 [Verbose] > │ let v69 : UH4 = UH4_0(v61, v68) │
00:05:49 #23760 [Verbose] > │ let v70 : UH4 = UH4_0(v60, v69) │
00:05:49 #23761 [Verbose] > │ let v71 : UH4 = UH4_0(v59, v70) │
00:05:49 #23762 [Verbose] > │ let v72 : UH4 = UH4_0(v58, v71) │
00:05:49 #23763 [Verbose] > │ let v73 : UH4 = UH4_0(v57, v72) │
00:05:49 #23764 [Verbose] > │ let v74 : UH4 = UH4_0(v56, v73) │
00:05:49 #23765 [Verbose] > │ let v75 : UH4 = UH4_0(v55, v74) │
00:05:49 #23766 [Verbose] > │ let v76 : UH4 = UH4_0(v54, v75) │
00:05:49 #23767 [Verbose] > │ let v77 : UH4 = UH4_0(v53, v76) │
00:05:49 #23768 [Verbose] > │ let v78 : UH4 = UH4_0(v52, v77) │
00:05:49 #23769 [Verbose] > │ let v79 : UH4 = UH4_0(v51, v78) │
00:05:49 #23770 [Verbose] > │ let v80 : UH4 = UH4_0(v50, v79) │
00:05:49 #23771 [Verbose] > │ let v81 : UH4 = UH4_0(v49, v80) │
00:05:49 #23772 [Verbose] > │ let v82 : UH4 = UH4_0(v48, v81) │
00:05:49 #23773 [Verbose] > │ let v83 : UH4 = UH4_0(v47, v82) │
00:05:49 #23774 [Verbose] > │ let v84 : UH4 = UH4_0(v46, v83) │
00:05:49 #23775 [Verbose] > │ let v85 : UH4 = UH4_0(v45, v84) │
00:05:49 #23776 [Verbose] > │ let v86 : UH4 = UH4_0(v44, v85) │
00:05:49 #23777 [Verbose] > │ let v87 : UH4 = UH4_0(v43, v86) │
00:05:49 #23778 [Verbose] > │ let v88 : UH4 = UH4_0(v42, v87) │
00:05:49 #23779 [Verbose] > │ let v89 : UH4 = UH4_0(v41, v88) │
00:05:49 #23780 [Verbose] > │ let v90 : UH4 = UH4_0(v40, v89) │
00:05:49 #23781 [Verbose] > │ let v91 : UH4 = UH4_0(v39, v90) │
00:05:49 #23782 [Verbose] > │ let v92 : UH4 = UH4_0(v38, v91) │
00:05:49 #23783 [Verbose] > │ let v93 : UH4 = UH4_0(v37, v92) │
00:05:49 #23784 [Verbose] > │ let v94 : UH4 = UH4_0(v36, v93) │
00:05:49 #23785 [Verbose] > │ let v95 : UH4 = UH4_0(v35, v94) │
00:05:49 #23786 [Verbose] > │ let v96 : UH4 = UH4_0(v34, v95) │
00:05:49 #23787 [Verbose] > │ let v97 : UH4 = UH4_0(v33, v96) │
00:05:49 #23788 [Verbose] > │ let v98 : UH4 = UH4_0(v32, v97) │
00:05:49 #23789 [Verbose] > │ let v99 : UH4 = UH4_0(v31, v98) │
00:05:49 #23790 [Verbose] > │ let v100 : UH4 = UH4_0(v30, v99) │
00:05:49 #23791 [Verbose] > │ let v101 : UH4 = UH4_0(v29, v100) │
00:05:49 #23792 [Verbose] > │ let v102 : UH4 = UH4_0(v28, v101) │
00:05:49 #23793 [Verbose] > │ let v103 : UH4 = UH4_0(v27, v102) │
00:05:49 #23794 [Verbose] > │ let v104 : UH4 = UH4_0(v26, v103) │
00:05:49 #23795 [Verbose] > │ let v105 : UH4 = UH4_0(v25, v104) │
00:05:49 #23796 [Verbose] > │ let v106 : UH4 = UH4_0(v24, v105) │
00:05:49 #23797 [Verbose] > │ let v107 : UH4 = UH4_0(v23, v106) │
00:05:49 #23798 [Verbose] > │ let v108 : UH4 = UH4_0(v22, v107) │
00:05:49 #23799 [Verbose] > │ let v109 : UH4 = UH4_0(v21, v108) │
00:05:49 #23800 [Verbose] > │ let v110 : UH4 = UH4_0(v20, v109) │
00:05:49 #23801 [Verbose] > │ let v111 : UH4 = UH4_0(v19, v110) │
00:05:49 #23802 [Verbose] > │ let v112 : UH4 = UH4_0(v18, v111) │
00:05:49 #23803 [Verbose] > │ let v113 : UH4 = UH4_0(v17, v112) │
00:05:49 #23804 [Verbose] > │ let v114 : UH4 = UH4_0(v16, v113) │
00:05:49 #23805 [Verbose] > │ let v115 : UH4 = UH4_0(v15, v114) │
00:05:49 #23806 [Verbose] > │ let v116 : UH4 = UH4_0(v14, v115) │
00:05:49 #23807 [Verbose] > │ let v117 : UH4 = UH4_0(v13, v116) │
00:05:49 #23808 [Verbose] > │ let v118 : UH4 = UH4_0(v12, v117) │
00:05:49 #23809 [Verbose] > │ let v119 : UH4 = UH4_0(v11, v118) │
00:05:49 #23810 [Verbose] > │ let v120 : UH4 = UH4_0(v10, v119) │
00:05:49 #23811 [Verbose] > │ let v121 : UH4 = UH4_0(v9, v120) │
00:05:49 #23812 [Verbose] > │ let v122 : UH4 = UH4_0(v8, v121) │
00:05:49 #23813 [Verbose] > │ let v123 : UH4 = UH4_0(v7, v122) │
00:05:49 #23814 [Verbose] > │ let v124 : UH4 = UH4_0(v6, v123) │
00:05:49 #23815 [Verbose] > │ let v125 : UH4 = UH4_0(v5, v124) │
00:05:49 #23816 [Verbose] > │ let v126 : UH4 = UH4_0(v3, v125) │
00:05:49 #23817 [Verbose] > │ UH4_0(v1, v126) │
00:05:49 #23818 [Verbose] > │ and closure143 (v0 : UH5) () : UH5 = │
00:05:49 #23819 [Verbose] > │ v0 │
00:05:49 #23820 [Verbose] > │ and method5 (v0 : UH1, v1 : UH5, v2 : int32) : struct (UH5 * int32) = │
00:05:49 #23821 [Verbose] > │ match v0 with │
00:05:49 #23822 [Verbose] > │ | UH1_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* StreamCons *) │
00:05:49 #23823 [Verbose] > │ let v13 : int32 = v2 + 1 │
00:05:49 #23824 [Verbose] > │ let v14 : UH1 = v12 () │
00:05:49 #23825 [Verbose] > │ let v15 : (unit -> UH5) = closure143(v1) │
00:05:49 #23826 [Verbose] > │ let v16 : UH5 = UH5_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v15) │
00:05:49 #23827 [Verbose] > │ method5(v14, v16, v13) │
00:05:49 #23828 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:05:49 #23829 [Verbose] > │ struct (v1, v2) │
00:05:49 #23830 [Verbose] > │ and closure144 (v0 : UH5) () : UH5 = │
00:05:49 #23831 [Verbose] > │ v0 │
00:05:49 #23832 [Verbose] > │ and method6 (v0 : UH5, v1 : UH5) : UH5 = │
00:05:49 #23833 [Verbose] > │ match v0 with │
00:05:49 #23834 [Verbose] > │ | UH5_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* StreamCons │
00:05:49 #23835 [Verbose] > │ *) │
00:05:49 #23836 [Verbose] > │ let v13 : UH5 = v12 () │
00:05:49 #23837 [Verbose] > │ let v14 : (unit -> UH5) = closure144(v1) │
00:05:49 #23838 [Verbose] > │ let v15 : UH5 = UH5_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v14) │
00:05:49 #23839 [Verbose] > │ method6(v13, v15) │
00:05:49 #23840 [Verbose] > │ | UH5_1 -> (* StreamNil *) │
00:05:49 #23841 [Verbose] > │ v1 │
00:05:49 #23842 [Verbose] > │ and closure145 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 │
00:05:49 #23843 [Verbose] > │ : float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float * │
00:05:49 #23844 [Verbose] > │ float * float) = │
00:05:49 #23845 [Verbose] > │ struct (0.0, 0.0, 0.0) │
00:05:49 #23846 [Verbose] > │ and method9 (v0 : int32, v1 : UH1) : US3 = │
00:05:49 #23847 [Verbose] > │ match v1 with │
00:05:49 #23848 [Verbose] > │ | UH1_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* StreamCons *) │
00:05:49 #23849 [Verbose] > │ let v12 : bool = v0 <= 0 │
00:05:49 #23850 [Verbose] > │ if v12 then │
00:05:49 #23851 [Verbose] > │ US3_1(v2, v3, v4, v5, v6, v7, v8, v9, v10) │
00:05:49 #23852 [Verbose] > │ else │
00:05:49 #23853 [Verbose] > │ let v14 : int32 = v0 - 1 │
00:05:49 #23854 [Verbose] > │ let v15 : UH1 = v11 () │
00:05:49 #23855 [Verbose] > │ method9(v14, v15) │
00:05:49 #23856 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:05:49 #23857 [Verbose] > │ US3_0 │
00:05:49 #23858 [Verbose] > │ and closure146 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 │
00:05:49 #23859 [Verbose] > │ : float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float * │
00:05:49 #23860 [Verbose] > │ float * float) = │
00:05:49 #23861 [Verbose] > │ struct (0.0, 0.0, 0.0) │
00:05:49 #23862 [Verbose] > │ and method8 (v0 : int32, v1 : UH1, v2 : UH4, v3 : UH6) : UH6 = │
00:05:49 #23863 [Verbose] > │ match v2 with │
00:05:49 #23864 [Verbose] > │ | UH4_0(v4, v5) -> (* Cons *) │
00:05:49 #23865 [Verbose] > │ let v6 : UH6 = method8(v0, v1, v5, v3) │
00:05:49 #23866 [Verbose] > │ let v55 : (struct (float * float * float * float * float * float * │
00:05:49 #23867 [Verbose] > │ float * float * float) -> struct (float * float * float)) = │
00:05:49 #23868 [Verbose] > │ match v4 with │
00:05:49 #23869 [Verbose] > │ | US1_0(v7, v8) -> (* ExternalForce *) │
00:05:49 #23870 [Verbose] > │ let v9 : bool = v0 = v7 │
00:05:49 #23871 [Verbose] > │ if v9 then │
00:05:49 #23872 [Verbose] > │ v8 │
00:05:49 #23873 [Verbose] > │ else │
00:05:49 #23874 [Verbose] > │ closure145() │
00:05:49 #23875 [Verbose] > │ | US1_1(v12, v13, v14) -> (* InternalForce *) │
00:05:49 #23876 [Verbose] > │ let v15 : bool = v0 = v12 │
00:05:49 #23877 [Verbose] > │ let v49 : US2 = │
00:05:49 #23878 [Verbose] > │ if v15 then │
00:05:49 #23879 [Verbose] > │ let v16 : US3 = method9(v13, v1) │
00:05:49 #23880 [Verbose] > │ match v16 with │
00:05:49 #23881 [Verbose] > │ | US3_0 -> (* None *) │
00:05:49 #23882 [Verbose] > │ US2_0 │
00:05:49 #23883 [Verbose] > │ | US3_1(v17, v18, v19, v20, v21, v22, v23, v24, v25) │
00:05:49 #23884 [Verbose] > │ -> (* Some *) │
00:05:49 #23885 [Verbose] > │ let v26 : (struct (float * float * float * float │
00:05:49 #23886 [Verbose] > │ * float * float * float * float * float) -> struct (float * float * float)) │
00:05:49 #23887 [Verbose] > │ = v14 struct (v17, v18, v19, v20, v21, v22, v23, v24, v25) │
00:05:49 #23888 [Verbose] > │ US2_1(v26) │
00:05:49 #23889 [Verbose] > │ else │
00:05:49 #23890 [Verbose] > │ let v31 : bool = v0 = v13 │
00:05:49 #23891 [Verbose] > │ if v31 then │
00:05:49 #23892 [Verbose] > │ let v32 : US3 = method9(v12, v1) │
00:05:49 #23893 [Verbose] > │ match v32 with │
00:05:49 #23894 [Verbose] > │ | US3_0 -> (* None *) │
00:05:49 #23895 [Verbose] > │ US2_0 │
00:05:49 #23896 [Verbose] > │ | US3_1(v33, v34, v35, v36, v37, v38, v39, v40, │
00:05:49 #23897 [Verbose] > │ v41) -> (* Some *) │
00:05:49 #23898 [Verbose] > │ let v42 : (struct (float * float * float * │
00:05:49 #23899 [Verbose] > │ float * float * float * float * float * float) -> struct (float * float * │
00:05:49 #23900 [Verbose] > │ float)) = v14 struct (v33, v34, v35, v36, v37, v38, v39, v40, v41) │
00:05:49 #23901 [Verbose] > │ US2_1(v42) │
00:05:49 #23902 [Verbose] > │ else │
00:05:49 #23903 [Verbose] > │ US2_0 │
00:05:49 #23904 [Verbose] > │ match v49 with │
00:05:49 #23905 [Verbose] > │ | US2_0 -> (* None *) │
00:05:49 #23906 [Verbose] > │ closure146() │
00:05:49 #23907 [Verbose] > │ | US2_1(v50) -> (* Some *) │
00:05:49 #23908 [Verbose] > │ v50 │
00:05:49 #23909 [Verbose] > │ UH6_0(v55, v6) │
00:05:49 #23910 [Verbose] > │ | UH4_1 -> (* Nil *) │
00:05:49 #23911 [Verbose] > │ v3 │
00:05:49 #23912 [Verbose] > │ and method10 (v0 : float, v1 : float, v2 : float, v3 : float, v4 : float, v5 │
00:05:49 #23913 [Verbose] > │ : float, v6 : float, v7 : float, v8 : float, v9 : UH6, v10 : UH7) : UH7 = │
00:05:49 #23914 [Verbose] > │ match v9 with │
00:05:49 #23915 [Verbose] > │ | UH6_0(v11, v12) -> (* Cons *) │
00:05:49 #23916 [Verbose] > │ let v13 : UH7 = method10(v0, v1, v2, v3, v4, v5, v6, v7, v8, v12, │
00:05:49 #23917 [Verbose] > │ v10) │
00:05:49 #23918 [Verbose] > │ let struct (v14 : float, v15 : float, v16 : float) = v11 struct (v0, │
00:05:49 #23919 [Verbose] > │ v1, v2, v3, v4, v5, v6, v7, v8) │
00:05:49 #23920 [Verbose] > │ UH7_0(v14, v15, v16, v13) │
00:05:49 #23921 [Verbose] > │ | UH6_1 -> (* Nil *) │
00:05:49 #23922 [Verbose] > │ v10 │
00:05:49 #23923 [Verbose] > │ and method11 (v0 : UH7, v1 : float, v2 : float, v3 : float) : struct (float │
00:05:49 #23924 [Verbose] > │ * float * float) = │
00:05:49 #23925 [Verbose] > │ match v0 with │
00:05:49 #23926 [Verbose] > │ | UH7_0(v4, v5, v6, v7) -> (* Cons *) │
00:05:49 #23927 [Verbose] > │ let v8 : float = v1 + v4 │
00:05:49 #23928 [Verbose] > │ let v9 : float = v2 + v5 │
00:05:49 #23929 [Verbose] > │ let v10 : float = v3 + v6 │
00:05:49 #23930 [Verbose] > │ method11(v7, v8, v9, v10) │
00:05:49 #23931 [Verbose] > │ | UH7_1 -> (* Nil *) │
00:05:49 #23932 [Verbose] > │ struct (v1, v2, v3) │
00:05:49 #23933 [Verbose] > │ and closure147 (v0 : UH3) () : UH3 = │
00:05:49 #23934 [Verbose] > │ v0 │
00:05:49 #23935 [Verbose] > │ and method7 (v0 : UH4, v1 : UH1, v2 : UH5, v3 : UH3) : UH3 = │
00:05:49 #23936 [Verbose] > │ match v2 with │
00:05:49 #23937 [Verbose] > │ | UH5_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) -> (* │
00:05:49 #23938 [Verbose] > │ StreamCons *) │
00:05:49 #23939 [Verbose] > │ let v15 : UH5 = v14 () │
00:05:49 #23940 [Verbose] > │ let v16 : UH3 = method7(v0, v1, v15, v3) │
00:05:49 #23941 [Verbose] > │ let v17 : UH6 = UH6_1 │
00:05:49 #23942 [Verbose] > │ let v18 : UH6 = method8(v4, v1, v0, v17) │
00:05:49 #23943 [Verbose] > │ let v19 : UH7 = UH7_1 │
00:05:49 #23944 [Verbose] > │ let v20 : UH7 = method10(v5, v6, v7, v8, v9, v10, v11, v12, v13, │
00:05:49 #23945 [Verbose] > │ v18, v19) │
00:05:49 #23946 [Verbose] > │ let v21 : float = 0.0 │
00:05:49 #23947 [Verbose] > │ let v22 : float = 0.0 │
00:05:49 #23948 [Verbose] > │ let v23 : float = 0.0 │
00:05:49 #23949 [Verbose] > │ let struct (v24 : float, v25 : float, v26 : float) = method11(v20, │
00:05:49 #23950 [Verbose] > │ v21, v22, v23) │
00:05:49 #23951 [Verbose] > │ let v27 : float = v24 / v6 │
00:05:49 #23952 [Verbose] > │ let v28 : float = v25 / v6 │
00:05:49 #23953 [Verbose] > │ let v29 : float = v26 / v6 │
00:05:49 #23954 [Verbose] > │ let v30 : (unit -> UH3) = closure147(v16) │
00:05:49 #23955 [Verbose] > │ UH3_0(0.0, 0.0, v11, v12, v13, 1.0, v27, v28, v29, v30) │
00:05:49 #23956 [Verbose] > │ | UH5_1 -> (* StreamNil *) │
00:05:49 #23957 [Verbose] > │ v3 │
00:05:49 #23958 [Verbose] > │ and closure142 (v0 : UH4) (v1 : UH1) : UH3 = │
00:05:49 #23959 [Verbose] > │ let v2 : UH5 = UH5_1 │
00:05:49 #23960 [Verbose] > │ let v3 : int32 = 0 │
00:05:49 #23961 [Verbose] > │ let struct (v4 : UH5, v5 : int32) = method5(v1, v2, v3) │
00:05:49 #23962 [Verbose] > │ let v6 : UH5 = UH5_1 │
00:05:49 #23963 [Verbose] > │ let v7 : UH5 = method6(v4, v6) │
00:05:49 #23964 [Verbose] > │ let v8 : UH3 = UH3_1 │
00:05:49 #23965 [Verbose] > │ let v9 : UH3 = method7(v0, v1, v7, v8) │
00:05:49 #23966 [Verbose] > │ v9 │
00:05:49 #23967 [Verbose] > │ and closure148 (v0 : (UH1 -> UH1), v1 : UH1, v2 : UH1) () : UH8 = │
00:05:49 #23968 [Verbose] > │ let v3 : UH1 = v0 v2 │
00:05:49 #23969 [Verbose] > │ let v4 : (unit -> UH8) = closure148(v0, v1, v3) │
00:05:49 #23970 [Verbose] > │ UH8_0(v2, v4) │
00:05:49 #23971 [Verbose] > │ and method12 (v0 : float, v1 : UH8) : US4 = │
00:05:49 #23972 [Verbose] > │ match v1 with │
00:05:49 #23973 [Verbose] > │ | UH8_0(v2, v3) -> (* StreamCons *) │
00:05:49 #23974 [Verbose] > │ let v4 : bool = v0 <= 0.0 │
00:05:49 #23975 [Verbose] > │ if v4 then │
00:05:49 #23976 [Verbose] > │ US4_1(v2) │
00:05:49 #23977 [Verbose] > │ else │
00:05:49 #23978 [Verbose] > │ let v6 : float = v0 - 1.0 │
00:05:49 #23979 [Verbose] > │ let v7 : UH8 = v3 () │
00:05:49 #23980 [Verbose] > │ method12(v6, v7) │
00:05:49 #23981 [Verbose] > │ | UH8_1 -> (* StreamNil *) │
00:05:49 #23982 [Verbose] > │ US4_0 │
00:05:49 #23983 [Verbose] > │ and closure149 (v0 : UH9) () : UH9 = │
00:05:49 #23984 [Verbose] > │ v0 │
00:05:49 #23985 [Verbose] > │ and method13 (v0 : UH1, v1 : UH9) : UH9 = │
00:05:49 #23986 [Verbose] > │ match v0 with │
00:05:49 #23987 [Verbose] > │ | UH1_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* StreamCons *) │
00:05:49 #23988 [Verbose] > │ let v12 : UH1 = v11 () │
00:05:49 #23989 [Verbose] > │ let v13 : UH9 = method13(v12, v1) │
00:05:49 #23990 [Verbose] > │ let v14 : (unit -> UH9) = closure149(v13) │
00:05:49 #23991 [Verbose] > │ UH9_0(v4, v5, v6, v14) │
00:05:49 #23992 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:05:49 #23993 [Verbose] > │ v1 │
00:05:49 #23994 [Verbose] > │ and method14 (v0 : UH9, v1 : UH7) : UH7 = │
00:05:49 #23995 [Verbose] > │ match v0 with │
00:05:49 #23996 [Verbose] > │ | UH9_0(v2, v3, v4, v5) -> (* StreamCons *) │
00:05:49 #23997 [Verbose] > │ let v6 : UH9 = v5 () │
00:05:49 #23998 [Verbose] > │ let v7 : UH7 = method14(v6, v1) │
00:05:49 #23999 [Verbose] > │ UH7_0(v2, v3, v4, v7) │
00:05:49 #24000 [Verbose] > │ | UH9_1 -> (* StreamNil *) │
00:05:49 #24001 [Verbose] > │ v1 │
00:05:49 #24002 [Verbose] > │ and method15 (v0 : UH7, v1 : UH7) : UH7 = │
00:05:49 #24003 [Verbose] > │ match v0 with │
00:05:49 #24004 [Verbose] > │ | UH7_0(v2, v3, v4, v5) -> (* Cons *) │
00:05:49 #24005 [Verbose] > │ let v6 : UH7 = method15(v5, v1) │
00:05:49 #24006 [Verbose] > │ UH7_0(v2, v3, v4, v6) │
00:05:49 #24007 [Verbose] > │ | UH7_1 -> (* Nil *) │
00:05:49 #24008 [Verbose] > │ v1 │
00:05:49 #24009 [Verbose] > │ and method16 (v0 : UH7, v1 : UH10) : UH10 = │
00:05:49 #24010 [Verbose] > │ match v0 with │
00:05:49 #24011 [Verbose] > │ | UH7_0(v2, v3, v4, v5) -> (* Cons *) │
00:05:49 #24012 [Verbose] > │ let v6 : UH10 = method16(v5, v1) │
00:05:49 #24013 [Verbose] > │ UH10_0(v2, v3, v6) │
00:05:49 #24014 [Verbose] > │ | UH7_1 -> (* Nil *) │
00:05:49 #24015 [Verbose] > │ v1 │
00:05:49 #24016 [Verbose] > │ and closure150 (v0 : UH11) () : UH11 = │
00:05:49 #24017 [Verbose] > │ v0 │
00:05:49 #24018 [Verbose] > │ and method17 (v0 : UH10, v1 : UH11) : UH11 = │
00:05:49 #24019 [Verbose] > │ match v0 with │
00:05:49 #24020 [Verbose] > │ | UH10_0(v2, v3, v4) -> (* Cons *) │
00:05:49 #24021 [Verbose] > │ let v5 : UH11 = method17(v4, v1) │
00:05:49 #24022 [Verbose] > │ let v6 : (unit -> UH11) = closure150(v5) │
00:05:49 #24023 [Verbose] > │ UH11_0(v2, v3, v6) │
00:05:49 #24024 [Verbose] > │ | UH10_1 -> (* Nil *) │
00:05:49 #24025 [Verbose] > │ v1 │
00:05:49 #24026 [Verbose] > │ and closure151 (v0 : UH0) () : UH0 = │
00:05:49 #24027 [Verbose] > │ v0 │
00:05:49 #24028 [Verbose] > │ and closure152 (v0 : UH0) () : UH0 = │
00:05:49 #24029 [Verbose] > │ v0 │
00:05:49 #24030 [Verbose] > │ and method18 (v0 : UH11) : struct (UH0 * UH0) = │
00:05:49 #24031 [Verbose] > │ match v0 with │
00:05:49 #24032 [Verbose] > │ | UH11_0(v1, v2, v3) -> (* StreamCons *) │
00:05:49 #24033 [Verbose] > │ let v4 : UH11 = v3 () │
00:05:49 #24034 [Verbose] > │ let struct (v5 : UH0, v6 : UH0) = method18(v4) │
00:05:49 #24035 [Verbose] > │ let v7 : (unit -> UH0) = closure151(v5) │
00:05:49 #24036 [Verbose] > │ let v8 : UH0 = UH0_0(v1, v7) │
00:05:49 #24037 [Verbose] > │ let v9 : (unit -> UH0) = closure152(v6) │
00:05:49 #24038 [Verbose] > │ let v10 : UH0 = UH0_0(v2, v9) │
00:05:49 #24039 [Verbose] > │ struct (v8, v10) │
00:05:49 #24040 [Verbose] > │ | UH11_1 -> (* StreamNil *) │
00:05:49 #24041 [Verbose] > │ let v11 : UH0 = UH0_1 │
00:05:49 #24042 [Verbose] > │ let v12 : UH0 = UH0_1 │
00:05:49 #24043 [Verbose] > │ struct (v11, v12) │
00:05:49 #24044 [Verbose] > │ and method19 (v0 : UH0, v1 : UH12) : UH12 = │
00:05:49 #24045 [Verbose] > │ match v0 with │
00:05:49 #24046 [Verbose] > │ | UH0_0(v2, v3) -> (* StreamCons *) │
00:05:49 #24047 [Verbose] > │ let v4 : UH0 = v3 () │
00:05:49 #24048 [Verbose] > │ let v5 : UH12 = method19(v4, v1) │
00:05:49 #24049 [Verbose] > │ UH12_0(v2, v5) │
00:05:49 #24050 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:49 #24051 [Verbose] > │ v1 │
00:05:49 #24052 [Verbose] > │ and method21 (v0 : UH12, v1 : int32) : int32 = │
00:05:49 #24053 [Verbose] > │ match v0 with │
00:05:49 #24054 [Verbose] > │ | UH12_0(v2, v3) -> (* Cons *) │
00:05:49 #24055 [Verbose] > │ let v4 : int32 = v1 + 1 │
00:05:49 #24056 [Verbose] > │ method21(v3, v4) │
00:05:49 #24057 [Verbose] > │ | UH12_1 -> (* Nil *) │
00:05:49 #24058 [Verbose] > │ v1 │
00:05:49 #24059 [Verbose] > │ and method22 (v0 : (float []), v1 : UH12, v2 : int32) : int32 = │
00:05:49 #24060 [Verbose] > │ match v1 with │
00:05:49 #24061 [Verbose] > │ | UH12_0(v3, v4) -> (* Cons *) │
00:05:49 #24062 [Verbose] > │ v0.[int v2] <- v3 │
00:05:49 #24063 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:05:49 #24064 [Verbose] > │ method22(v0, v4, v5) │
00:05:49 #24065 [Verbose] > │ | UH12_1 -> (* Nil *) │
00:05:49 #24066 [Verbose] > │ v2 │
00:05:49 #24067 [Verbose] > │ and method20 (v0 : UH12) : (float []) = │
00:05:49 #24068 [Verbose] > │ let v1 : int32 = 0 │
00:05:49 #24069 [Verbose] > │ let v2 : int32 = method21(v0, v1) │
00:05:49 #24070 [Verbose] > │ let v3 : (float []) = Array.zeroCreate<float> (v2) │
00:05:49 #24071 [Verbose] > │ let v4 : int32 = 0 │
00:05:49 #24072 [Verbose] > │ let v5 : int32 = method22(v3, v0, v4) │
00:05:49 #24073 [Verbose] > │ v3 │
00:05:49 #24074 [Verbose] > │ and closure153 (v0 : UH2) () : UH2 = │
00:05:49 #24075 [Verbose] > │ v0 │
00:05:49 #24076 [Verbose] > │ and method1 (v0 : UH1, v1 : UH0, v2 : UH2) : UH2 = │
00:05:49 #24077 [Verbose] > │ match v1 with │
00:05:49 #24078 [Verbose] > │ | UH0_0(v3, v4) -> (* StreamCons *) │
00:05:49 #24079 [Verbose] > │ let v5 : UH0 = v4 () │
00:05:49 #24080 [Verbose] > │ let v6 : UH2 = method1(v0, v5, v2) │
00:05:49 #24081 [Verbose] > │ let v7 : ((UH1 -> UH3) -> (UH1 -> UH1)) = method2() │
00:05:49 #24082 [Verbose] > │ let v8 : UH4 = method4() │
00:05:49 #24083 [Verbose] > │ let v9 : (UH1 -> UH3) = closure142(v8) │
00:05:49 #24084 [Verbose] > │ let v10 : (UH1 -> UH1) = v7 v9 │
00:05:49 #24085 [Verbose] > │ let v11 : UH1 = v10 v0 │
00:05:49 #24086 [Verbose] > │ let v12 : (unit -> UH8) = closure148(v10, v0, v11) │
00:05:49 #24087 [Verbose] > │ let v13 : UH8 = UH8_0(v0, v12) │
00:05:49 #24088 [Verbose] > │ let v14 : US4 = method12(v3, v13) │
00:05:49 #24089 [Verbose] > │ let v18 : UH1 = │
00:05:49 #24090 [Verbose] > │ match v14 with │
00:05:49 #24091 [Verbose] > │ | US4_0 -> (* None *) │
00:05:49 #24092 [Verbose] > │ failwith<UH1> "Option does not have a value." │
00:05:49 #24093 [Verbose] > │ | US4_1(v15) -> (* Some *) │
00:05:49 #24094 [Verbose] > │ v15 │
00:05:49 #24095 [Verbose] > │ let v19 : UH9 = UH9_1 │
00:05:49 #24096 [Verbose] > │ let v20 : UH9 = method13(v18, v19) │
00:05:49 #24097 [Verbose] > │ let v21 : UH7 = UH7_1 │
00:05:49 #24098 [Verbose] > │ let v22 : UH7 = method14(v20, v21) │
00:05:49 #24099 [Verbose] > │ let v23 : float = 0.65 │
00:05:49 #24100 [Verbose] > │ let v24 : float = 0.0 │
00:05:49 #24101 [Verbose] > │ let v25 : float = 0.0 │
00:05:49 #24102 [Verbose] > │ let v26 : UH7 = UH7_1 │
00:05:49 #24103 [Verbose] > │ let v27 : UH7 = UH7_0(v23, v24, v25, v26) │
00:05:49 #24104 [Verbose] > │ let v28 : UH7 = method15(v22, v27) │
00:05:49 #24105 [Verbose] > │ let v29 : UH10 = UH10_1 │
00:05:49 #24106 [Verbose] > │ let v30 : UH10 = method16(v28, v29) │
00:05:49 #24107 [Verbose] > │ let v31 : UH11 = UH11_1 │
00:05:49 #24108 [Verbose] > │ let v32 : UH11 = method17(v30, v31) │
00:05:49 #24109 [Verbose] > │ let struct (v33 : UH0, v34 : UH0) = method18(v32) │
00:05:49 #24110 [Verbose] > │ let v35 : UH12 = UH12_1 │
00:05:49 #24111 [Verbose] > │ let v36 : UH12 = method19(v33, v35) │
00:05:49 #24112 [Verbose] > │ let v37 : float = 0.0 │
00:05:49 #24113 [Verbose] > │ let v38 : UH12 = UH12_0(v37, v36) │
00:05:49 #24114 [Verbose] > │ let v39 : (float []) = method20(v38) │
00:05:49 #24115 [Verbose] > │ let v40 : UH12 = UH12_1 │
00:05:49 #24116 [Verbose] > │ let v41 : UH12 = method19(v34, v40) │
00:05:49 #24117 [Verbose] > │ let v42 : float = 0.0 │
00:05:49 #24118 [Verbose] > │ let v43 : UH12 = UH12_0(v42, v41) │
00:05:49 #24119 [Verbose] > │ let v44 : (float []) = method20(v43) │
00:05:49 #24120 [Verbose] > │ let v45 : (unit -> UH2) = closure153(v6) │
00:05:49 #24121 [Verbose] > │ UH2_0(v39, v44, v45) │
00:05:49 #24122 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:49 #24123 [Verbose] > │ v2 │
00:05:49 #24124 [Verbose] > │ and closure154 (v0 : UH13) () : UH13 = │
00:05:49 #24125 [Verbose] > │ v0 │
00:05:49 #24126 [Verbose] > │ and method23 (v0 : UH2, v1 : UH13, v2 : int32) : struct (UH13 * int32) = │
00:05:49 #24127 [Verbose] > │ match v0 with │
00:05:49 #24128 [Verbose] > │ | UH2_0(v3, v4, v5) -> (* StreamCons *) │
00:05:49 #24129 [Verbose] > │ let v6 : int32 = v2 + 1 │
00:05:49 #24130 [Verbose] > │ let v7 : UH2 = v5 () │
00:05:49 #24131 [Verbose] > │ let v8 : (unit -> UH13) = closure154(v1) │
00:05:49 #24132 [Verbose] > │ let v9 : UH13 = UH13_0(v2, v3, v4, v8) │
00:05:49 #24133 [Verbose] > │ method23(v7, v9, v6) │
00:05:49 #24134 [Verbose] > │ | UH2_1 -> (* StreamNil *) │
00:05:49 #24135 [Verbose] > │ struct (v1, v2) │
00:05:49 #24136 [Verbose] > │ and closure155 (v0 : UH13) () : UH13 = │
00:05:49 #24137 [Verbose] > │ v0 │
00:05:49 #24138 [Verbose] > │ and method24 (v0 : UH13, v1 : UH13) : UH13 = │
00:05:49 #24139 [Verbose] > │ match v0 with │
00:05:49 #24140 [Verbose] > │ | UH13_0(v2, v3, v4, v5) -> (* StreamCons *) │
00:05:49 #24141 [Verbose] > │ let v6 : UH13 = v5 () │
00:05:49 #24142 [Verbose] > │ let v7 : (unit -> UH13) = closure155(v1) │
00:05:49 #24143 [Verbose] > │ let v8 : UH13 = UH13_0(v2, v3, v4, v7) │
00:05:49 #24144 [Verbose] > │ method24(v6, v8) │
00:05:49 #24145 [Verbose] > │ | UH13_1 -> (* StreamNil *) │
00:05:49 #24146 [Verbose] > │ v1 │
00:05:49 #24147 [Verbose] > │ and method26 (v0 : (struct (string * (float []) * (float [])) [])) : (struct │
00:05:49 #24148 [Verbose] > │ (string * (float []) * (float [])) []) = │
00:05:49 #24149 [Verbose] > │ v0 │
00:05:49 #24150 [Verbose] > │ and closure156 (v0 : UH14) () : UH14 = │
00:05:49 #24151 [Verbose] > │ v0 │
00:05:49 #24152 [Verbose] > │ and method25 (v0 : UH13, v1 : UH14) : UH14 = │
00:05:49 #24153 [Verbose] > │ match v0 with │
00:05:49 #24154 [Verbose] > │ | UH13_0(v2, v3, v4, v5) -> (* StreamCons *) │
00:05:49 #24155 [Verbose] > │ let v6 : UH13 = v5 () │
00:05:49 #24156 [Verbose] > │ let v7 : UH14 = method25(v6, v1) │
00:05:49 #24157 [Verbose] > │ let v8 : string = $"{v2}" │
00:05:49 #24158 [Verbose] > │ let v9 : (struct (string * (float []) * (float [])) []) = [|struct │
00:05:49 #24159 [Verbose] > │ (v8, v3, v4)|] │
00:05:49 #24160 [Verbose] > │ let v10 : (struct (string * (float []) * (float [])) []) = │
00:05:49 #24161 [Verbose] > │ method26(v9) │
00:05:49 #24162 [Verbose] > │ let v11 : string = "wave" │
00:05:49 #24163 [Verbose] > │ let v12 : string = "position (m)" │
00:05:49 #24164 [Verbose] > │ let v13 : string = "displacement (m)" │
00:05:49 #24165 [Verbose] > │ let v14 : (unit -> UH14) = closure156(v7) │
00:05:49 #24166 [Verbose] > │ UH14_0(v11, v12, v13, v10, v14) │
00:05:49 #24167 [Verbose] > │ | UH13_1 -> (* StreamNil *) │
00:05:49 #24168 [Verbose] > │ v1 │
00:05:49 #24169 [Verbose] > │ and method27 (v0 : UH14, v1 : UH15) : UH15 = │
00:05:49 #24170 [Verbose] > │ match v0 with │
00:05:49 #24171 [Verbose] > │ | UH14_0(v2, v3, v4, v5, v6) -> (* StreamCons *) │
00:05:49 #24172 [Verbose] > │ let v7 : UH14 = v6 () │
00:05:49 #24173 [Verbose] > │ let v8 : UH15 = method27(v7, v1) │
00:05:49 #24174 [Verbose] > │ UH15_0(v2, v3, v4, v5, v8) │
00:05:49 #24175 [Verbose] > │ | UH14_1 -> (* StreamNil *) │
00:05:49 #24176 [Verbose] > │ v1 │
00:05:49 #24177 [Verbose] > │ and method29 (v0 : UH15, v1 : int32) : int32 = │
00:05:49 #24178 [Verbose] > │ match v0 with │
00:05:49 #24179 [Verbose] > │ | UH15_0(v2, v3, v4, v5, v6) -> (* Cons *) │
00:05:49 #24180 [Verbose] > │ let v7 : int32 = v1 + 1 │
00:05:49 #24181 [Verbose] > │ method29(v6, v7) │
00:05:49 #24182 [Verbose] > │ | UH15_1 -> (* Nil *) │
00:05:49 #24183 [Verbose] > │ v1 │
00:05:49 #24184 [Verbose] > │ and method30 (v0 : (struct (string * string * string * (struct (string * │
00:05:49 #24185 [Verbose] > │ (float []) * (float [])) [])) []), v1 : UH15, v2 : int32) : int32 = │
00:05:49 #24186 [Verbose] > │ match v1 with │
00:05:49 #24187 [Verbose] > │ | UH15_0(v3, v4, v5, v6, v7) -> (* Cons *) │
00:05:49 #24188 [Verbose] > │ v0.[int v2] <- struct (v3, v4, v5, v6) │
00:05:49 #24189 [Verbose] > │ let v8 : int32 = v2 + 1 │
00:05:49 #24190 [Verbose] > │ method30(v0, v7, v8) │
00:05:49 #24191 [Verbose] > │ | UH15_1 -> (* Nil *) │
00:05:49 #24192 [Verbose] > │ v2 │
00:05:49 #24193 [Verbose] > │ and method28 (v0 : UH15) : (struct (string * string * string * (struct │
00:05:49 #24194 [Verbose] > │ (string * (float []) * (float [])) [])) []) = │
00:05:49 #24195 [Verbose] > │ let v1 : int32 = 0 │
00:05:49 #24196 [Verbose] > │ let v2 : int32 = method29(v0, v1) │
00:05:49 #24197 [Verbose] > │ let v3 : (struct (string * string * string * (struct (string * (float [ │
00:05:49 #24198 [Verbose] > │ ]) * (float [])) [])) []) = Array.zeroCreate<struct (string * string * │
00:05:49 #24199 [Verbose] > │ string * (struct (string * (float []) * (float [])) []))> (v2) │
00:05:49 #24200 [Verbose] > │ let v4 : int32 = 0 │
00:05:49 #24201 [Verbose] > │ let v5 : int32 = method30(v3, v0, v4) │
00:05:49 #24202 [Verbose] > │ v3 │
00:05:49 #24203 [Verbose] > │ and method0 () : (struct (string * string * string * (struct (string * │
00:05:49 #24204 [Verbose] > │ (float []) * (float [])) [])) []) = │
00:05:49 #24205 [Verbose] > │ let v0 : float = 0.0 │
00:05:49 #24206 [Verbose] > │ let v1 : (unit -> UH0) = closure0() │
00:05:49 #24207 [Verbose] > │ let v2 : UH0 = UH0_0(v0, v1) │
00:05:49 #24208 [Verbose] > │ let v3 : float = 0.0 │
00:05:49 #24209 [Verbose] > │ let v4 : float = 8.422578125E-06 │
00:05:49 #24210 [Verbose] > │ let v5 : float = 0.01 │
00:05:49 #24211 [Verbose] > │ let v6 : float = 0.0007224452478461068 │
00:05:49 #24212 [Verbose] > │ let v7 : float = 0.0 │
00:05:49 #24213 [Verbose] > │ let v8 : float = 0.0 │
00:05:49 #24214 [Verbose] > │ let v9 : float = 0.0 │
00:05:49 #24215 [Verbose] > │ let v10 : float = 0.0 │
00:05:49 #24216 [Verbose] > │ let v11 : float = 0.0 │
00:05:49 #24217 [Verbose] > │ let v12 : (unit -> UH1) = closure66() │
00:05:49 #24218 [Verbose] > │ let v13 : UH1 = UH1_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) │
00:05:49 #24219 [Verbose] > │ let v14 : UH2 = UH2_1 │
00:05:49 #24220 [Verbose] > │ let v15 : UH2 = method1(v13, v2, v14) │
00:05:49 #24221 [Verbose] > │ let v16 : UH13 = UH13_1 │
00:05:49 #24222 [Verbose] > │ let v17 : int32 = 0 │
00:05:49 #24223 [Verbose] > │ let struct (v18 : UH13, v19 : int32) = method23(v15, v16, v17) │
00:05:49 #24224 [Verbose] > │ let v20 : UH13 = UH13_1 │
00:05:49 #24225 [Verbose] > │ let v21 : UH13 = method24(v18, v20) │
00:05:49 #24226 [Verbose] > │ let v22 : UH14 = UH14_1 │
00:05:49 #24227 [Verbose] > │ let v23 : UH14 = method25(v21, v22) │
00:05:49 #24228 [Verbose] > │ let v24 : UH15 = UH15_1 │
00:05:49 #24229 [Verbose] > │ let v25 : UH15 = method27(v23, v24) │
00:05:49 #24230 [Verbose] > │ method28(v25) │
00:05:49 #24231 [Verbose] > │ method0() │
00:05:49 #24232 [Verbose] > │ │
00:05:49 #24233 [Verbose] > │ │
00:05:49 #24234 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:49 #24235 [Verbose] >
00:05:49 #24236 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:49 #24237 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:49 #24238 [Verbose] > │ ## end │
00:05:49 #24239 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:51 #24240 [Verbose] > [NbConvertApp] Converting notebook physics.dib.ipynb to html
00:05:51 #24241 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:05:51 #24242 [Verbose] > validate(nb)
00:05:51 #24243 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:05:51 #24244 [Verbose] > return _pygments_highlight(
00:05:54 #24245 [Verbose] > [NbConvertApp] Writing 2735847 bytes to physics.dib.html
00:05:55 #24246 [Debug] executeAsync / exitCode: 0 / output.Length: 581906
00:05:55 #24247 [Debug] main / executeCommand / exitCode: 0
00:00:00 #2 [Debug] writeDibCode / output: Spi / path: file_system.dib
00:00:00 #2 [Debug] writeDibCode / output: Spi / path: common.dib
00:00:00 #2 [Debug] writeDibCode / output: Spi / path: optionm'.dib
00:00:00 #2 [Debug] writeDibCode / output: Spi / path: testing.dib
00:00:00 #2 [Debug] writeDibCode / output: Spi / path: guid.dib
00:00:00 #2 [Debug] writeDibCode / output: Spi / path: console.dib
00:00:00 #2 [Debug] writeDibCode / output: Spi / path: math.dib
00:00:00 #2 [Debug] writeDibCode / output: Spi / path: date_time.dib
00:00:00 #4 [Debug] parseDibCode / output: Spi / file: common.dib
00:00:00 #10 [Debug] parseDibCode / output: Spi / file: testing.dib
00:00:00 #5 [Debug] parseDibCode / output: Spi / file: guid.dib
00:00:00 #9 [Debug] parseDibCode / output: Spi / file: date_time.dib
00:00:00 #7 [Debug] parseDibCode / output: Spi / file: math.dib
00:00:00 #8 [Debug] parseDibCode / output: Spi / file: optionm'.dib
00:00:00 #4 [Debug] parseDibCode / output: Spi / file: file_system.dib
00:00:00 #7 [Debug] parseDibCode / output: Spi / file: console.dib
00:00:00 #12 [Debug] writeDibCode / output: Spi / path: sm'.dib
00:00:00 #12 [Debug] writeDibCode / output: Spi / path: benchmark.dib
00:00:00 #13 [Debug] writeDibCode / output: Spi / path: seq.dib
00:00:00 #12 [Debug] writeDibCode / output: Spi / path: listm'.dib
00:00:00 #12 [Debug] writeDibCode / output: Spi / path: stream.dib
00:00:00 #12 [Debug] writeDibCode / output: Spi / path: am'.dib
00:00:00 #14 [Debug] parseDibCode / output: Spi / file: sm'.dib
00:00:00 #15 [Debug] parseDibCode / output: Spi / file: benchmark.dib
00:00:00 #17 [Debug] parseDibCode / output: Spi / file: listm'.dib
00:00:00 #18 [Debug] parseDibCode / output: Spi / file: stream.dib
00:00:00 #19 [Debug] parseDibCode / output: Spi / file: am'.dib
00:00:00 #16 [Debug] parseDibCode / output: Spi / file: seq.dib
00:00:00 #20 [Debug] writeDibCode / output: Spi / path: util.dib
00:00:00 #21 [Debug] parseDibCode / output: Spi / file: util.dib
00:00:00 #23 [Debug] writeDibCode / output: Spi / path: physics.dib
00:00:00 #22 [Debug] writeDibCode / output: Spi / path: rust.dib
00:00:00 #24 [Debug] parseDibCode / output: Spi / file: physics.dib
00:00:00 #25 [Debug] parseDibCode / output: Spi / file: rust.dib
00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60
00:00:00 #2 [Debug] runWithTimeoutChildAsync / timeout: 60
00:00:00 #3 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: [] / typeErrorCount: 0
00:00:00 #4 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: [] / typeErrorCount: 0
00:00:00 #5 [Debug] sendJson / port: 13805 / json: {"FileOpen":{"spiText":"// // # common\n\n// // ## types\n\nnominal any = $\u0022obj\u0022\nnominal disposable = $\u0022System.IDisposable\u0022\nnominal exn = $\u0022exn\u0022\nnominal unativeint = $\u0022unativeint\u0022\n\nlet array x = x\n\ninl unativeint forall t {int}. (n : t) : unativeint =\n $\u0022unativeint !n\u0022\n\n// // ## prototype\n\nprototype (~:\u003E) r : forall t. t -\u003E r\nprototype append t : t -\u003E t -\u003E t\nprototype of_string t : string -\u003E t\nprototype to_string t : t -\u003E string\n\n// // ## null\n\ninl null forall t. () : t =\n $\u0022null |\u003E unbox\u003C\u0060t\u003E\u0022\n\ninl i32 forall t. (x : t) : i32 =\n $\u0022int32 !x\u0022\n\ninl i64 forall t. (x : t) : i64 =\n $\u0022int64 !x\u0022\n\ninl f32 forall t. (x : t) : f32 =\n $\u0022float32 !x\u0022\n\ninl f64 forall t. (x : t) : f64 =\n $\u0022float !x\u0022\n\n// // ## pair\n\ntype pair a b = $\u0022(\u0060a * \u0060b)\u0022\n\ninl pair x y =\n x, y\n\n// // ## new_pair\n\ninl new_pair forall a b. (a : a) (b : b) : pair a b =\n $\u0022!a, !b\u0022\n\n// // ## from_pair\n\ninl from_pair forall a b. (pair : pair a b) : a * b =\n $\u0022let (a, b) = !pair\u0022\n $\u0022a\u0022, $\u0022b\u0022\n\n// // ## log_level_type\n\nunion log_level_type =\n | Verbose\n | Debug\n | Info\n | Warning\n | Critical\n\ninstance to_string log_level_type = function\n | Verbose =\u003E \u0022Verbose\u0022\n | Debug =\u003E \u0022Debug\u0022\n | Info =\u003E \u0022Info\u0022\n | Warning =\u003E \u0022Warning\u0022\n | Critical =\u003E \u0022Critical\u0022\n\ninstance of_string log_level_type = function\n | \u0022Verbose\u0022 =\u003E Verbose\n | \u0022Debug\u0022 =\u003E Debug\n | \u0022Info\u0022 =\u003E Info\n | \u0022Warning\u0022 =\u003E Warning\n | \u0022Critical\u0022 =\u003E Critical\n\n// // ## to_any\n\ninl to_any forall t. (obj : t) : any =\n $\u0022!obj\u0022\n\ninstance (~:\u003E) any = to_any\n\n// // ## (/@)\n\ninl (/@) a b =\n b |\u003E append a\n\n// // ## unbox\n\ninl unbox forall t u. (x : t) : u =\n $\u0022!x |\u003E unbox\u003C\u0060u\u003E\u0022\n\n// // ## (/\u002B)\n\ninl (/\u002B) forall t. (a : t) (b : t) : t =\n $\u0022!a \u002B !b\u0022\n\n// // ## (/=)\n\ninl (/=) forall t. (a : t) (b : t) : bool =\n $\u0022!a = !b\u0022\n\n// // ## (||\u003E)\n\ninl (||\u003E) (arg1, arg2) fn =\n arg2 |\u003E fn arg1\n\n// // ## flip\n\ninl flip fn a b =\n fn b a\n\n// // ## join_body\n\ninl join_body body acc x =\n if var_is x |\u003E not\n then body acc x\n else\n inl acc = dyn acc\n join body acc x\n\n// // ## join_body_unit\n\ninl join_body_unit body d x =\n if var_is d |\u003E not\n then body x\n else\n inl x = dyn x\n join body x\n\n// // ## run_target\n\nunion target_runtime =\n | Native\n | Wasm\n | Fable\n\nunion target =\n | Rust : target_runtime\n | Fsharp : target_runtime\n\ninl run_target forall t. (fn : target -\u003E (() -\u003E t)) : t =\n $\u0022let mutable result = None\u0022\n $\u0022#if FABLE_COMPILER_RUST \u0026\u0026 \\!WASM\u0022\n fn (Rust Native) () |\u003E fun x =\u003E $\u0022!x\u0022\n $\u0022#endif\u0022\n $\u0022#if FABLE_COMPILER_RUST \u0026\u0026 WASM\u0022\n fn (Rust Wasm) () |\u003E fun x =\u003E $\u0022!x\u0022\n $\u0022#endif\u0022\n $\u0022#if \\!FABLE_COMPILER \u0026\u0026 \\!FABLE_COMPILER_RUST \u0026\u0026 \\!WASM\u0022\n fn (Fsharp Native) () |\u003E fun x =\u003E $\u0022!x\u0022\n $\u0022#endif\u0022\n $\u0022#if FABLE_COMPILER \u0026\u0026 \\!FABLE_COMPILER_RUST \u0026\u0026 \\!WASM\u0022\n fn (Fsharp Fable) () |\u003E fun x =\u003E $\u0022!x\u0022\n $\u0022#endif\u0022\n $\u0022#if \\!FABLE_COMPILER_RUST \u0026\u0026 WASM\u0022\n fn (Fsharp Wasm) () |\u003E fun x =\u003E $\u0022!x\u0022\n $\u0022#endif\u0022\n $\u0022|\u003E fun x -\u003E result \u003C- Some x\u0022\n $\u0022result |\u003E Option.get\u0022\n\n// // ## nameof\n\ninl nameof x : string =\n $\u0022nameof !x\u0022\n\n// // ## get_environment_variable\n\ninl get_environment_variable (var : string) : string =\n $\u0022System.Environment.GetEnvironmentVariable !var\u0022\n\n// // ## memoize\n\nnominal lazy t = $\u0027Lazy\u003C\u0060t\u003E\u0027\n\ninl memoize forall t. (fn : () -\u003E t) : () -\u003E t =\n inl result : lazy t = $\u0027lazy !fn ()\u0027\n fun () =\u003E $\u0027!result.Value\u0027\n\n// // ## use_disposable\n\ninl use_disposable (disposable : disposable) : disposable =\n $\u0022use !disposable = !disposable\u0022 : ()\n $\u0022!disposable\u0022\n\n// // ## new_disposable\n\ninl new_disposable (fn : () -\u003E ()) : disposable =\n run_target function\n | Fsharp _ =\u003E fun () =\u003E $\u0027{ new System.IDisposable with member _.Dispose () = !fn () }\u0027\n | Rust _ =\u003E\n inl fn = join fn\n fun () =\u003E $\u0027{ new System.IDisposable with member _.Dispose () = Fable.Core.RustInterop.emitRustExpr () \u0022!fn()\u0022 }\u0027\n\n// // ## try\n\ninl try forall t. (fn : () -\u003E t) (ex_fn : exn -\u003E ()) : option t =\n inl none = None : option t\n inl some (s : t) = Some s\n $\u0027try !fn () |\u003E !some with ex -\u003E !ex_fn ex; !none \u0027\n\n// // ## sleep\n\ninl sleep (n : i32) : () =\n run_target function\n | Fsharp (Native) =\u003E fun () =\u003E $\u0027System.Threading.Thread.Sleep\u0027 n\n | _ =\u003E fun () =\u003E ()\n\n// // ## retry_fn\n\ninl retry_fn forall t. retries (fn : () -\u003E t) : option t =\n let rec loop retry =\n try\n fun () =\u003E\n if retry \u003C retries\n then fn () |\u003E Some\n else None\n fun ex =\u003E\n let getLocals () = $\u0022retry: {retry} / ex: {ex |\u003E Sm.format_exception} / {getLocals ()}\u0022\n // trace Warning (fun () =\u003E \u0022retry_fn\u0022) getLocals\n sleep 1\n |\u003E function\n | Some x =\u003E x\n | None =\u003E loop (retry \u002B 1)\n loop 0\n\n// // ## main\n\ninl main () =\n inl retry_fn (r : i32) (x : () -\u003E _) : optionm\u0027.option\u0027 () =\n retry_fn r x |\u003E optionm\u0027.box\n $\u0022let new_disposable x = !new_disposable x\u0022 : ()\n $\u0022let retry_fn x = !retry_fn x\u0022 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/common.spi"}} / result.Length:
00:00:00 #6 [Debug] sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/common.spi"}} / result.Length:
00:00:00 #7 [Debug] buildFile / takeWhileInclusive / fsxContent: type [<Struct>] US0 =
| US0_0
| US0_1
and [<Struct>] US1 =
| US1_0
| US1_1 of f1_0 : US0
let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
v0
and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
let mutable result = None
#if FABLE_COMPILER_RUST && !WASM
let v1 : (unit -> unit) = method0(v0)
let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose () = Fable.Core.RustInterop.emitRustExpr () "v1()" }
v2
#endif
#if FABLE_COMPILER_RUST && WASM
let v3 : (unit -> unit) = method0(v0)
let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose () = Fable.Core.RustInterop.emitRustExpr () "v3()" }
v4
#endif
#if !FABLE_COMPILER && !F... / errors: [] / typeErrorCount: 0
00:00:01 #8 [Debug] watchWithFilter / Disposing watch stream / filter: FileName, LastWrite
00:00:01 #9 [Debug] runWithTimeoutChildAsync / timeout: 60
00:00:01 #10 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: [] / typeErrorCount: 0
00:00:01 #11 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: [] / typeErrorCount: 0
00:00:01 #12 [Debug] sendJson / port: 13805 / json: {"FileOpen":{"spiText":"// // # date_time\n\nopen rust_operators\nopen sm\u0027_operators\n\n// // ## types\n\ninl types () =\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022chrono::DateTime\u003C$0\u003E\\\u0022)\u003E] type chrono_DateTime\u003C\u0027T\u003E = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022chrono::Local\\\u0022)\u003E] type chrono_Local = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022chrono::NaiveDateTime\\\u0022)\u003E] type chrono_NaiveDateTime = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022chrono::Utc\\\u0022)\u003E] type chrono_Utc = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022std::time::Duration\\\u0022)\u003E] type std_time_Duration = class end\u0022\n\nnominal ticks = i64\nnominal duration = $\u0022std_time_Duration\u0022\nnominal date_time = $\u0022System.DateTime\u0022\nnominal date_time\u0027 t = $\u0022chrono_DateTime\u003C\u0060t\u003E\u0022\nnominal local = $\u0022chrono_Local\u0022\nnominal naive_date_time = $\u0022chrono_NaiveDateTime\u0022\nnominal utc = $\u0022chrono_Utc\u0022\n\n// // ## naive_utc\n\ninl naive_utc (date_time : date_time\u0027 utc) : naive_date_time =\n inl date_time = join date_time\n !\\($\u0027\u0022!date_time.naive_utc()\u0022\u0027)\n\n// // ## to_local\n\ninl to_local (date_time : date_time\u0027 utc) : date_time\u0027 local =\n inl naive_date_time = date_time |\u003E naive_utc\n !\\($\u0027\u0022chrono::offset::TimeZone::from_utc_datetime(\u0026chrono::Local, \u0026!naive_date_time)\u0022\u0027)\n\n// // ## from_timestamp\u0027\n\ninl from_timestamp\u0027 forall t {number; int}. (timestamp : t) : option (date_time\u0027 utc) =\n inl timestamp = join timestamp\n inl result : optionm\u0027.option\u0027 (date_time\u0027 utc) =\n !\\($\u0027\u0022chrono::DateTime::from_timestamp_micros(!timestamp / 1000i64)\u0022\u0027)\n result |\u003E optionm\u0027.unbox\n\n// // ## format\u0027\n\ninl format\u0027 (format : string) (date_time : date_time\u0027 utc) : sm\u0027.std_string =\n inl format = #format\n inl date_time = join date_time\n !\\($\u0027\u0022!date_time.format(!format).to_string()\u0022\u0027)\n\n// // ## format\u0027\u0027\n\ninl format\u0027\u0027 (format : string) (date_time : date_time\u0027 _) : sm\u0027.std_string =\n inl format = #format\n inl date_time = join date_time\n !\\($\u0027\u0022!date_time.format(!format).to_string()\u0022\u0027)\n\n// // ## format_timestamp\n\ninl format_timestamp (timestamp : sm\u0027.std_string) =\n inl timestamp = join timestamp\n timestamp\n |\u003E fun x =\u003E !\\($\u0027\u0022!x.parse().unwrap()\u0022\u0027) : i64\n |\u003E from_timestamp\u0027\n |\u003E optionm.map fun x =\u003E\n x\n |\u003E to_local\n |\u003E format\u0027\u0027 \u0022%Y-%m-%d %H:%M:%S\u0022\n |\u003E sm\u0027.from_std_string\n |\u003E resultm.from_option\n\n// // ## duration_from_millis\n\ninl duration_from_millis (ms : u64) : duration =\n inl ms = join ms\n !\\($\u0027\u0022std::time::Duration::from_millis(!ms)\u0022\u0027)\n\n// // ## get_environment_variable\n\ninl get_environment_variable (var : string) : string =\n $\u0022System.Environment.GetEnvironmentVariable !var\u0022\n\ntype ticks_guid = guid.guid\ntype date_time_guid = guid.guid\n\n// // ## date_time_guid_from_date_time\n\ninl date_time_guid_from_date_time (guid : guid.guid) (date_time : date_time) =\n inl guid = guid |\u003E sm\u0027.obj_to_string\n inl prefix = $\u0027!date_time.ToString \u0022yyyyMMdd-HHmm-ssff-ffff-f\u0022\u0027 : string\n $\u0027\u0060date_time_guid $\u0022{!prefix}{!guid.[!prefix.Length..]}\u0022\u0027 : date_time_guid\n\n// // ## date_time_from_guid\n\ninl date_time_from_guid (date_time_guid : date_time_guid) =\n inl date_time_guid = date_time_guid |\u003E sm\u0027.obj_to_string\n inl sm\u0027_replace = join sm\u0027.replace\n run_target function\n | Fsharp =\u003E fun () =\u003E $\u0027System.DateTime.ParseExact (!date_time_guid.[..24] |\u003E !sm\u0027_replace \u0022-\u0022 \u0022\u0022, \u0022yyyyMMddHHmmssfffffff\u0022, null)\u0027 : date_time\n | Rust _ =\u003E fun () =\u003E\n $\u0027System.DateTime.Parse (!date_time_guid.[..24] |\u003E !sm\u0027_replace \u0022-\u0022 \u0022\u0022)\u0027 : date_time\n\n// // ## ticks_guid_from_ticks\n\ninl ticks_guid_from_ticks (guid : guid.guid) (ticks : ticks) : ticks_guid =\n inl guid = guid |\u003E sm\u0027.obj_to_string\n inl ticks = ticks |\u003E sm\u0027.obj_to_string |\u003E sm\u0027.pad_left 18i32 \u00270\u0027\n $\u0027\u0060ticks_guid $\u0022{!ticks.[0..7]}-{!ticks.[8..11]}-{!ticks.[12..15]}-{!ticks.[16..17]}{!guid.[21..]}\u0022\u0027\n\n// // ## ticks_from_guid\n\ninl ticks_from_guid (guid : date_time_guid) : ticks =\n inl guid = guid |\u003E sm\u0027.obj_to_string\n $\u0027\u0060i64 $\u0022{!guid.[0..7]}{!guid.[9..12]}{!guid.[14..17]}{!guid.[19..20]}\u0022\u0027\n\n// // ## new_guid_from_date_time\n\ninl new_guid_from_date_time (date_time : date_time) =\n inl guid = guid.new_raw_guid ()\n date_time_guid_from_date_time guid date_time\n\n// // ## new_guid_from_ticks\n\ninl new_guid_from_ticks (ticks : ticks) =\n inl guid = guid.new_raw_guid ()\n ticks_guid_from_ticks guid ticks\n\n// // ## main\n\ninl main () =\n $\u0022let date_time_guid_from_date_time x = !date_time_guid_from_date_time x\u0022 : ()\n $\u0022let date_time_from_guid x = !date_time_from_guid x\u0022 : ()\n $\u0022let ticks_guid_from_ticks x = !ticks_guid_from_ticks x\u0022 : ()\n $\u0022let ticks_from_guid x = !ticks_from_guid x\u0022 : ()\n $\u0022let new_guid_from_date_time x = !new_guid_from_date_time x\u0022 : ()\n $\u0022let new_guid_from_ticks x = !new_guid_from_ticks x\u0022 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/date_time.spi"}} / result.Length:
00:00:01 #13 [Debug] sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/date_time.spi"}} / result.Length:
00:00:01 #14 [Debug] buildFile / takeWhileInclusive / fsxContent: let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
let v2 : (System.Guid -> string) = _.ToString()
let v3 : string = v2 v0
let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
let v5 : System.Guid = System.Guid $"{v4}{v3.[v4.Length..]}"
v5
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
let v3 : string = v2.Replace (v0, v1)
v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
closure3()
and closure2 (... / errors: [] / typeErrorCount: 0
00:00:01 #15 [Debug] watchWithFilter / Disposing watch stream / filter: FileName, LastWrite
00:00:01 #16 [Debug] runWithTimeoutChildAsync / timeout: 60
00:00:01 #17 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: [] / typeErrorCount: 0
00:00:01 #18 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: [] / typeErrorCount: 0
00:00:01 #19 [Debug] sendJson / port: 13805 / json: {"FileOpen":{"spiText":"// // # file_system\n\nopen rust_operators\nopen sm\u0027_operators\n\n// // ## types\n\ninl types () =\n ()\n\n// // ## (\u003C/\u003E)\n\ninl (\u003C/\u003E) (a : string) (b : string) : string =\n $\u0027System.IO.Path.Combine (!a, !b)\u0027\n\n// // ## create_temp_directory_name\n\ninl create_temp_directory_name () =\n run_target function\n | Fsharp (Native) =\u003E fun () =\u003E\n inl root = $\u0027System.Reflection.Assembly.GetEntryAssembly().GetName().Name\u0027 : string\n\n ($\u0027System.IO.Path.GetTempPath\u0027 () : string)\n \u003C/\u003E ($\u0027$\u0022{!root}\u0022\u0027 : string)\n \u003C/\u003E (date_time.new_guid_from_date_time $\u0027System.DateTime.Now\u0027 |\u003E sm\u0027.obj_to_string)\n | x =\u003E fun () =\u003E failwith $\u0027$\u0022create_temp_directory_name target: {!x}\u0022\u0027\n\n// // ## main\n\ninl main () =\n $\u0022let create_temp_directory_name () = !create_temp_directory_name ()\u0022 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/file_system.spi"}} / result.Length:
00:00:01 #20 [Debug] sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/file_system.spi"}} / result.Length:
00:00:01 #21 [Debug] buildFile / takeWhileInclusive / fsxContent: type [<Struct>] US0 =
| US0_0
| US0_1
| US0_2
and [<Struct>] US1 =
| US1_0 of f0_0 : US0
| US1_1 of f1_0 : US0
let rec closure0 () () : string =
let mutable result = None
#if FABLE_COMPILER_RUST && !WASM
let v0 : US0 = US0_1
let v1 : US1 = US1_1(v0)
let v2 : string = $"create_temp_directory_name target: {v1}"
let v3 : string = failwith<string> v2
v3
#endif
#if FABLE_COMPILER_RUST && WASM
let v4 : US0 = US0_2
let v5 : US1 = US1_1(v4)
let v6 : string = $"create_temp_directory_name target: {v5}"
let v7 : string = failwith<string> v6
v7
#endif
#if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM
let v8 : string = System.Reflection.Assembly.GetEntryAssembly()... / errors: [] / typeErrorCount: 0
00:00:01 #22 [Debug] watchWithFilter / Disposing watch stream / filter: FileName, LastWrite
00:00:01 #23 [Debug] runWithTimeoutChildAsync / timeout: 60
00:00:01 #24 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: [] / typeErrorCount: 0
00:00:01 #25 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: [] / typeErrorCount: 0
00:00:01 #26 [Debug] sendJson / port: 13805 / json: {"FileOpen":{"spiText":"// // # guid\n\n// // ## guid\n\nnominal guid = $\u0022System.Guid\u0022\n\n// // ## new_guid\n\ninl new_guid (x : string) : guid =\n $\u0027\u0060guid !x \u0027\n\n// // ## new_raw_guid\n\ninl new_raw_guid () : guid =\n $\u0022System.Guid.NewGuid ()\u0022\n\n// // ## main\n\ninl main () =\n $\u0022let new_guid x = !new_guid x\u0022 : ()\n $\u0022let new_raw_guid x = !new_raw_guid x\u0022 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/guid.spi"}} / result.Length:
00:00:02 #27 [Debug] sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/guid.spi"}} / result.Length:
00:00:02 #28 [Debug] buildFile / takeWhileInclusive / fsxContent: let rec closure0 () (v0 : string) : System.Guid =
let v1 : System.Guid = System.Guid v0
v1
and closure1 () () : System.Guid =
let v0 : System.Guid = System.Guid.NewGuid ()
v0
let v0 : (string -> System.Guid) = closure0()
let new_guid x = v0 x
let v1 : (unit -> System.Guid) = closure1()
let new_raw_guid x = v1 x
()
/ errors: [] / typeErrorCount: 0
00:00:02 #29 [Debug] watchWithFilter / Disposing watch stream / filter: FileName, LastWrite
00:00:02 #30 [Debug] runWithTimeoutChildAsync / timeout: 60
00:00:02 #31 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: [] / typeErrorCount: 0
00:00:02 #32 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: [] / typeErrorCount: 0
00:00:02 #33 [Debug] sendJson / port: 13805 / json: {"FileOpen":{"spiText":"// // # sm\u0027\n\nopen rust_operators\n\ninl types () =\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022str\\\u0022)\u003E] type Str = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022base64::DecodeError\\\u0022)\u003E] type base64_DecodeError = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022borsh::io::Error\\\u0022)\u003E] type borsh_io_Error = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022js_sys::JsString\\\u0022)\u003E] type js_sys_JsString = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022serde_json::Error\\\u0022)\u003E] type serde_json_Error = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022serde_json::Value\\\u0022)\u003E] type serde_json_Value = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022serde_wasm_bindgen::Error\\\u0022)\u003E] type serde_wasm_bindgen_Error = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022std::str::Utf8Error\\\u0022)\u003E] type std_str_Utf8Error = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022std::string::String\\\u0022)\u003E] type std_string_String = class end\u0022\n\nnominal base64_decode_error = $\u0022base64_DecodeError\u0022\nnominal borsh_io_error = $\u0022borsh_io_Error\u0022\nnominal utf8_error = $\u0022std_str_Utf8Error\u0022\nnominal json_value = $\u0022serde_json_Value\u0022\nnominal json_error = $\u0022serde_json_Error\u0022\nnominal serde_wasm_bindgen_error = $\u0022serde_wasm_bindgen_Error\u0022\nnominal std_string = $\u0022std_string_String\u0022\nnominal js_string = $\u0022js_sys_JsString\u0022\nnominal str = $\u0022Str\u0022\n\n// // ## contains\n\ninl contains (value : string) (s : string) : bool =\n $\u0022!s.Contains !value\u0022\n\n// // ## ends_with\n\ninl ends_with (value : string) (s : string) : bool =\n $\u0022!s.EndsWith !value\u0022\n\n// // ## pad_left\n\ninl pad_left (total_width : i32) (padding_char : char) (s : string) : string =\n $\u0022!s.PadLeft (!total_width, !padding_char)\u0022\n\n// // ## pad_right\n\ninl pad_right (pad : i32) (s : string) : string =\n $\u0022!s.PadRight !pad\u0022\n\n// // ## replace\n\ninl replace (old_value : string) (new_value : string) (s : string) : string =\n $\u0022!s.Replace (!old_value, !new_value)\u0022\n\n// // ## starts_with\n\ninl starts_with (value : string) (s : string) : bool =\n $\u0022!s.StartsWith !value\u0022\n\n// // ## substring\n\ninl substring (start : i32) (len : i32) (str : string) : string =\n $\u0022!str.Substring (!start, !len)\u0022\n\n// // ## to_lower\n\ninl to_lower (input : string) : string =\n $\u0022!input.ToLower ()\u0022\n\n// // ## to_upper\n\ninl to_upper (input : string) : string =\n $\u0022!input.ToUpper ()\u0022\n\n// // ## trim\n\ninl trim (input : string) : string =\n $\u0022!input.Trim ()\u0022\n\n// // ## trim_end\n\ninl trim_end (trim_chars : array_base char) (input : string) : string =\n $\u0022!input.TrimEnd !trim_chars\u0022\n\n// // ## trim_start\n\ninl trim_start (trim_chars : array_base char) (input : string) : string =\n $\u0022!input.TrimStart !trim_chars\u0022\n\n// // ## slice\n\ninl slice from to s : string =\n sm.slice s { from to }\n\n// // ## raw_string_literal\n\ninl raw_string_literal (s : string) : rust.ref\u0027 str =\n !\\($\u0022\\\u0022r#\\\\\\\u0022\\\u0022 \u002B !s \u002B \\\u0022\\\\\\\u0022#\\\u0022\u0022)\n\n// // ## raw_string_literal_static\n\ninl raw_string_literal_static (s : string) : rust.static_ref\u0027 str =\n !\\($\u0022\\\u0022r#\\\\\\\u0022\\\u0022 \u002B !s \u002B \\\u0022\\\\\\\u0022#\\\u0022\u0022)\n\n// // ## include_str\n\ninl include_str (path : string) : rust.ref\u0027 str =\n !\\($\u0027\u0022include_str\\!(\\\\\\\u0022\u0022 \u002B !path \u002B \u0022\\\\\\\u0022)\u0022\u0027)\n\n// // ## as_str\n\ninl as_str (s : string) : rust.ref\u0027 str =\n inl s = join s\n !\\($\u0027$\u0022fable_library_rust::String_::LrcStr::as_str(\u0026!s)\u0022\u0027)\n\n// // ## from_std_string\n\ninl from_std_string (str : std_string) : string =\n inl str = join str\n !\\($\u0027\u0022fable_library_rust::String_::fromString(!str)\u0022\u0027)\n\n// // ## ref_to_std_string\n\ninl ref_to_std_string (str : rust.ref\u0027 str) : std_string =\n !\\($\u0027\u0022String::from(!str)\u0022\u0027)\n\n// // ## to_std_string\n\ninl to_std_string (s : string) : std_string =\n inl s = join s\n s |\u003E as_str |\u003E ref_to_std_string\n\n// // ## as_str_std\n\ninl as_str_std (s : std_string) : rust.ref\u0027 str =\n inl s = join s\n !\\($\u0027\u0022!s.as_str()\u0022\u0027)\n\n// // ## into_boxed_str\n\ninl into_boxed_str (s : std_string) : rust.box str =\n !\\($\u0027\u0022!s.into_boxed_str()\u0022\u0027)\n\n// // ## format\u0027\n\ninl format\u0027 x : std_string =\n !\\\\(x, $\u0027@@$\u0022format\\!(\u0022\u0022{{}}\u0022\u0022, $0)\u0022\u0027)\n\n// // ## format_debug\n\ninl format_debug x : string =\n $\u0027$\u0022%A{!x}\u0022\u0027\n\n// // ## format_debug\u0027\n\ninl format_debug\u0027 x : std_string =\n !\\\\(x, $\u0027@@$\u0022format\\!(\u0022\u0022{{:?}}\u0022\u0022, $0)\u0022\u0027)\n\n// // ## format_pretty\u0027\n\ninl format_pretty\u0027 x : std_string =\n !\\\\(x, $\u0027@@$\u0022format\\!(\u0022\u0022{{:#?}}\u0022\u0022, $0)\u0022\u0027)\n\n// // ## format_exception\n\ninl format_exception (ex : exn) : string =\n run_target function\n | Fsharp (Native) =\u003E fun () =\u003E $\u0027$\u0022{!ex.GetType ()}: {!ex.Message}\u0022\u0027\n | _ =\u003E fun () =\u003E ex |\u003E format_debug\n\n// // ## obj_to_string\n\ninl obj_to_string x : string =\n x |\u003E $\u0027_.ToString()\u0027\n\n// // ## to_string any\n\ninstance to_string any =\n obj_to_string\n\n// // ## to_string result t u\n\ninstance to_string result t u = fun x =\u003E\n real\n open rust\n typecase (t * u) with\n | string * string =\u003E\n match x with\n | Ok x =\u003E x\n | Error x =\u003E $\u0027\u0022Error: \u0022 \u002B !x \u002B \u0022\u0022\u0027 : string\n | std_string * std_string =\u003E\n match x with\n | Ok x =\u003E from_std_string x\n | Error x =\u003E $\u0027\u0022Error: \u0022 \u002B string !x \u002B \u0022\u0022\u0027 : string\n | _ =\u003E obj_to_string \u0060u x\n\n// // ## serialize\n\ninl serialize forall t. (x : t) : resultm.result\u0027 std_string json_error =\n !\\($\u0027\u0022serde_json::to_string(\u0026!x)\u0022\u0027)\n\n// // ## deserialize\n\ninl deserialize forall t. (json : string) : resultm.result\u0027 t std_string =\n inl json = json |\u003E as_str\n !\\($\u0027\u0022serde_json::from_str(\u0026!json)\u0022\u0027)\n |\u003E resultm.map_error\u0027 fun (x : json_error) =\u003E x |\u003E format\u0027\n\n// // ## borsh_deserialize\n\ninl borsh_deserialize forall t. (data : array_base u8) : resultm.result\u0027 t std_string =\n inl data = data |\u003E am\u0027.as_slice\n !\\($\u0027\u0022let mut !data = !data\u0022\u0027)\n inl result = !\\($\u0027\u0022borsh::BorshDeserialize::deserialize(\u0026mut !data)\u0022\u0027)\n result\n |\u003E resultm.map_error\u0027 fun (x : borsh_io_error) =\u003E x |\u003E format\u0027\n\n// // ## deserialize_vec\n\ninl deserialize_vec (value : json_value) : resultm.result\u0027 (am\u0027.vec u8) std_string =\n inl value = join value\n !\\($\u0027\u0022serde_json::from_value(!value)\u0022\u0027)\n |\u003E resultm.map_error\u0027 fun (x : json_error) =\u003E x |\u003E format\u0027\n\n// // ## encode_uri_component\n\ninl encode_uri_component (s : std_string) : js_string =\n !\\($\u0027\u0022js_sys::encode_uri_component(\u0026!s)\u0022\u0027)\n\n// // ## strip_prefix\n\ninl strip_prefix (prefix : char) (s : std_string) : optionm\u0027.option\u0027 (rust.ref\u0027 str) =\n inl s = join s\n !\\($\u0027\u0022!s.strip_prefix(!prefix)\u0022\u0027)\n\n// // ## base64_decode\n\ninl base64_decode (s : std_string) : result std_string std_string =\n fun () =\u003E\n inl s = join s\n inl bytes : resultm.result\u0027 (am\u0027.vec u8) base64_decode_error =\n !\\($\u0027\u0022base64::Engine::decode(\u0026base64::engine::general_purpose::STANDARD, !s)\u0022\u0027)\n inl bytes =\n bytes\n |\u003E resultm.map_error\u0027 format\u0027\n |\u003E resultm.try\u0027\n inl result : resultm.result\u0027 std_string utf8_error =\n !\\($\u0027\u0022std::str::from_utf8(\u0026!bytes).map(String::from)\u0022\u0027)\n result\n |\u003E resultm.map_error\u0027 format\u0027\n |\u003E fun x =\u003E\n join x ()\n |\u003E resultm.unbox\n\n// // ## concat_array_trailing\n\ninl concat_array_trailing (separator : string) (input : a i32 string) =\n (\u0022\u0022, input)\n ||\u003E am.fold fun acc (x : string) =\u003E\n $\u0027!acc \u002B !x \u002B !separator \u002B \u0022\u0022\u0027\n\n// // ## concat_list_trailing\n\ninl concat_list_trailing separator input =\n (\u0022\u0022, input)\n ||\u003E listm.fold fun acc (x : string) =\u003E\n $\u0027!acc \u002B !x \u002B !separator \u002B \u0022\u0022\u0027\n\n// // ## concat_list_heap_trailing\n\ninl concat_list_heap_trailing separator input =\n (\u0022\u0022, input)\n ||\u003E listm.fold fun acc (x : string) =\u003E\n inl acc = acc |\u003E to_std_string\n inl x = x |\u003E as_str\n inl separator = separator |\u003E as_str\n !\\($\u0027\u0022!acc \u002B !x \u002B !separator\u0022\u0027)\n |\u003E from_std_string\n\n// // ## concat\n\ninl concat (a : string) (b : seq.seq\u0027 _) : string =\n $\u0022!b |\u003E String.concat !a\u0022\n\n// // ## ellipsis\n\ninl ellipsis (max : i32) (s : string) =\n if sm.length s \u003C= max\n then s\n else s |\u003E slice 0 (max - 1) |\u003E fun x =\u003E $\u0027!x \u002B \u0022...\u0022\u0027\n\n// // ## ellipsis_end\n\ninl ellipsis_end (max : i64) (s : string) =\n inl len = sm.length s\n if len \u003C= max\n then s\n else\n inl half = f64 max / 2\n inl start_half = half |\u003E math.ceil |\u003E i64\n inl end_half = half |\u003E math.floor |\u003E i64\n inl start = s |\u003E slice 0 (start_half - 1)\n inl end = s |\u003E slice (len - end_half) (len - 1)\n (a ;[start; \u0022...\u0022; end] : _ i32 _)\n |\u003E seq.of_array\n |\u003E concat \u0022\u0022\n\n// // ## format_ellipsis\n\ninl format_ellipsis s =\n s\n |\u003E format_debug\n |\u003E ellipsis_end 400\n\n// // ## split\n\ninl split (separator : string) (str : string) : array_base string =\n $\u0022!str.Split !separator\u0022\n\n// // ## split_string\n\ninl split_string (separator : array_base string) (str : string) : array_base string =\n run_target function\n | Fsharp (Native) =\u003E fun () =\u003E $\u0022!str.Split (!separator, System.StringSplitOptions.None)\u0022\n | _ =\u003E fun () =\u003E str |\u003E split ((a separator : _ i32 _) |\u003E seq.of_array |\u003E concat (join \u0022\u0022))\n\n// // ## join\u0027\n\ninl join\u0027 (concat : string) (s : a i32 string) : string =\n $\u0022System.String.Join (!concat, !s)\u0022\n\n// // ## to_char_array\n\ninl to_char_array (str : string) : a i32 char =\n am.init (str |\u003E sm.length) (fun i =\u003E sm.index str i)\n\n// // ## to_char_list\n\ninl to_char_list (str : string) : list char =\n listm.init (str |\u003E sm.length) (fun (i : i64) =\u003E sm.index str i)\n\n// // ## to_string std_string\n\nopen rust\ninstance to_string std_string = from_std_string\n\n// // ## main\n\ninl main () =\n $\u0022let contains x = !contains x\u0022 : ()\n $\u0022let ends_with x = !ends_with x\u0022 : ()\n $\u0022let pad_left x = !pad_left x\u0022 : ()\n $\u0022let pad_right x = !pad_right x\u0022 : ()\n $\u0022let replace x = !replace x\u0022 : ()\n inl slice (a : i32) (b : i32) c = slice a b c\n $\u0022let slice x = !slice x\u0022 : ()\n $\u0022let split x = !split x\u0022 : ()\n $\u0022let split_string x = !split_string x\u0022 : ()\n $\u0022let starts_with x = !starts_with x\u0022 : ()\n $\u0022let substring x = !substring x\u0022 : ()\n $\u0022let to_lower x = !to_lower x\u0022 : ()\n $\u0022let to_upper x = !to_upper x\u0022 : ()\n $\u0022let trim x = !trim x\u0022 : ()\n $\u0022let trim_end x = !trim_end x\u0022 : ()\n $\u0022let trim_start x = !trim_start x\u0022 : ()\n $\u0022let ellipsis x = !ellipsis x\u0022 : ()\n $\u0022let ellipsis_end x = !ellipsis_end x\u0022 : ()\n $\u0022let format_exception x = !format_exception x\u0022 : ()\n $\u0022let concat_array_trailing x = !concat_array_trailing x\u0022 : ()\n inl concat a (b : seq.seq\u0027 string) = concat a b\n $\u0022let concat x = !concat x\u0022 : ()\n $\u0022let join\u0027 x = !join\u0027 x\u0022 : ()\n $\u0022let to_char_array x = !to_char_array x\u0022 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/sm\u0027.spi"}} / result.Length:
00:00:02 #34 [Debug] sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/sm\u0027.spi"}} / result.Length:
00:00:02 #35 [Debug] buildFile / takeWhileInclusive / fsxContent: type Mut0 = {mutable l0 : int32; mutable l1 : string}
and Mut1 = {mutable l0 : int32}
let rec closure1 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.Contains v0
v2
and closure0 () (v0 : string) : (string -> bool) =
closure1(v0)
and closure3 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.EndsWith v0
v2
and closure2 () (v0 : string) : (string -> bool) =
closure3(v0)
and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
let v3 : string = v2.PadLeft (v0, v1)
v3
and closure5 (v0 : int32) (v1 : char) : (string -> string) =
closure6(v0, v1)
and closure4 () (v0 : int32) : (char -> (string -> string)) =
closure5(v0)
and closure8 (v0 : int32) (v1 : string) : string =
let v2 : stri... / errors: [] / typeErrorCount: 0
00:00:02 #36 [Debug] watchWithFilter / Disposing watch stream / filter: FileName, LastWrite
In [ ]:
{ . "$ScriptDir/../lib/math/build.ps1" } | Invoke-Block
00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60
00:00:00 #2 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 math.dib""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:00:02 #3 [Verbose] >
00:00:02 #4 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:02 #5 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:02 #6 [Verbose] > │ # math │
00:00:02 #7 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:02 #8 [Verbose] >
00:00:02 #9 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:02 #10 [Verbose] > open testing
00:00:02 #11 [Verbose] > open rust_operators
00:00:06 #12 [Verbose] >
00:00:06 #13 [Verbose] > ╭─[ 3.83s - stdout ]───────────────────────────────────────────────────────────╮
00:00:06 #14 [Verbose] > │ () │
00:00:06 #15 [Verbose] > │ │
00:00:06 #16 [Verbose] > │ │
00:00:06 #17 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:06 #18 [Verbose] >
00:00:06 #19 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:06 #20 [Verbose] > inl types () =
00:00:06 #21 [Verbose] > global "[[<Fable.Core.Erase;
00:00:06 #22 [Verbose] > Fable.Core.Emit(\"num_complex::Complex<$0>\")>]] type num_complex_Complex<'T> =
00:00:06 #23 [Verbose] > class end"
00:00:06 #24 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"pyo3::types::PyModule\")>]]
00:00:06 #25 [Verbose] > type pyo3_types_PyModule = class end"
00:00:06 #26 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"pyo3::Bound<$0>\")>]] type
00:00:06 #27 [Verbose] > pyo3_Bound<'T> = class end"
00:00:06 #28 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"pyo3::Python\")>]] type
00:00:06 #29 [Verbose] > pyo3_Python = class end"
00:00:06 #30 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"pyo3::PyAny\")>]] type
00:00:06 #31 [Verbose] > pyo3_PyAny = class end"
00:00:06 #32 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"pyo3::PyErr\")>]] type
00:00:06 #33 [Verbose] > pyo3_PyErr = class end"
00:00:06 #34 [Verbose] >
00:00:06 #35 [Verbose] > ╭─[ 280.59ms - stdout ]────────────────────────────────────────────────────────╮
00:00:06 #36 [Verbose] > │ () │
00:00:06 #37 [Verbose] > │ │
00:00:06 #38 [Verbose] > │ │
00:00:06 #39 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:06 #40 [Verbose] >
00:00:06 #41 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:06 #42 [Verbose] > inl types () =
00:00:06 #43 [Verbose] > rust.types ()
00:00:06 #44 [Verbose] > sm'.types ()
00:00:06 #45 [Verbose] > types ()
00:00:06 #46 [Verbose] >
00:00:06 #47 [Verbose] > ╭─[ 225.34ms - stdout ]────────────────────────────────────────────────────────╮
00:00:06 #48 [Verbose] > │ () │
00:00:06 #49 [Verbose] > │ │
00:00:06 #50 [Verbose] > │ │
00:00:06 #51 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:06 #52 [Verbose] >
00:00:06 #53 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:06 #54 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:06 #55 [Verbose] > │ ## complex │
00:00:06 #56 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:06 #57 [Verbose] >
00:00:06 #58 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:06 #59 [Verbose] > nominal complex t = $"num_complex_Complex<`t>"
00:00:06 #60 [Verbose] > nominal bound t = $"pyo3_Bound<`t>"
00:00:06 #61 [Verbose] > nominal python = $"pyo3_Python"
00:00:06 #62 [Verbose] > nominal pymodule = $"pyo3_types_PyModule"
00:00:06 #63 [Verbose] > nominal pyany = $"pyo3_PyAny"
00:00:06 #64 [Verbose] > nominal pyerr = $"pyo3_PyErr"
00:00:06 #65 [Verbose] >
00:00:06 #66 [Verbose] > inl complex forall t. ((re : t), (im : t)) : complex t =
00:00:06 #67 [Verbose] > inl re = join re
00:00:06 #68 [Verbose] > inl re = join re
00:00:06 #69 [Verbose] > inl im = join im
00:00:06 #70 [Verbose] > !\($'"num_complex::Complex::new(!re, !im)"')
00:00:07 #71 [Verbose] >
00:00:07 #72 [Verbose] > ╭─[ 248.20ms - stdout ]────────────────────────────────────────────────────────╮
00:00:07 #73 [Verbose] > │ () │
00:00:07 #74 [Verbose] > │ │
00:00:07 #75 [Verbose] > │ │
00:00:07 #76 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:07 #77 [Verbose] >
00:00:07 #78 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:07 #79 [Verbose] > // // test
00:00:07 #80 [Verbose] > // // rust=
00:00:07 #81 [Verbose] >
00:00:07 #82 [Verbose] > types ()
00:00:07 #83 [Verbose] >
00:00:07 #84 [Verbose] > complex (0f64, 0f64)
00:00:07 #85 [Verbose] > |> sm'.format'
00:00:07 #86 [Verbose] > |> sm'.from_std_string
00:00:07 #87 [Verbose] > |> _assert_eq "0+0i"
00:00:12 #88 [Verbose] >
00:00:12 #89 [Verbose] > ╭─[ 4.99s - return value ]─────────────────────────────────────────────────────╮
00:00:12 #90 [Verbose] > │ .rs output: │
00:00:12 #91 [Verbose] > │ "0+0i" │
00:00:12 #92 [Verbose] > │ │
00:00:12 #93 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #94 [Verbose] >
00:00:12 #95 [Verbose] > ╭─[ 5.00s - stdout ]───────────────────────────────────────────────────────────╮
00:00:12 #96 [Verbose] > │ │
00:00:12 #97 [Verbose] > │ .fsx: │
00:00:12 #98 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Func0<$0>")>] type Func0<'T> = class │
00:00:12 #99 [Verbose] > │ end │
00:00:12 #100 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Func1<$0, $1>")>] type Func0<'T, 'U> = │
00:00:12 #101 [Verbose] > │ class end │
00:00:12 #102 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Box<$0>")>] type Box<'T> = class end │
00:00:12 #103 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("dyn $0")>] type Dyn<'T> = class end │
00:00:12 #104 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn() -> $0")>] type Fn<'T> = class end │
00:00:12 #105 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn()")>] type FnUnit = class end │
00:00:12 #106 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("FnOnce() -> $0")>] type FnOnce<'T> = │
00:00:12 #107 [Verbose] > │ class end │
00:00:12 #108 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn($0, $1)")>] type ActionFn2<'T, 'U> = │
00:00:12 #109 [Verbose] > │ class end │
00:00:12 #110 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("impl $0")>] type Impl<'T> = class end │
00:00:12 #111 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] type Mut<'T> = class end │
00:00:12 #112 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&$0")>] type Ref<'T> = class end │
00:00:12 #113 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&'static $0")>] type StaticRef<'T> = │
00:00:12 #114 [Verbose] > │ class end │
00:00:12 #115 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("MutCell<$0>")>] type MutCell<'T> = │
00:00:12 #116 [Verbose] > │ class end │
00:00:12 #117 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::any::Any")>] type std_any_Any = │
00:00:12 #118 [Verbose] > │ class end │
00:00:12 #119 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::cell::RefCell<$0>")>] type │
00:00:12 #120 [Verbose] > │ std_cell_RefCell<'T> = class end │
00:00:12 #121 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::pin::Pin<$0>")>] type │
00:00:12 #122 [Verbose] > │ std_pin_Pin<'T> = class end │
00:00:12 #123 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::rc::Rc<$0>")>] type std_rc_Rc<'T> │
00:00:12 #124 [Verbose] > │ = class end │
00:00:12 #125 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::rc::Weak<$0>")>] type │
00:00:12 #126 [Verbose] > │ std_rc_Weak<'T> = class end │
00:00:12 #127 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::sync::Arc<$0>")>] type │
00:00:12 #128 [Verbose] > │ std_sync_Arc<'T> = class end │
00:00:12 #129 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("str")>] type Str = class end │
00:00:12 #130 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>] type │
00:00:12 #131 [Verbose] > │ base64_DecodeError = class end │
00:00:12 #132 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>] type │
00:00:12 #133 [Verbose] > │ borsh_io_Error = class end │
00:00:12 #134 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>] type │
00:00:12 #135 [Verbose] > │ js_sys_JsString = class end │
00:00:12 #136 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>] type │
00:00:12 #137 [Verbose] > │ serde_json_Error = class end │
00:00:12 #138 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>] type │
00:00:12 #139 [Verbose] > │ serde_json_Value = class end │
00:00:12 #140 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>] type │
00:00:12 #141 [Verbose] > │ serde_wasm_bindgen_Error = class end │
00:00:12 #142 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::str::Utf8Error")>] type │
00:00:12 #143 [Verbose] > │ std_str_Utf8Error = class end │
00:00:12 #144 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type │
00:00:12 #145 [Verbose] > │ std_string_String = class end │
00:00:12 #146 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("num_complex::Complex<$0>")>] type │
00:00:12 #147 [Verbose] > │ num_complex_Complex<'T> = class end │
00:00:12 #148 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::types::PyModule")>] type │
00:00:12 #149 [Verbose] > │ pyo3_types_PyModule = class end │
00:00:12 #150 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::Bound<$0>")>] type pyo3_Bound<'T> │
00:00:12 #151 [Verbose] > │ = class end │
00:00:12 #152 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::Python")>] type pyo3_Python = │
00:00:12 #153 [Verbose] > │ class end │
00:00:12 #154 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::PyAny")>] type pyo3_PyAny = class │
00:00:12 #155 [Verbose] > │ end │
00:00:12 #156 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::PyErr")>] type pyo3_PyErr = class │
00:00:12 #157 [Verbose] > │ end │
00:00:12 #158 [Verbose] > │ let rec method1 () : float = │
00:00:12 #159 [Verbose] > │ 0.0 │
00:00:12 #160 [Verbose] > │ and method2 (v0 : float) : float = │
00:00:12 #161 [Verbose] > │ v0 │
00:00:12 #162 [Verbose] > │ and method3 () : float = │
00:00:12 #163 [Verbose] > │ 0.0 │
00:00:12 #164 [Verbose] > │ and method4 (v0 : std_string_String) : std_string_String = │
00:00:12 #165 [Verbose] > │ v0 │
00:00:12 #166 [Verbose] > │ and method5 (v0 : bool) : bool = │
00:00:12 #167 [Verbose] > │ v0 │
00:00:12 #168 [Verbose] > │ and method0 () : unit = │
00:00:12 #169 [Verbose] > │ let v0 : float = method1() │
00:00:12 #170 [Verbose] > │ let v1 : float = method2(v0) │
00:00:12 #171 [Verbose] > │ let v2 : float = method3() │
00:00:12 #172 [Verbose] > │ let v3 : string = "num_complex::Complex::new(v1, v2)" │
00:00:12 #173 [Verbose] > │ let v4 : num_complex_Complex<float> = │
00:00:12 #174 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v3 │
00:00:12 #175 [Verbose] > │ let v5 : string = @$"format!(""{{}}"", $0)" │
00:00:12 #176 [Verbose] > │ let v6 : std_string_String = Fable.Core.RustInterop.emitRustExpr v4 v5 │
00:00:12 #177 [Verbose] > │ let v7 : std_string_String = method4(v6) │
00:00:12 #178 [Verbose] > │ let v8 : string = "fable_library_rust::String_::fromString(v7)" │
00:00:12 #179 [Verbose] > │ let v9 : string = Fable.Core.RustInterop.emitRustExpr () v8 │
00:00:12 #180 [Verbose] > │ let v10 : string = $"%A{v9}" │
00:00:12 #181 [Verbose] > │ System.Console.WriteLine v10 │
00:00:12 #182 [Verbose] > │ let v12 : bool = v9 = "0+0i" │
00:00:12 #183 [Verbose] > │ let v14 : bool = │
00:00:12 #184 [Verbose] > │ if v12 then │
00:00:12 #185 [Verbose] > │ true │
00:00:12 #186 [Verbose] > │ else │
00:00:12 #187 [Verbose] > │ method5(v12) │
00:00:12 #188 [Verbose] > │ let v15 : string = "0+0i" │
00:00:12 #189 [Verbose] > │ let v16 : string = $"__expect / actual: %A{v9} / expected: %A{v15}" │
00:00:12 #190 [Verbose] > │ let v17 : bool = v14 = false │
00:00:12 #191 [Verbose] > │ if v17 then │
00:00:12 #192 [Verbose] > │ failwith<unit> v16 │
00:00:12 #193 [Verbose] > │ method0() │
00:00:12 #194 [Verbose] > │ │
00:00:12 #195 [Verbose] > │ │
00:00:12 #196 [Verbose] > │ .rs: │
00:00:12 #197 [Verbose] > │ #![allow(dead_code,)] │
00:00:12 #198 [Verbose] > │ #![allow(non_camel_case_types,)] │
00:00:12 #199 [Verbose] > │ #![allow(non_snake_case,)] │
00:00:12 #200 [Verbose] > │ #![allow(non_upper_case_globals,)] │
00:00:12 #201 [Verbose] > │ #![allow(unreachable_code,)] │
00:00:12 #202 [Verbose] > │ #![allow(unused_attributes,)] │
00:00:12 #203 [Verbose] > │ #![allow(unused_imports,)] │
00:00:12 #204 [Verbose] > │ #![allow(unused_macros,)] │
00:00:12 #205 [Verbose] > │ #![allow(unused_parens,)] │
00:00:12 #206 [Verbose] > │ #![allow(unused_variables,)] │
00:00:12 #207 [Verbose] > │ mod module_ccfa04bf { │
00:00:12 #208 [Verbose] > │ pub mod Spiral_eval { │
00:00:12 #209 [Verbose] > │ use super::*; │
00:00:12 #210 [Verbose] > │ use fable_library_rust::Native_::on_startup; │
00:00:12 #211 [Verbose] > │ use fable_library_rust::String_::printfn; │
00:00:12 #212 [Verbose] > │ use fable_library_rust::String_::sprintf; │
00:00:12 #213 [Verbose] > │ use fable_library_rust::String_::string; │
00:00:12 #214 [Verbose] > │ pub fn method1() -> f64 { 0.0_f64 } │
00:00:12 #215 [Verbose] > │ pub fn method2(v0: f64) -> f64 { v0 } │
00:00:12 #216 [Verbose] > │ pub fn method3() -> f64 { 0.0_f64 } │
00:00:12 #217 [Verbose] > │ pub fn method4(v0: std::string::String) -> std::string::String { v0 │
00:00:12 #218 [Verbose] > │ } │
00:00:12 #219 [Verbose] > │ pub fn method5(v0: bool) -> bool { v0 } │
00:00:12 #220 [Verbose] > │ pub fn method0() { │
00:00:12 #221 [Verbose] > │ let v1: f64 = Spiral_eval::method2(Spiral_eval::method1()); │
00:00:12 #222 [Verbose] > │ let v2: f64 = Spiral_eval::method3(); │
00:00:12 #223 [Verbose] > │ let v4: num_complex::Complex<f64> = │
00:00:12 #224 [Verbose] > │ num_complex::Complex::new(v1, v2); │
00:00:12 #225 [Verbose] > │ let v7: std::string::String = │
00:00:12 #226 [Verbose] > │ Spiral_eval::method4(format!("{}", v4)); │
00:00:12 #227 [Verbose] > │ let v9: string = fable_library_rust::String_::fromString(v7); │
00:00:12 #228 [Verbose] > │ let v10: string = sprintf!("{:?}", v9.clone()); │
00:00:12 #229 [Verbose] > │ printfn!("{0}", v10); │
00:00:12 #230 [Verbose] > │ { │
00:00:12 #231 [Verbose] > │ let v12: bool = v9.clone() == string("0+0i"); │
00:00:12 #232 [Verbose] > │ if (if v12 { true } else { Spiral_eval::method5(v12) }) == │
00:00:12 #233 [Verbose] > │ false { │
00:00:12 #234 [Verbose] > │ panic!("{}", │
00:00:12 #235 [Verbose] > │ sprintf!("__expect / actual: {:?} / expected: │
00:00:12 #236 [Verbose] > │ {:?}", v9, string("0+0i"))); │
00:00:12 #237 [Verbose] > │ } │
00:00:12 #238 [Verbose] > │ } │
00:00:12 #239 [Verbose] > │ } │
00:00:12 #240 [Verbose] > │ on_startup!(Spiral_eval::method0()); │
00:00:12 #241 [Verbose] > │ } │
00:00:12 #242 [Verbose] > │ } │
00:00:12 #243 [Verbose] > │ pub use module_ccfa04bf::*; │
00:00:12 #244 [Verbose] > │ │
00:00:12 #245 [Verbose] > │ │
00:00:12 #246 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #247 [Verbose] >
00:00:12 #248 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:12 #249 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:12 #250 [Verbose] > │ ## complex_sin │
00:00:12 #251 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #252 [Verbose] >
00:00:12 #253 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:12 #254 [Verbose] > inl re forall t. (c : complex t) : t =
00:00:12 #255 [Verbose] > inl c = join c
00:00:12 #256 [Verbose] > !\($'"!c.re"')
00:00:12 #257 [Verbose] >
00:00:12 #258 [Verbose] > inl im forall t. (c : complex t) : t =
00:00:12 #259 [Verbose] > inl c = join c
00:00:12 #260 [Verbose] > !\($'"!c.im"')
00:00:12 #261 [Verbose] >
00:00:12 #262 [Verbose] > inl complex_unbox forall t. (c : complex t) =
00:00:12 #263 [Verbose] > re c, im c
00:00:12 #264 [Verbose] >
00:00:12 #265 [Verbose] > inl (~.^) c = complex c
00:00:12 #266 [Verbose] >
00:00:12 #267 [Verbose] > inl complex_eq forall t. (a : complex t) (b : complex t) : bool =
00:00:12 #268 [Verbose] > !\($'"!a == !b"')
00:00:12 #269 [Verbose] >
00:00:12 #270 [Verbose] > inl (.=) a b = complex_eq a b
00:00:12 #271 [Verbose] >
00:00:12 #272 [Verbose] > instance equable complex t = complex_eq
00:00:12 #273 [Verbose] >
00:00:12 #274 [Verbose] > inl complex_add forall t. (a : complex t) (b : complex t) : complex t =
00:00:12 #275 [Verbose] > !\($'"!a + !b"')
00:00:12 #276 [Verbose] >
00:00:12 #277 [Verbose] > inl (.+) a b = complex_add a b
00:00:12 #278 [Verbose] >
00:00:12 #279 [Verbose] > inl complex_sub forall t. (a : complex t) (b : complex t) : complex t =
00:00:12 #280 [Verbose] > !\($'"!a - !b"')
00:00:12 #281 [Verbose] >
00:00:12 #282 [Verbose] > inl (.-) a b = complex_sub a b
00:00:12 #283 [Verbose] >
00:00:12 #284 [Verbose] > inl complex_mult forall t. (a : complex t) (b : complex t) : complex t =
00:00:12 #285 [Verbose] > !\($'"!a * !b"')
00:00:12 #286 [Verbose] >
00:00:12 #287 [Verbose] > inl (.*) a b = complex_mult a b
00:00:12 #288 [Verbose] >
00:00:12 #289 [Verbose] > inl complex_div forall t. (a : complex t) (b : complex t) : complex t =
00:00:12 #290 [Verbose] > !\($'"!a / !b"')
00:00:12 #291 [Verbose] >
00:00:12 #292 [Verbose] > inl (./) a b = complex_div a b
00:00:12 #293 [Verbose] >
00:00:12 #294 [Verbose] > inl powc forall t. (s : complex t) (c : complex t) : complex t =
00:00:12 #295 [Verbose] > inl c = join c
00:00:12 #296 [Verbose] > inl s = join s
00:00:12 #297 [Verbose] > !\($'"num_complex::Complex::powc(!c, !s)"')
00:00:12 #298 [Verbose] >
00:00:12 #299 [Verbose] > inl (.**) a b = powc b a
00:00:12 #300 [Verbose] >
00:00:12 #301 [Verbose] > inl complex_sin forall t. (c : complex t) : complex t =
00:00:12 #302 [Verbose] > !\($'"!c.sin()"')
00:00:12 #303 [Verbose] >
00:00:12 #304 [Verbose] > inl conj forall t. (c : complex t) : complex t =
00:00:12 #305 [Verbose] > !\($'"!c.conj()"')
00:00:12 #306 [Verbose] >
00:00:12 #307 [Verbose] > ╭─[ 231.04ms - stdout ]────────────────────────────────────────────────────────╮
00:00:12 #308 [Verbose] > │ () │
00:00:12 #309 [Verbose] > │ │
00:00:12 #310 [Verbose] > │ │
00:00:12 #311 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #312 [Verbose] >
00:00:12 #313 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:12 #314 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:12 #315 [Verbose] > │ ## zeta │
00:00:12 #316 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #317 [Verbose] >
00:00:12 #318 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:12 #319 [Verbose] > inl zeta log (gamma : complex f64 -> complex f64) (s : complex f64) : complex
00:00:12 #320 [Verbose] > f64 =
00:00:12 #321 [Verbose] > inl rec zeta count gamma s =
00:00:12 #322 [Verbose] > inl s = join s
00:00:12 #323 [Verbose] > if log then
00:00:12 #324 [Verbose] > !\($'"println\!(\\\"zeta / count: {:?} / s: {:?}\\\", !count, !s)"')
00:00:12 #325 [Verbose] > if re s > 1 then
00:00:12 #326 [Verbose] > (.^(0, 0), (am.init 10000i32 id : a i32 _))
00:00:12 #327 [Verbose] > ||> am.fold fun acc n =>
00:00:12 #328 [Verbose] > acc .+ (.^(1, 0) ./ (.^(f64 n, 0) .** s))
00:00:12 #329 [Verbose] > else
00:00:12 #330 [Verbose] > inl gamma_term = gamma (.^(1, 0) .- s)
00:00:12 #331 [Verbose] > inl sin_term = .^(pi, 0) .* s ./ .^(2, 0) |> complex_sin
00:00:12 #332 [Verbose] > inl one_minus_s = .^(1 - re s, -(im s))
00:00:12 #333 [Verbose] > inl mirror_term =
00:00:12 #334 [Verbose] > if re one_minus_s <= 1
00:00:12 #335 [Verbose] > then .^(0, 0)
00:00:12 #336 [Verbose] > else
00:00:12 #337 [Verbose] > if count <= 3
00:00:12 #338 [Verbose] > then zeta (count + 1) gamma one_minus_s
00:00:12 #339 [Verbose] > else one_minus_s
00:00:12 #340 [Verbose] > inl reflection_formula =
00:00:12 #341 [Verbose] > .^(2, 0) .* (.^(pi, 0) .** s) .* sin_term .* gamma_term .*
00:00:12 #342 [Verbose] > mirror_term
00:00:12 #343 [Verbose] > reflection_formula
00:00:12 #344 [Verbose] > join zeta 0i32 gamma s
00:00:12 #345 [Verbose] >
00:00:12 #346 [Verbose] > ╭─[ 232.38ms - stdout ]────────────────────────────────────────────────────────╮
00:00:12 #347 [Verbose] > │ () │
00:00:12 #348 [Verbose] > │ │
00:00:12 #349 [Verbose] > │ │
00:00:12 #350 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #351 [Verbose] >
00:00:12 #352 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:12 #353 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:12 #354 [Verbose] > │ ## eval │
00:00:12 #355 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #356 [Verbose] >
00:00:12 #357 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:12 #358 [Verbose] > inl module_from_code (py : python) (code : string) : _ (bound pymodule) _ =
00:00:12 #359 [Verbose] > inl py = join py
00:00:12 #360 [Verbose] > inl code = code |> sm'.as_str
00:00:12 #361 [Verbose] > !\($'"pyo3::types::PyModule::from_code_bound(!py, !code, \\"\\", \\"\\")"')
00:00:12 #362 [Verbose] > |> resultm.map_error' fun (x : pyerr) => x |> sm'.format'
00:00:12 #363 [Verbose] >
00:00:12 #364 [Verbose] > inl use_pyanymethods () =
00:00:12 #365 [Verbose] > global "Fable.Core.RustInterop.emitRustExpr () \");\nuse
00:00:12 #366 [Verbose] > pyo3::prelude::PyAnyMethods;\n//\""
00:00:12 #367 [Verbose] >
00:00:12 #368 [Verbose] > inl getattr (attr : string) (module : bound pymodule) : _ (bound pyany) _ =
00:00:12 #369 [Verbose] > inl attr = attr |> sm'.as_str
00:00:12 #370 [Verbose] > inl module = join module
00:00:12 #371 [Verbose] > use_pyanymethods ()
00:00:12 #372 [Verbose] > !\($'"!module.getattr(!attr)"')
00:00:12 #373 [Verbose] > |> resultm.map_error' fun (x : pyerr) => x |> sm'.format'
00:00:12 #374 [Verbose] >
00:00:12 #375 [Verbose] > inl call forall t. (args : t) (module : bound pyany) : _ (bound pyany) _ =
00:00:12 #376 [Verbose] > inl args = join args
00:00:12 #377 [Verbose] > inl module = join module
00:00:12 #378 [Verbose] > !\($'"pyo3::prelude::PyAnyMethods::call(&!module, ((*!args).0, *(*!args).1),
00:00:12 #379 [Verbose] > None)"')
00:00:12 #380 [Verbose] > |> resultm.map_error' fun (x : pyerr) => x |> sm'.format'
00:00:12 #381 [Verbose] >
00:00:12 #382 [Verbose] > inl extract forall t. (result : bound pyany) : _ t _ =
00:00:12 #383 [Verbose] > inl result = join result
00:00:12 #384 [Verbose] > use_pyanymethods ()
00:00:12 #385 [Verbose] > !\($'"!result.extract()"')
00:00:12 #386 [Verbose] > |> resultm.map_error' fun (x : pyerr) => x |> sm'.format'
00:00:12 #387 [Verbose] >
00:00:12 #388 [Verbose] > inl eval py code (args : pair bool (pair f64 f64)) : _ (_ f64) sm'.std_string =
00:00:12 #389 [Verbose] > inl code =
00:00:12 #390 [Verbose] > code
00:00:12 #391 [Verbose] > |> module_from_code py
00:00:12 #392 [Verbose] > |> resultm.unwrap'
00:00:12 #393 [Verbose] > inl fn =
00:00:12 #394 [Verbose] > code
00:00:12 #395 [Verbose] > |> getattr "fn"
00:00:12 #396 [Verbose] > |> resultm.unwrap'
00:00:12 #397 [Verbose] >
00:00:12 #398 [Verbose] > fn
00:00:12 #399 [Verbose] > |> call args
00:00:12 #400 [Verbose] > |> resultm.try'
00:00:12 #401 [Verbose] > |> extract
00:00:12 #402 [Verbose] > |> resultm.try'
00:00:12 #403 [Verbose] > |> complex
00:00:12 #404 [Verbose] > |> Ok
00:00:12 #405 [Verbose] > |> resultm.box
00:00:12 #406 [Verbose] >
00:00:12 #407 [Verbose] > inl call1_ log py s code =
00:00:12 #408 [Verbose] > inl code = join (a code : _ i32 _) |> sm'.concat_array_trailing "\n"
00:00:12 #409 [Verbose] >
00:00:12 #410 [Verbose] > inl s = new_pair (re s) (im s)
00:00:12 #411 [Verbose] > inl args = new_pair log s
00:00:12 #412 [Verbose] >
00:00:12 #413 [Verbose] > eval py code args
00:00:12 #414 [Verbose] >
00:00:12 #415 [Verbose] > inl call1_ log name py s line =
00:00:12 #416 [Verbose] > inl s = join s
00:00:12 #417 [Verbose] > join
00:00:12 #418 [Verbose] > ;[[
00:00:12 #419 [Verbose] > $'$"import sys"'
00:00:12 #420 [Verbose] > $'$"import traceback"'
00:00:12 #421 [Verbose] > $'$"import re"'
00:00:12 #422 [Verbose] > $'$"count = 0"'
00:00:12 #423 [Verbose] > $'$"memory_address_pattern = re.compile(r\' at 0x[[0-9a-fA-F]]+\')"'
00:00:12 #424 [Verbose] > $'$"def trace_calls(frame, event, arg):"'
00:00:12 #425 [Verbose] > $'$" global count"'
00:00:12 #426 [Verbose] > $'$" count += 1"'
00:00:12 #427 [Verbose] > $'$" if count < 200:"'
00:00:12 #428 [Verbose] > $'$" try:"'
00:00:12 #429 [Verbose] > $'$" args = {{ k: v for k, v in frame.f_locals.items() if
00:00:12 #430 [Verbose] > frame.f_code.co_name \!= \'make_mpc\' and k not in [[\'ctx\']] and not
00:00:12 #431 [Verbose] > callable(v) }}"'
00:00:12 #432 [Verbose] > $'$" args_str = \', \'.join([[
00:00:12 #433 [Verbose] > f\\\"{{k}}={{re.sub(memory_address_pattern, \' at 0x<?>\', repr(v))}}\\\" for k,
00:00:12 #434 [Verbose] > v in args.items() ]])"'
00:00:12 #435 [Verbose] > $'$" print(f\\\"{{event}}({!name}) / f_code.co_name:
00:00:12 #436 [Verbose] > {{frame.f_code.co_name}} / f_locals: {{args_str}} / f_lineno: {{frame.f_lineno}}
00:00:12 #437 [Verbose] > / f_code.co_filename:
00:00:12 #438 [Verbose] > {{frame.f_code.co_filename.split(\'site-packages\')[[-1]]}} / f_back.f_lineno:
00:00:12 #439 [Verbose] > {{ \'\' if frame.f_back is None else frame.f_back.f_lineno }}
00:00:12 #440 [Verbose] > f_back.f_code.co_filename: {{ \'\' if frame.f_back is None else
00:00:12 #441 [Verbose] > frame.f_back.f_code.co_filename.split(\'site-packages\')[[-1]] }} / arg:
00:00:12 #442 [Verbose] > {{re.sub(memory_address_pattern, \' at 0x<?>\', repr(arg))}}\\\", flush=True)"'
00:00:12 #443 [Verbose] > $'$" except ValueError as e:"'
00:00:12 #444 [Verbose] > $'$" print(f\'{!name} / e: {{e}}\', flush=True)"'
00:00:12 #445 [Verbose] > $'$" return trace_calls"'
00:00:12 #446 [Verbose] > $'$"import mpmath"'
00:00:12 #447 [Verbose] > $'$"def fn(log, s):"'
00:00:12 #448 [Verbose] > $'$" global count"'
00:00:12 #449 [Verbose] > $'$" if log:"'
00:00:12 #450 [Verbose] > $'$" print(f\'{!name} / s: {{s}} / count: {{count}}\',
00:00:12 #451 [Verbose] > flush=True)"'
00:00:12 #452 [Verbose] > $'$" s = complex(*s)"'
00:00:12 #453 [Verbose] > $'$" try:"'
00:00:12 #454 [Verbose] > $'$" if log: sys.settrace(trace_calls)"'
00:00:12 #455 [Verbose] > line
00:00:12 #456 [Verbose] > $'$" if log:"'
00:00:12 #457 [Verbose] > $'$" sys.settrace(None)"'
00:00:12 #458 [Verbose] > $'$" print(f\'{!name} / result: {{s}} / count:
00:00:12 #459 [Verbose] > {{count}}\', flush=True)"'
00:00:12 #460 [Verbose] > $'$" except ValueError as e:"'
00:00:12 #461 [Verbose] > $'$" if s.real == 1:"'
00:00:12 #462 [Verbose] > $'$" s = complex(float(\'inf\'), 0)"'
00:00:12 #463 [Verbose] > $'$" return (s.real, s.imag)"'
00:00:12 #464 [Verbose] > ]]
00:00:12 #465 [Verbose] > |> call1_ log py s
00:00:12 #466 [Verbose] >
00:00:12 #467 [Verbose] > inl gamma_ log py s =
00:00:12 #468 [Verbose] > call1_ log "gamma_" py s $'$" s = mpmath.gamma(s)"'
00:00:12 #469 [Verbose] >
00:00:12 #470 [Verbose] > inl zeta_ log py s =
00:00:12 #471 [Verbose] > call1_ log "zeta_" py s $'$" s = mpmath.zeta(s)"'
00:00:12 #472 [Verbose] >
00:00:12 #473 [Verbose] > ╭─[ 260.42ms - stdout ]────────────────────────────────────────────────────────╮
00:00:12 #474 [Verbose] > │ () │
00:00:12 #475 [Verbose] > │ │
00:00:12 #476 [Verbose] > │ │
00:00:12 #477 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #478 [Verbose] >
00:00:12 #479 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:12 #480 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:12 #481 [Verbose] > │ ## run_test │
00:00:12 #482 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #483 [Verbose] >
00:00:12 #484 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:12 #485 [Verbose] > inl run_test log closure_fix (fn : (complex f64 -> complex f64) * (complex f64
00:00:12 #486 [Verbose] > -> complex f64) -> ()) =
00:00:12 #487 [Verbose] > inl fn_ (py : python) : resultm.result' () pyerr =
00:00:12 #488 [Verbose] > inl nan () =
00:00:12 #489 [Verbose] > !\($'"f64::NAN"')
00:00:12 #490 [Verbose] > inl gamma__ = fun (s : complex f64) =>
00:00:12 #491 [Verbose] > inl result = gamma_ log py s
00:00:12 #492 [Verbose] > if log then
00:00:12 #493 [Verbose] > inl s = join s
00:00:12 #494 [Verbose] > !\($'"println\!(\\\"gamma__ / s: {:?} / result: {:?}\\\", !s,
00:00:12 #495 [Verbose] > !result)"')
00:00:12 #496 [Verbose] > result |> resultm.ok' |> optionm'.unbox |> optionm'.default_value
00:00:12 #497 [Verbose] > .^(nan (), nan ())
00:00:12 #498 [Verbose] > inl zeta__ = fun (s : complex f64) =>
00:00:12 #499 [Verbose] > inl result = zeta_ log py s
00:00:12 #500 [Verbose] >
00:00:12 #501 [Verbose] > inl z = zeta true gamma__ s
00:00:12 #502 [Verbose] >
00:00:12 #503 [Verbose] > if log then
00:00:12 #504 [Verbose] > inl s = join s
00:00:12 #505 [Verbose] > !\($'"println\!(\\\"zeta__ / s: {:?} / result: {:?} / z:
00:00:12 #506 [Verbose] > {:?}\\\", !s, !result, !z)"')
00:00:12 #507 [Verbose] >
00:00:12 #508 [Verbose] > // re result - re x |> abs
00:00:12 #509 [Verbose] > // |> _assert_lt 0.001
00:00:12 #510 [Verbose] >
00:00:12 #511 [Verbose] > // im result - im x |> abs
00:00:12 #512 [Verbose] > // |> _assert_lt 0.001
00:00:12 #513 [Verbose] >
00:00:12 #514 [Verbose] > result |> resultm.ok' |> optionm'.unbox |> optionm'.default_value
00:00:12 #515 [Verbose] > .^(nan (), nan ())
00:00:12 #516 [Verbose] > join fn (zeta__, gamma__)
00:00:12 #517 [Verbose] >
00:00:12 #518 [Verbose] > Ok ()
00:00:12 #519 [Verbose] > |> resultm.box
00:00:12 #520 [Verbose] >
00:00:12 #521 [Verbose] > join
00:00:12 #522 [Verbose] > !\($'"pyo3::prepare_freethreaded_python()"') : ()
00:00:12 #523 [Verbose] >
00:00:12 #524 [Verbose] > !\($'"let __result = pyo3::Python::with_gil(|py| -> pyo3::PyResult<()> {
00:00:12 #525 [Verbose] > //"')
00:00:12 #526 [Verbose] >
00:00:12 #527 [Verbose] > let x' = fn_ (!\($'"py"') : python)
00:00:12 #528 [Verbose] > inl x' = join x'
00:00:12 #529 [Verbose] >
00:00:12 #530 [Verbose] > inl closure_fix = 2u8, 1u8
00:00:12 #531 [Verbose] > x' |> rust.fix_closure closure_fix
00:00:12 #532 [Verbose] >
00:00:12 #533 [Verbose] > (!\($'"__result"') : _ () pyerr)
00:00:12 #534 [Verbose] > |> resultm.unwrap'
00:00:13 #535 [Verbose] >
00:00:13 #536 [Verbose] > ╭─[ 251.55ms - stdout ]────────────────────────────────────────────────────────╮
00:00:13 #537 [Verbose] > │ () │
00:00:13 #538 [Verbose] > │ │
00:00:13 #539 [Verbose] > │ │
00:00:13 #540 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:13 #541 [Verbose] >
00:00:13 #542 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:13 #543 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:13 #544 [Verbose] > │ ## test_zeta_at_known_values_ │
00:00:13 #545 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:13 #546 [Verbose] >
00:00:13 #547 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:13 #548 [Verbose] > inl test_zeta_at_known_values_ log = run_test log (3u8, 2u8) fun zeta, gamma =>
00:00:13 #549 [Verbose] > ;[[
00:00:13 #550 [Verbose] > .^(2, 0), pi ** 2 / 6
00:00:13 #551 [Verbose] > .^(-1, 0), -1 / 12
00:00:13 #552 [Verbose] > ]]
00:00:13 #553 [Verbose] > |> fun x => a x : _ i32 _
00:00:13 #554 [Verbose] > |> am.iter fun s, e =>
00:00:13 #555 [Verbose] > inl result = zeta s
00:00:13 #556 [Verbose] >
00:00:13 #557 [Verbose] > result |> im |> _assert_eq 0
00:00:13 #558 [Verbose] > re result - e |> abs |> _assert_lt 0.0001
00:00:13 #559 [Verbose] >
00:00:13 #560 [Verbose] > ╭─[ 217.52ms - stdout ]────────────────────────────────────────────────────────╮
00:00:13 #561 [Verbose] > │ () │
00:00:13 #562 [Verbose] > │ │
00:00:13 #563 [Verbose] > │ │
00:00:13 #564 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:13 #565 [Verbose] >
00:00:13 #566 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:13 #567 [Verbose] > // // test
00:00:13 #568 [Verbose] > // // rust=
00:00:13 #569 [Verbose] > // // print_code=false
00:00:13 #570 [Verbose] >
00:00:13 #571 [Verbose] > types ()
00:00:13 #572 [Verbose] > test_zeta_at_known_values_ true
00:00:21 #573 [Verbose] >
00:00:21 #574 [Verbose] > ╭─[ 8.35s - return value ]─────────────────────────────────────────────────────╮
00:00:21 #575 [Verbose] > │ zeta_ / s: (2.0, 0.0) / count: 0 │
00:00:21 #576 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0, │
00:00:21 #577 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: │
00:00:21 #578 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:21 #579 [Verbose] > │ / arg: None │
00:00:21 #580 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0, │
00:00:21 #581 [Verbose] > │ method=None, kwargs={} / f_lineno: 532 / f_code.co_filename: │
00:00:21 #582 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:21 #583 [Verbose] > │ / arg: None │
00:00:21 #584 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0, │
00:00:21 #585 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: │
00:00:21 #586 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:21 #587 [Verbose] > │ / arg: None │
00:00:21 #588 [Verbose] > │ line(zeta_) / f_code.co_name: z... │
00:00:21 #589 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:21 #590 [Verbose] >
00:00:21 #591 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:21 #592 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:21 #593 [Verbose] > │ ## test_zeta_at_2_minus2 │
00:00:21 #594 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:21 #595 [Verbose] >
00:00:21 #596 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:21 #597 [Verbose] > inl test_zeta_at_2_minus2 log = run_test log (6u8, 5u8) fun zeta, gamma =>
00:00:21 #598 [Verbose] > inl s = .^(2, -2)
00:00:21 #599 [Verbose] > inl result = zeta s
00:00:21 #600 [Verbose] >
00:00:21 #601 [Verbose] > (re result - 0.8673) |> abs |> _assert_lt 0.001
00:00:21 #602 [Verbose] > (im result - 0.2750) |> abs |> _assert_lt 0.001
00:00:22 #603 [Verbose] >
00:00:22 #604 [Verbose] > ╭─[ 276.73ms - stdout ]────────────────────────────────────────────────────────╮
00:00:22 #605 [Verbose] > │ () │
00:00:22 #606 [Verbose] > │ │
00:00:22 #607 [Verbose] > │ │
00:00:22 #608 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:22 #609 [Verbose] >
00:00:22 #610 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:22 #611 [Verbose] > // // test
00:00:22 #612 [Verbose] > // // rust=
00:00:22 #613 [Verbose] > // // print_code=false
00:00:22 #614 [Verbose] >
00:00:22 #615 [Verbose] > types ()
00:00:22 #616 [Verbose] > test_zeta_at_2_minus2 true
00:00:29 #617 [Verbose] >
00:00:29 #618 [Verbose] > ╭─[ 7.49s - return value ]─────────────────────────────────────────────────────╮
00:00:29 #619 [Verbose] > │ zeta_ / s: (2.0, -2.0) / count: 0 │
00:00:29 #620 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1, derivative=0, │
00:00:29 #621 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: │
00:00:29 #622 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:29 #623 [Verbose] > │ / arg: None │
00:00:29 #624 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1, derivative=0, │
00:00:29 #625 [Verbose] > │ method=None, kwargs={} / f_lineno: 532 / f_code.co_filename: │
00:00:29 #626 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:29 #627 [Verbose] > │ / arg: None │
00:00:29 #628 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1, derivative=0, │
00:00:29 #629 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: │
00:00:29 #630 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:29 #631 [Verbose] > │ / arg: None │
00:00:29 #632 [Verbose] > │ line(zeta_) / f_code.co_name: ... │
00:00:29 #633 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:29 #634 [Verbose] >
00:00:29 #635 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:29 #636 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:29 #637 [Verbose] > │ ## test_trivial_zero_at_negative_even___ │
00:00:29 #638 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:29 #639 [Verbose] >
00:00:29 #640 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:29 #641 [Verbose] > inl test_trivial_zero_at_negative_even___ log = run_test log (2u8, 1u8) fun
00:00:29 #642 [Verbose] > zeta, gamma =>
00:00:29 #643 [Verbose] > (join listm'.init_series -2f64 -40 -2)
00:00:29 #644 [Verbose] > |> listm.iter fun n =>
00:00:29 #645 [Verbose] > inl s = .^(n, 0)
00:00:29 #646 [Verbose] > inl result = zeta s
00:00:29 #647 [Verbose] >
00:00:29 #648 [Verbose] > result |> re |> _assert_eq 0
00:00:29 #649 [Verbose] > result |> im |> _assert_eq 0
00:00:29 #650 [Verbose] >
00:00:29 #651 [Verbose] > ╭─[ 250.44ms - stdout ]────────────────────────────────────────────────────────╮
00:00:29 #652 [Verbose] > │ () │
00:00:29 #653 [Verbose] > │ │
00:00:29 #654 [Verbose] > │ │
00:00:29 #655 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:29 #656 [Verbose] >
00:00:29 #657 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:29 #658 [Verbose] > // // test
00:00:29 #659 [Verbose] > // // rust=
00:00:29 #660 [Verbose] > // // print_code=false
00:00:29 #661 [Verbose] >
00:00:29 #662 [Verbose] > types ()
00:00:29 #663 [Verbose] > test_trivial_zero_at_negative_even___ true
00:00:37 #664 [Verbose] >
00:00:37 #665 [Verbose] > ╭─[ 7.66s - return value ]─────────────────────────────────────────────────────╮
00:00:37 #666 [Verbose] > │ zeta_ / s: (-2.0, 0.0) / count: 0 │
00:00:37 #667 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j), a=1, derivative=0, │
00:00:37 #668 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: │
00:00:37 #669 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:37 #670 [Verbose] > │ / arg: None │
00:00:37 #671 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j), a=1, derivative=0, │
00:00:37 #672 [Verbose] > │ method=None, kwargs={} / f_lineno: 532 / f_code.co_filename: │
00:00:37 #673 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:37 #674 [Verbose] > │ / arg: None │
00:00:37 #675 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j), a=1, derivative=0, │
00:00:37 #676 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: │
00:00:37 #677 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:37 #678 [Verbose] > │ / arg: None │
00:00:37 #679 [Verbose] > │ line(zeta_) / f_code.co_nam... │
00:00:37 #680 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:37 #681 [Verbose] >
00:00:37 #682 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:37 #683 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:37 #684 [Verbose] > │ ## test_non_trivial_zero___ │
00:00:37 #685 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:37 #686 [Verbose] >
00:00:37 #687 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:37 #688 [Verbose] > inl test_non_trivial_zero___ log = run_test log (3u8, 2u8) fun zeta, gamma =>
00:00:37 #689 [Verbose] > ;[[
00:00:37 #690 [Verbose] > .^(0.5, 14.134725)
00:00:37 #691 [Verbose] > .^(0.5, 21.022040)
00:00:37 #692 [Verbose] > .^(0.5, 25.010857)
00:00:37 #693 [Verbose] > .^(0.5, 30.424876)
00:00:37 #694 [Verbose] > .^(0.5, 32.935062)
00:00:37 #695 [Verbose] > .^(0.5, 37.586178)
00:00:37 #696 [Verbose] > ]]
00:00:37 #697 [Verbose] > |> fun x => a x : _ i32 _
00:00:37 #698 [Verbose] > |> am.iter fun x =>
00:00:37 #699 [Verbose] > inl result = zeta x
00:00:37 #700 [Verbose] > result |> re |> abs |> _assert_lt 0.0001
00:00:37 #701 [Verbose] > result |> im |> abs |> _assert_lt 0.0001
00:00:37 #702 [Verbose] >
00:00:37 #703 [Verbose] > ╭─[ 284.29ms - stdout ]────────────────────────────────────────────────────────╮
00:00:37 #704 [Verbose] > │ () │
00:00:37 #705 [Verbose] > │ │
00:00:37 #706 [Verbose] > │ │
00:00:37 #707 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:37 #708 [Verbose] >
00:00:37 #709 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:37 #710 [Verbose] > // // test
00:00:37 #711 [Verbose] > // // rust=
00:00:37 #712 [Verbose] > // // print_code=false
00:00:37 #713 [Verbose] >
00:00:37 #714 [Verbose] > types ()
00:00:37 #715 [Verbose] > test_non_trivial_zero___ true
00:00:45 #716 [Verbose] >
00:00:45 #717 [Verbose] > ╭─[ 7.58s - return value ]─────────────────────────────────────────────────────╮
00:00:45 #718 [Verbose] > │ zeta_ / s: (0.5, 14.134725) / count: 0 │
00:00:45 #719 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(0.5+14.134725j), a=1, │
00:00:45 #720 [Verbose] > │ derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: │
00:00:45 #721 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:45 #722 [Verbose] > │ / arg: None │
00:00:45 #723 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(0.5+14.134725j), a=1, │
00:00:45 #724 [Verbose] > │ derivative=0, method=None, kwargs={} / f_lineno: 532 / f_code.co_filename: │
00:00:45 #725 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:45 #726 [Verbose] > │ / arg: None │
00:00:45 #727 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(0.5+14.134725j), a=1, │
00:00:45 #728 [Verbose] > │ derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / │
00:00:45 #729 [Verbose] > │ f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 / │
00:00:45 #730 [Verbose] > │ f_back.f_code.co_filename: / arg: ... │
00:00:45 #731 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:45 #732 [Verbose] >
00:00:45 #733 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:45 #734 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:45 #735 [Verbose] > │ ## test_real_part_greater_than_one___ │
00:00:45 #736 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:45 #737 [Verbose] >
00:00:45 #738 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:45 #739 [Verbose] > inl test_real_part_greater_than_one___ log = run_test log (3u8, 2u8) fun zeta,
00:00:45 #740 [Verbose] > gamma =>
00:00:45 #741 [Verbose] > inl points = ;[[2; 3; 4; 5; 10; 20; 50]]
00:00:45 #742 [Verbose] > (a points : _ i32 _)
00:00:45 #743 [Verbose] > |> am.iter fun point =>
00:00:45 #744 [Verbose] > inl s = .^(point, 0)
00:00:45 #745 [Verbose] > inl result = zeta s
00:00:45 #746 [Verbose] > result |> re |> _assert_gt 0
00:00:45 #747 [Verbose] > result |> im |> _assert_eq 0
00:00:45 #748 [Verbose] >
00:00:45 #749 [Verbose] > ╭─[ 323.31ms - stdout ]────────────────────────────────────────────────────────╮
00:00:45 #750 [Verbose] > │ () │
00:00:45 #751 [Verbose] > │ │
00:00:45 #752 [Verbose] > │ │
00:00:45 #753 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:45 #754 [Verbose] >
00:00:45 #755 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:45 #756 [Verbose] > // // test
00:00:45 #757 [Verbose] > // // rust=
00:00:45 #758 [Verbose] > // // print_code=false
00:00:45 #759 [Verbose] >
00:00:45 #760 [Verbose] > types ()
00:00:45 #761 [Verbose] > test_real_part_greater_than_one___ true
00:00:53 #762 [Verbose] >
00:00:53 #763 [Verbose] > ╭─[ 7.65s - return value ]─────────────────────────────────────────────────────╮
00:00:53 #764 [Verbose] > │ zeta_ / s: (2.0, 0.0) / count: 0 │
00:00:53 #765 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0, │
00:00:53 #766 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: │
00:00:53 #767 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:53 #768 [Verbose] > │ / arg: None │
00:00:53 #769 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0, │
00:00:53 #770 [Verbose] > │ method=None, kwargs={} / f_lineno: 532 / f_code.co_filename: │
00:00:53 #771 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:53 #772 [Verbose] > │ / arg: None │
00:00:53 #773 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0, │
00:00:53 #774 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: │
00:00:53 #775 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:53 #776 [Verbose] > │ / arg: None │
00:00:53 #777 [Verbose] > │ line(zeta_) / f_code.co_name: z... │
00:00:53 #778 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:53 #779 [Verbose] >
00:00:53 #780 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:53 #781 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:53 #782 [Verbose] > │ ## test_zeta_at_1___ │
00:00:53 #783 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:53 #784 [Verbose] >
00:00:53 #785 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:53 #786 [Verbose] > inl test_zeta_at_1___ log = run_test log (6u8, 5u8) fun zeta, gamma =>
00:00:53 #787 [Verbose] > inl s = .^(1, 0)
00:00:53 #788 [Verbose] > inl result = zeta s
00:00:53 #789 [Verbose] > result |> re |> _assert_eq limit.max
00:00:53 #790 [Verbose] > result |> im |> _assert_eq 0
00:00:53 #791 [Verbose] >
00:00:53 #792 [Verbose] > ╭─[ 251.82ms - stdout ]────────────────────────────────────────────────────────╮
00:00:53 #793 [Verbose] > │ () │
00:00:53 #794 [Verbose] > │ │
00:00:53 #795 [Verbose] > │ │
00:00:53 #796 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:53 #797 [Verbose] >
00:00:53 #798 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:53 #799 [Verbose] > // // test
00:00:53 #800 [Verbose] > // // rust=
00:00:53 #801 [Verbose] > // // print_code=false
00:00:53 #802 [Verbose] >
00:00:53 #803 [Verbose] > types ()
00:00:53 #804 [Verbose] > test_zeta_at_1___ true
00:01:00 #805 [Verbose] >
00:01:00 #806 [Verbose] > ╭─[ 7.12s - return value ]─────────────────────────────────────────────────────╮
00:01:00 #807 [Verbose] > │ zeta_ / s: (1.0, 0.0) / count: 0 │
00:01:00 #808 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1, derivative=0, │
00:01:00 #809 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: │
00:01:00 #810 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:00 #811 [Verbose] > │ / arg: None │
00:01:00 #812 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1, derivative=0, │
00:01:00 #813 [Verbose] > │ method=None, kwargs={} / f_lineno: 532 / f_code.co_filename: │
00:01:00 #814 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:00 #815 [Verbose] > │ / arg: None │
00:01:00 #816 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1, derivative=0, │
00:01:00 #817 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: │
00:01:00 #818 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:00 #819 [Verbose] > │ / arg: None │
00:01:00 #820 [Verbose] > │ line(zeta_) / f_code.co_name: z... │
00:01:00 #821 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:00 #822 [Verbose] >
00:01:00 #823 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:00 #824 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:00 #825 [Verbose] > │ ## test_symmetry_across_real_axis___ │
00:01:00 #826 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:00 #827 [Verbose] >
00:01:00 #828 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:00 #829 [Verbose] > inl test_symmetry_across_real_axis___ log = run_test log (8u8, 7u8) fun zeta,
00:01:00 #830 [Verbose] > gamma =>
00:01:00 #831 [Verbose] > inl s = .^(2, 10)
00:01:00 #832 [Verbose] > inl result_positive_im = zeta s
00:01:00 #833 [Verbose] > inl result_negative_im = zeta .^(re s, -(im s))
00:01:00 #834 [Verbose] > inl conj = result_negative_im |> conj
00:01:00 #835 [Verbose] > result_positive_im |> re |> _assert_eq (conj |> re)
00:01:00 #836 [Verbose] > result_positive_im |> im |> _assert_eq (conj |> im)
00:01:00 #837 [Verbose] >
00:01:00 #838 [Verbose] > ╭─[ 237.54ms - stdout ]────────────────────────────────────────────────────────╮
00:01:00 #839 [Verbose] > │ () │
00:01:00 #840 [Verbose] > │ │
00:01:00 #841 [Verbose] > │ │
00:01:00 #842 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:00 #843 [Verbose] >
00:01:00 #844 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:00 #845 [Verbose] > // // test
00:01:00 #846 [Verbose] > // // rust=
00:01:00 #847 [Verbose] > // // print_code=false
00:01:00 #848 [Verbose] >
00:01:00 #849 [Verbose] > types ()
00:01:00 #850 [Verbose] > test_symmetry_across_real_axis___ true
00:01:08 #851 [Verbose] >
00:01:08 #852 [Verbose] > ╭─[ 7.23s - return value ]─────────────────────────────────────────────────────╮
00:01:08 #853 [Verbose] > │ zeta_ / s: (2.0, 10.0) / count: 0 │
00:01:08 #854 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j), a=1, derivative=0, │
00:01:08 #855 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: │
00:01:08 #856 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:08 #857 [Verbose] > │ / arg: None │
00:01:08 #858 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j), a=1, derivative=0, │
00:01:08 #859 [Verbose] > │ method=None, kwargs={} / f_lineno: 532 / f_code.co_filename: │
00:01:08 #860 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:08 #861 [Verbose] > │ / arg: None │
00:01:08 #862 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j), a=1, derivative=0, │
00:01:08 #863 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: │
00:01:08 #864 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:08 #865 [Verbose] > │ / arg: None │
00:01:08 #866 [Verbose] > │ line(zeta_) / f_code.co_nam... │
00:01:08 #867 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:08 #868 [Verbose] >
00:01:08 #869 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:08 #870 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:08 #871 [Verbose] > │ ## test_behavior_near_origin___ │
00:01:08 #872 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:08 #873 [Verbose] >
00:01:08 #874 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:08 #875 [Verbose] > inl test_behavior_near_origin___ log = run_test log (6u8, 5u8) fun zeta, gamma
00:01:08 #876 [Verbose] > =>
00:01:08 #877 [Verbose] > inl s = .^(0.01, 0.01)
00:01:08 #878 [Verbose] > inl result = zeta s
00:01:08 #879 [Verbose] > result |> re |> _assert_lt limit.max
00:01:08 #880 [Verbose] > result |> im |> _assert_lt limit.max
00:01:08 #881 [Verbose] >
00:01:08 #882 [Verbose] > ╭─[ 259.31ms - stdout ]────────────────────────────────────────────────────────╮
00:01:08 #883 [Verbose] > │ () │
00:01:08 #884 [Verbose] > │ │
00:01:08 #885 [Verbose] > │ │
00:01:08 #886 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:08 #887 [Verbose] >
00:01:08 #888 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:08 #889 [Verbose] > // // test
00:01:08 #890 [Verbose] > // // rust=
00:01:08 #891 [Verbose] > // // print_code=false
00:01:08 #892 [Verbose] >
00:01:08 #893 [Verbose] > types ()
00:01:08 #894 [Verbose] > test_behavior_near_origin___ true
00:01:15 #895 [Verbose] >
00:01:15 #896 [Verbose] > ╭─[ 6.98s - return value ]─────────────────────────────────────────────────────╮
00:01:15 #897 [Verbose] > │ zeta_ / s: (0.01, 0.01) / count: 0 │
00:01:15 #898 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(0.01+0.01j), a=1, │
00:01:15 #899 [Verbose] > │ derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: │
00:01:15 #900 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:15 #901 [Verbose] > │ / arg: None │
00:01:15 #902 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(0.01+0.01j), a=1, │
00:01:15 #903 [Verbose] > │ derivative=0, method=None, kwargs={} / f_lineno: 532 / f_code.co_filename: │
00:01:15 #904 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:15 #905 [Verbose] > │ / arg: None │
00:01:15 #906 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(0.01+0.01j), a=1, │
00:01:15 #907 [Verbose] > │ derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / │
00:01:15 #908 [Verbose] > │ f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 / │
00:01:15 #909 [Verbose] > │ f_back.f_code.co_filename: / arg: None │
00:01:15 #910 [Verbose] > │ line(zeta_)... │
00:01:15 #911 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:15 #912 [Verbose] >
00:01:15 #913 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:15 #914 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:15 #915 [Verbose] > │ ## test_imaginary_axis │
00:01:15 #916 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:15 #917 [Verbose] >
00:01:15 #918 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:15 #919 [Verbose] > inl test_imaginary_axis log = run_test log (3u8, 2u8) fun zeta, gamma =>
00:01:15 #920 [Verbose] > (join a ;[[10; 20; 30; 40; 50; 60; 70; 80; 90; 100]] : _ i32 _)
00:01:15 #921 [Verbose] > |> am.iter fun s =>
00:01:15 #922 [Verbose] > inl s = .^(0, s)
00:01:15 #923 [Verbose] > inl result = zeta s
00:01:15 #924 [Verbose] > result |> re |> _assert_ne 0
00:01:15 #925 [Verbose] > result |> im |> _assert_ne 0
00:01:15 #926 [Verbose] >
00:01:15 #927 [Verbose] > ╭─[ 238.90ms - stdout ]────────────────────────────────────────────────────────╮
00:01:15 #928 [Verbose] > │ () │
00:01:15 #929 [Verbose] > │ │
00:01:15 #930 [Verbose] > │ │
00:01:15 #931 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:15 #932 [Verbose] >
00:01:15 #933 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:15 #934 [Verbose] > // // test
00:01:15 #935 [Verbose] > // // rust=
00:01:15 #936 [Verbose] > // // print_code=false
00:01:15 #937 [Verbose] >
00:01:15 #938 [Verbose] > types ()
00:01:15 #939 [Verbose] > test_imaginary_axis true
00:01:23 #940 [Verbose] >
00:01:23 #941 [Verbose] > ╭─[ 7.79s - return value ]─────────────────────────────────────────────────────╮
00:01:23 #942 [Verbose] > │ zeta_ / s: (0.0, 10.0) / count: 0 │
00:01:23 #943 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1, derivative=0, │
00:01:23 #944 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: │
00:01:23 #945 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:23 #946 [Verbose] > │ / arg: None │
00:01:23 #947 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1, derivative=0, │
00:01:23 #948 [Verbose] > │ method=None, kwargs={} / f_lineno: 532 / f_code.co_filename: │
00:01:23 #949 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:23 #950 [Verbose] > │ / arg: None │
00:01:23 #951 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1, derivative=0, │
00:01:23 #952 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: │
00:01:23 #953 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:23 #954 [Verbose] > │ / arg: None │
00:01:23 #955 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_... │
00:01:23 #956 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:23 #957 [Verbose] >
00:01:23 #958 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:23 #959 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:23 #960 [Verbose] > │ ## test_critical_strip │
00:01:23 #961 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:23 #962 [Verbose] >
00:01:23 #963 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:23 #964 [Verbose] > inl test_critical_strip log = run_test log (3u8, 2u8) fun zeta, gamma =>
00:01:23 #965 [Verbose] > ;[[
00:01:23 #966 [Verbose] > .^(0.5, 14.134725)
00:01:23 #967 [Verbose] > .^(0.75, 20.5)
00:01:23 #968 [Verbose] > .^(1.25, 30.1)
00:01:23 #969 [Verbose] > .^(0.25, 40.0)
00:01:23 #970 [Verbose] > .^(1.0, 50.0)
00:01:23 #971 [Verbose] > ]]
00:01:23 #972 [Verbose] > |> fun x => a x : _ i32 _
00:01:23 #973 [Verbose] > |> am.iter fun s =>
00:01:23 #974 [Verbose] > inl result = zeta s
00:01:23 #975 [Verbose] > result |> re |> _assert_ne 0
00:01:23 #976 [Verbose] > result |> im |> _assert_ne 0
00:01:23 #977 [Verbose] >
00:01:23 #978 [Verbose] > ╭─[ 224.44ms - stdout ]────────────────────────────────────────────────────────╮
00:01:23 #979 [Verbose] > │ () │
00:01:23 #980 [Verbose] > │ │
00:01:23 #981 [Verbose] > │ │
00:01:23 #982 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:23 #983 [Verbose] >
00:01:23 #984 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:23 #985 [Verbose] > // // test
00:01:23 #986 [Verbose] > // // rust=
00:01:23 #987 [Verbose] > // // print_code=false
00:01:23 #988 [Verbose] >
00:01:23 #989 [Verbose] > types ()
00:01:23 #990 [Verbose] > test_critical_strip true
00:01:31 #991 [Verbose] >
00:01:31 #992 [Verbose] > ╭─[ 7.59s - return value ]─────────────────────────────────────────────────────╮
00:01:31 #993 [Verbose] > │ zeta_ / s: (0.5, 14.134725) / count: 0 │
00:01:31 #994 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(0.5+14.134725j), a=1, │
00:01:31 #995 [Verbose] > │ derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: │
00:01:31 #996 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:31 #997 [Verbose] > │ / arg: None │
00:01:31 #998 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(0.5+14.134725j), a=1, │
00:01:31 #999 [Verbose] > │ derivative=0, method=None, kwargs={} / f_lineno: 532 / f_code.co_filename: │
00:01:31 #1000 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:31 #1001 [Verbose] > │ / arg: None │
00:01:31 #1002 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(0.5+14.134725j), a=1, │
00:01:31 #1003 [Verbose] > │ derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / │
00:01:31 #1004 [Verbose] > │ f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 / │
00:01:31 #1005 [Verbose] > │ f_back.f_code.co_filename: / arg: ... │
00:01:31 #1006 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:31 #1007 [Verbose] >
00:01:31 #1008 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:31 #1009 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:31 #1010 [Verbose] > │ ## test_reflection_formula_for_specific_value │
00:01:31 #1011 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:31 #1012 [Verbose] >
00:01:31 #1013 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:31 #1014 [Verbose] > inl test_reflection_formula_for_specific_value log = run_test log (3u8, 2u8) fun
00:01:31 #1015 [Verbose] > zeta, gamma =>
00:01:31 #1016 [Verbose] > ;[[
00:01:31 #1017 [Verbose] > .^(3, 4)
00:01:31 #1018 [Verbose] > .^(2.5, -3.5)
00:01:31 #1019 [Verbose] > .^(1.5, 2.5)
00:01:31 #1020 [Verbose] > .^(0.5, 14.134725)
00:01:31 #1021 [Verbose] > ]]
00:01:31 #1022 [Verbose] > |> fun x => a x : _ i32 _
00:01:31 #1023 [Verbose] > |> am.iter fun s =>
00:01:31 #1024 [Verbose] > inl lhs = zeta s
00:01:31 #1025 [Verbose] > inl reflection_coefficient =
00:01:31 #1026 [Verbose] > (.^(2, 0) .** s)
00:01:31 #1027 [Verbose] > .* (.^(pi, 0) .** (s .- .^(1, 0)))
00:01:31 #1028 [Verbose] > .* (.^(pi, 0) .* s ./ .^(2, 0) |> complex_sin)
00:01:31 #1029 [Verbose] > .* gamma (.^(1, 0) .- s)
00:01:31 #1030 [Verbose] >
00:01:31 #1031 [Verbose] > inl one_minus_s = .^(1 - re s, -(im s))
00:01:31 #1032 [Verbose] > inl rhs = reflection_coefficient .* zeta one_minus_s
00:01:31 #1033 [Verbose] >
00:01:31 #1034 [Verbose] > re lhs - re rhs |> abs |> _assert_lt 0.0001
00:01:31 #1035 [Verbose] > im lhs - im rhs |> abs |> _assert_lt 0.0001
00:01:31 #1036 [Verbose] >
00:01:31 #1037 [Verbose] > ╭─[ 271.88ms - stdout ]────────────────────────────────────────────────────────╮
00:01:31 #1038 [Verbose] > │ () │
00:01:31 #1039 [Verbose] > │ │
00:01:31 #1040 [Verbose] > │ │
00:01:31 #1041 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:31 #1042 [Verbose] >
00:01:31 #1043 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:31 #1044 [Verbose] > // // test
00:01:31 #1045 [Verbose] > // // rust=
00:01:31 #1046 [Verbose] > // // print_code=false
00:01:31 #1047 [Verbose] >
00:01:31 #1048 [Verbose] > types ()
00:01:31 #1049 [Verbose] > test_reflection_formula_for_specific_value true
00:01:39 #1050 [Verbose] >
00:01:39 #1051 [Verbose] > ╭─[ 7.63s - return value ]─────────────────────────────────────────────────────╮
00:01:39 #1052 [Verbose] > │ zeta_ / s: (3.0, 4.0) / count: 0 │
00:01:39 #1053 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1, derivative=0, │
00:01:39 #1054 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: │
00:01:39 #1055 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:39 #1056 [Verbose] > │ / arg: None │
00:01:39 #1057 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1, derivative=0, │
00:01:39 #1058 [Verbose] > │ method=None, kwargs={} / f_lineno: 532 / f_code.co_filename: │
00:01:39 #1059 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:39 #1060 [Verbose] > │ / arg: None │
00:01:39 #1061 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1, derivative=0, │
00:01:39 #1062 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: │
00:01:39 #1063 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:39 #1064 [Verbose] > │ / arg: None │
00:01:39 #1065 [Verbose] > │ line(zeta_) / f_code.co_name: z... │
00:01:39 #1066 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:39 #1067 [Verbose] >
00:01:39 #1068 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:39 #1069 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:39 #1070 [Verbose] > │ ## test_euler_product_formula │
00:01:39 #1071 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:39 #1072 [Verbose] >
00:01:39 #1073 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:39 #1074 [Verbose] > inl test_euler_product_formula log = run_test log (3u8, 2u8) fun zeta, gamma =>
00:01:39 #1075 [Verbose] > inl s_values = ;[[2; 2.5; 3; 3.5; 4; 4.5; 5]]
00:01:39 #1076 [Verbose] > inl primes = ;[[2; 3; 5; 7; 11; 13; 17; 19; 23; 29; 31; 37; 41; 43; 47; 53;
00:01:39 #1077 [Verbose] > 59; 61; 67; 71]]
00:01:39 #1078 [Verbose] > (a s_values : _ i32 _)
00:01:39 #1079 [Verbose] > |> am.iter fun s_re =>
00:01:39 #1080 [Verbose] > inl s = .^(s_re, 0)
00:01:39 #1081 [Verbose] > inl product =
00:01:39 #1082 [Verbose] > (1, (a primes : _ i32 _))
00:01:39 #1083 [Verbose] > ||> am.fold fun acc x =>
00:01:39 #1084 [Verbose] > acc * 1 / (1 - x ** -s_re)
00:01:39 #1085 [Verbose] >
00:01:39 #1086 [Verbose] > inl result = zeta s
00:01:39 #1087 [Verbose] > re result - product |> abs |> _assert_lt 0.01
00:01:39 #1088 [Verbose] > result |> im |> _assert_lt 0.01
00:01:39 #1089 [Verbose] >
00:01:39 #1090 [Verbose] > ╭─[ 291.58ms - stdout ]────────────────────────────────────────────────────────╮
00:01:39 #1091 [Verbose] > │ () │
00:01:39 #1092 [Verbose] > │ │
00:01:39 #1093 [Verbose] > │ │
00:01:39 #1094 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:39 #1095 [Verbose] >
00:01:39 #1096 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:39 #1097 [Verbose] > // // test
00:01:39 #1098 [Verbose] > // // rust=
00:01:39 #1099 [Verbose] > // // print_code=false
00:01:39 #1100 [Verbose] >
00:01:39 #1101 [Verbose] > types ()
00:01:39 #1102 [Verbose] > test_euler_product_formula true
00:01:47 #1103 [Verbose] >
00:01:47 #1104 [Verbose] > ╭─[ 7.68s - return value ]─────────────────────────────────────────────────────╮
00:01:47 #1105 [Verbose] > │ zeta_ / s: (2.0, 0.0) / count: 0 │
00:01:47 #1106 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0, │
00:01:47 #1107 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: │
00:01:47 #1108 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:47 #1109 [Verbose] > │ / arg: None │
00:01:47 #1110 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0, │
00:01:47 #1111 [Verbose] > │ method=None, kwargs={} / f_lineno: 532 / f_code.co_filename: │
00:01:47 #1112 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:47 #1113 [Verbose] > │ / arg: None │
00:01:47 #1114 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0, │
00:01:47 #1115 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: │
00:01:47 #1116 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:47 #1117 [Verbose] > │ / arg: None │
00:01:47 #1118 [Verbose] > │ line(zeta_) / f_code.co_name: z... │
00:01:47 #1119 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #1120 [Verbose] >
00:01:47 #1121 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:47 #1122 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:47 #1123 [Verbose] > │ ## graph │
00:01:47 #1124 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #1125 [Verbose] >
00:01:47 #1126 [Verbose] > ── mermaid ─────────────────────────────────────────────────────────────────────
00:01:47 #1127 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:47 #1128 [Verbose] > │ <div class="mermaidMarkdownContainer" style="background-color:white"> │
00:01:47 #1129 [Verbose] > │ <link rel="stylesheet" │
00:01:47 #1130 [Verbose] > │ href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min. │
00:01:47 #1131 [Verbose] > │ css"> │
00:01:47 #1132 [Verbose] > │ <div id="7f24cc2027574e7788da3b07b391e1fb"></div> │
00:01:47 #1133 [Verbose] > │ <script type="module"> │
00:01:47 #1134 [Verbose] > │ │
00:01:47 #1135 [Verbose] > │ import mermaid from │
00:01:47 #1136 [Verbose] > │ 'https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.esm.min.mjs'; │
00:01:47 #1137 [Verbose] > │ let renderTarget = │
00:01:47 #1138 [Verbose] > │ document.getElementById('7f24cc2027574e7788da3b07b391e1fb'); │
00:01:47 #1139 [Verbose] > │ try { │
00:01:47 #1140 [Verbose] > │ const {svg, bindFunctions} = await │
00:01:47 #1141 [Verbose] > │ mermaid.mermaidAPI.render( │
00:01:47 #1142 [Verbose] > │ 'mermaid_7f24cc2027574e7788da3b07b391e1fb', │
00:01:47 #1143 [Verbose] > │ `graph TD │
00:01:47 #1144 [Verbose] > │ zeta("zeta()") --> convert │
00:01:47 #1145 [Verbose] > │ zeta --> f["f()"] │
00:01:47 #1146 [Verbose] > │ f --> mpc_f["mpc_zeta()"] │
00:01:47 #1147 [Verbose] > │ f --> mpf_f["mpf_zeta()"] │
00:01:47 #1148 [Verbose] > │ convert --> from_float │
00:01:47 #1149 [Verbose] > │ from_float --> from_man_exp │
00:01:47 #1150 [Verbose] > │ from_man_exp --> python_bitcount │
00:01:47 #1151 [Verbose] > │ python_bitcount --> _normalize │
00:01:47 #1152 [Verbose] > │ _normalize --> make_mpc │
00:01:47 #1153 [Verbose] > │ make_mpc --> mpc_zeta["mpc_zeta()"] │
00:01:47 #1154 [Verbose] > │ mpc_zeta --> mpf_zeta["mpf_zeta()"] │
00:01:47 #1155 [Verbose] > │ mpf_zeta --> to_int │
00:01:47 #1156 [Verbose] > │ to_int --> mpf_zeta_int["mpf_zeta_int()"] │
00:01:47 #1157 [Verbose] > │ mpf_zeta_int --> borwein_coefficients │
00:01:47 #1158 [Verbose] > │ borwein_coefficients --> from_man_exp_2("from_man_exp()") │
00:01:47 #1159 [Verbose] > │ from_man_exp_2 --> python_bitcount_2("python_bitcount()") │
00:01:47 #1160 [Verbose] > │ python_bitcount_2 --> _normalize_2("_normalize()") │
00:01:47 #1161 [Verbose] > │ _normalize_2 --> make_mpc_2("make_mpc()") │
00:01:47 #1162 [Verbose] > │ make_mpc_2 --> stop_trace │
00:01:47 #1163 [Verbose] > │ mpf_zeta_int --> mpf_bernoulli │
00:01:47 #1164 [Verbose] > │ mpf_bernoulli --> bernoulli_size │
00:01:47 #1165 [Verbose] > │ bernoulli_size --> mpf_rdiv_int │
00:01:47 #1166 [Verbose] > │ mpf_rdiv_int --> python_bitcount_3("python_bitcount()") │
00:01:47 #1167 [Verbose] > │ python_bitcount_3 --> _normalize1 │
00:01:47 #1168 [Verbose] > │ _normalize1 --> from_man_exp_3("from_man_exp()") │
00:01:47 #1169 [Verbose] > │ from_man_exp_3 --> _normalize_3("_normalize()") │
00:01:47 #1170 [Verbose] > │ _normalize_3 --> mpf_sub │
00:01:47 #1171 [Verbose] > │ mpf_sub --> mpf_add │
00:01:47 #1172 [Verbose] > │ mpf_add --> mpf_neg │
00:01:47 #1173 [Verbose] > │ mpf_neg --> _normalize1_2("_normalize1()") │
00:01:47 #1174 [Verbose] > │ _normalize1_2 --> from_int │
00:01:47 #1175 [Verbose] > │ from_int --> mpf_div │
00:01:47 #1176 [Verbose] > │ mpf_div --> python_bitcount_4("python_bitcount()") │
00:01:47 #1177 [Verbose] > │ python_bitcount_4 --> _normalize1_3("_normalize1()") │
00:01:47 #1178 [Verbose] > │ _normalize1_3 --> make_mpc_3("make_mpc()") │
00:01:47 #1179 [Verbose] > │ make_mpc_3 --> final_stop["stop_trace()"]`); │
00:01:47 #1180 [Verbose] > │ renderTarget.innerHTML = svg; │
00:01:47 #1181 [Verbose] > │ bindFunctions?.(renderTarget); │
00:01:47 #1182 [Verbose] > │ } │
00:01:47 #1183 [Verbose] > │ catch (error) { │
00:01:47 #1184 [Verbose] > │ console.log(error); │
00:01:47 #1185 [Verbose] > │ } │
00:01:47 #1186 [Verbose] > │ </script> │
00:01:47 #1187 [Verbose] > │ </div> │
00:01:47 #1188 [Verbose] > │ │
00:01:47 #1189 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #1190 [Verbose] >
00:01:47 #1191 [Verbose] > ── mermaid ─────────────────────────────────────────────────────────────────────
00:01:47 #1192 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:47 #1193 [Verbose] > │ <div class="mermaidMarkdownContainer" style="background-color:white"> │
00:01:47 #1194 [Verbose] > │ <link rel="stylesheet" │
00:01:47 #1195 [Verbose] > │ href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min. │
00:01:47 #1196 [Verbose] > │ css"> │
00:01:47 #1197 [Verbose] > │ <div id="fe9eed7db088450ea169e9ff4bdd1f54"></div> │
00:01:47 #1198 [Verbose] > │ <script type="module"> │
00:01:47 #1199 [Verbose] > │ │
00:01:47 #1200 [Verbose] > │ import mermaid from │
00:01:47 #1201 [Verbose] > │ 'https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.esm.min.mjs'; │
00:01:47 #1202 [Verbose] > │ let renderTarget = │
00:01:47 #1203 [Verbose] > │ document.getElementById('fe9eed7db088450ea169e9ff4bdd1f54'); │
00:01:47 #1204 [Verbose] > │ try { │
00:01:47 #1205 [Verbose] > │ const {svg, bindFunctions} = await │
00:01:47 #1206 [Verbose] > │ mermaid.mermaidAPI.render( │
00:01:47 #1207 [Verbose] > │ 'mermaid_fe9eed7db088450ea169e9ff4bdd1f54', │
00:01:47 #1208 [Verbose] > │ `graph TD │
00:01:47 #1209 [Verbose] > │ zeta_rust("zeta() - Rust") --> num_traits("num-traits") │
00:01:47 #1210 [Verbose] > │ zeta_rust --> num_bigint("num-bigint") │
00:01:47 #1211 [Verbose] > │ zeta_rust --> rust_decimal("rust_decimal for precision") │
00:01:47 #1212 [Verbose] > │ zeta_rust --> error_handling("Rust Error Handling") │
00:01:47 #1213 [Verbose] > │ │
00:01:47 #1214 [Verbose] > │ num_traits --> num_traits_usage("Use for common traits") │
00:01:47 #1215 [Verbose] > │ num_bigint --> bigint_operations("Arbitrary-precision arithmetic │
00:01:47 #1216 [Verbose] > │ operations") │
00:01:47 #1217 [Verbose] > │ rust_decimal --> decimal_operations("High-precision decimal operations") │
00:01:47 #1218 [Verbose] > │ error_handling --> result_type("Use Result<T, E> for error handling") │
00:01:47 #1219 [Verbose] > │ │
00:01:47 #1220 [Verbose] > │ bigint_operations --> convert_rust("convert() - Rust") │
00:01:47 #1221 [Verbose] > │ bigint_operations --> normalize_rust("_normalize() - Rust") │
00:01:47 #1222 [Verbose] > │ │
00:01:47 #1223 [Verbose] > │ convert_rust --> from_float_rust("from_float() - Rust") │
00:01:47 #1224 [Verbose] > │ from_float_rust --> from_man_exp_rust("from_man_exp() - Rust") │
00:01:47 #1225 [Verbose] > │ from_man_exp_rust --> bitcount_rust("bitcount() - Rust") │
00:01:47 #1226 [Verbose] > │ bitcount_rust --> normalize_rust │
00:01:47 #1227 [Verbose] > │ normalize_rust --> mpc_zeta_rust("mpc_zeta() - Rust") │
00:01:47 #1228 [Verbose] > │ mpc_zeta_rust --> mpf_zeta_rust("mpf_zeta() - Rust") │
00:01:47 #1229 [Verbose] > │ mpf_zeta_rust --> to_int_rust("to_int() - Rust") │
00:01:47 #1230 [Verbose] > │ to_int_rust --> mpf_zeta_int_rust("mpf_zeta_int() - Rust") │
00:01:47 #1231 [Verbose] > │ │
00:01:47 #1232 [Verbose] > │ mpf_zeta_int_rust --> borwein_coefficients_rust("borwein_coefficients() │
00:01:47 #1233 [Verbose] > │ - Rust") │
00:01:47 #1234 [Verbose] > │ borwein_coefficients_rust --> from_man_exp_rust_2("from_man_exp() - │
00:01:47 #1235 [Verbose] > │ Rust") │
00:01:47 #1236 [Verbose] > │ from_man_exp_rust_2 --> bitcount_rust_2("bitcount() - Rust") │
00:01:47 #1237 [Verbose] > │ bitcount_rust_2 --> normalize_rust_2("_normalize() - Rust") │
00:01:47 #1238 [Verbose] > │ normalize_rust_2 --> make_mpc_rust("make_mpc() - Rust") │
00:01:47 #1239 [Verbose] > │ │
00:01:47 #1240 [Verbose] > │ mpf_zeta_int_rust --> mpf_bernoulli_rust("mpf_bernoulli() - Rust") │
00:01:47 #1241 [Verbose] > │ mpf_bernoulli_rust --> bernoulli_size_rust("bernoulli_size() - Rust") │
00:01:47 #1242 [Verbose] > │ bernoulli_size_rust --> mpf_rdiv_int_rust("mpf_rdiv_int() - Rust") │
00:01:47 #1243 [Verbose] > │ mpf_rdiv_int_rust --> bitcount_rust_3("bitcount() - Rust") │
00:01:47 #1244 [Verbose] > │ bitcount_rust_3 --> normalize1_rust("_normalize1() - Rust") │
00:01:47 #1245 [Verbose] > │ normalize1_rust --> from_man_exp_rust_3("from_man_exp() - Rust") │
00:01:47 #1246 [Verbose] > │ from_man_exp_rust_3 --> normalize_rust_3("_normalize() - Rust") │
00:01:47 #1247 [Verbose] > │ normalize_rust_3 --> mpf_sub_rust("mpf_sub() - Rust") │
00:01:47 #1248 [Verbose] > │ mpf_sub_rust --> mpf_add_rust("mpf_add() - Rust") │
00:01:47 #1249 [Verbose] > │ mpf_add_rust --> mpf_neg_rust("mpf_neg() - Rust") │
00:01:47 #1250 [Verbose] > │ mpf_neg_rust --> normalize1_rust_2("_normalize1() - Rust") │
00:01:47 #1251 [Verbose] > │ normalize1_rust_2 --> from_int_rust("from_int() - Rust") │
00:01:47 #1252 [Verbose] > │ from_int_rust --> mpf_div_rust("mpf_div() - Rust") │
00:01:47 #1253 [Verbose] > │ mpf_div_rust --> bitcount_rust_4("bitcount() - Rust") │
00:01:47 #1254 [Verbose] > │ bitcount_rust_4 --> normalize1_rust_3("_normalize1() - Rust") │
00:01:47 #1255 [Verbose] > │ │
00:01:47 #1256 [Verbose] > │ style zeta_rust fill:#f9f,stroke:#333,stroke-width:4px │
00:01:47 #1257 [Verbose] > │ style num_traits fill:#bbf,stroke:#333,stroke-width:2px │
00:01:47 #1258 [Verbose] > │ style num_bigint fill:#bbf,stroke:#333,stroke-width:2px │
00:01:47 #1259 [Verbose] > │ style rust_decimal fill:#bbf,stroke:#333,stroke-width:2px │
00:01:47 #1260 [Verbose] > │ style error_handling fill:#bbf,stroke:#333,stroke-width:2px │
00:01:47 #1261 [Verbose] > │ style bigint_operations fill:#bfb,stroke:#333,stroke-width:2px │
00:01:47 #1262 [Verbose] > │ style decimal_operations fill:#bfb,stroke:#333,stroke-width:2px │
00:01:47 #1263 [Verbose] > │ style result_type fill:#bfb,stroke:#333,stroke-width:2px`); │
00:01:47 #1264 [Verbose] > │ renderTarget.innerHTML = svg; │
00:01:47 #1265 [Verbose] > │ bindFunctions?.(renderTarget); │
00:01:47 #1266 [Verbose] > │ } │
00:01:47 #1267 [Verbose] > │ catch (error) { │
00:01:47 #1268 [Verbose] > │ console.log(error); │
00:01:47 #1269 [Verbose] > │ } │
00:01:47 #1270 [Verbose] > │ </script> │
00:01:47 #1271 [Verbose] > │ </div> │
00:01:47 #1272 [Verbose] > │ │
00:01:47 #1273 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #1274 [Verbose] >
00:01:47 #1275 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:47 #1276 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:47 #1277 [Verbose] > │ ## tests │
00:01:47 #1278 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #1279 [Verbose] >
00:01:47 #1280 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:47 #1281 [Verbose] > inl tests () =
00:01:47 #1282 [Verbose] > !\($'"}//"') : ()
00:01:47 #1283 [Verbose] >
00:01:47 #1284 [Verbose] > !\($'"#[[test]] fn test_zeta_at_known_values_() { //"') : ()
00:01:47 #1285 [Verbose] > test_zeta_at_known_values_ false
00:01:47 #1286 [Verbose] > !\($'"} #[[test]] fn test_zeta_at_2_minus2() { //"') : ()
00:01:47 #1287 [Verbose] > test_zeta_at_2_minus2 false
00:01:47 #1288 [Verbose] > !\($'"} #[[test]] fn test_trivial_zero_at_negative_even___() { //"') : ()
00:01:47 #1289 [Verbose] > test_trivial_zero_at_negative_even___ false
00:01:47 #1290 [Verbose] > !\($'"} #[[test]] fn test_non_trivial_zero___() { //"') : ()
00:01:47 #1291 [Verbose] > test_non_trivial_zero___ false
00:01:47 #1292 [Verbose] > !\($'"} #[[test]] fn test_real_part_greater_than_one___() { //"') : ()
00:01:47 #1293 [Verbose] > test_real_part_greater_than_one___ false
00:01:47 #1294 [Verbose] > !\($'"} #[[test]] fn test_zeta_at_1___() { //"') : ()
00:01:47 #1295 [Verbose] > test_zeta_at_1___ false
00:01:47 #1296 [Verbose] > !\($'"} #[[test]] fn test_symmetry_across_real_axis___() { //"') : ()
00:01:47 #1297 [Verbose] > test_symmetry_across_real_axis___ false
00:01:47 #1298 [Verbose] > !\($'"} #[[test]] fn test_behavior_near_origin___() { //"') : ()
00:01:47 #1299 [Verbose] > test_behavior_near_origin___ false
00:01:47 #1300 [Verbose] > !\($'"} #[[test]] fn test_imaginary_axis() { //"') : ()
00:01:47 #1301 [Verbose] > test_imaginary_axis false
00:01:47 #1302 [Verbose] > !\($'"} #[[test]] fn test_critical_strip() { //"') : ()
00:01:47 #1303 [Verbose] > test_critical_strip false
00:01:47 #1304 [Verbose] > !\($'"} #[[test]] fn test_reflection_formula_for_specific_value() { //"') :
00:01:47 #1305 [Verbose] > ()
00:01:47 #1306 [Verbose] > test_reflection_formula_for_specific_value false
00:01:47 #1307 [Verbose] > !\($'"} #[[test]] fn test_euler_product_formula() { //"') : ()
00:01:47 #1308 [Verbose] > test_euler_product_formula false
00:01:47 #1309 [Verbose] >
00:01:47 #1310 [Verbose] > ╭─[ 227.33ms - stdout ]────────────────────────────────────────────────────────╮
00:01:47 #1311 [Verbose] > │ () │
00:01:47 #1312 [Verbose] > │ │
00:01:47 #1313 [Verbose] > │ │
00:01:47 #1314 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #1315 [Verbose] >
00:01:47 #1316 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:47 #1317 [Verbose] > // // rust=
00:01:47 #1318 [Verbose] >
00:01:47 #1319 [Verbose] > inl main (_args : array_base string) =
00:01:47 #1320 [Verbose] > inl value = 1i32
00:01:47 #1321 [Verbose] > console.write_line ($"$\"value: {!value}\"" : string)
00:01:47 #1322 [Verbose] > 0i32
00:01:47 #1323 [Verbose] >
00:01:47 #1324 [Verbose] > inl main () =
00:01:47 #1325 [Verbose] > types ()
00:01:47 #1326 [Verbose] > $"let tests () = !tests ()" : ()
00:01:47 #1327 [Verbose] > $"let main args = !main args" : ()
00:01:48 #1328 [Verbose] >
00:01:48 #1329 [Verbose] > ╭─[ 520.88ms - stdout ]────────────────────────────────────────────────────────╮
00:01:48 #1330 [Verbose] > │ │
00:01:48 #1331 [Verbose] > │ .fsx: │
00:01:48 #1332 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Func0<$0>")>] type Func0<'T> = class │
00:01:48 #1333 [Verbose] > │ end │
00:01:48 #1334 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Func1<$0, $1>")>] type Func0<'T, 'U> = │
00:01:48 #1335 [Verbose] > │ class end │
00:01:48 #1336 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Box<$0>")>] type Box<'T> = class end │
00:01:48 #1337 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("dyn $0")>] type Dyn<'T> = class end │
00:01:48 #1338 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn() -> $0")>] type Fn<'T> = class end │
00:01:48 #1339 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn()")>] type FnUnit = class end │
00:01:48 #1340 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("FnOnce() -> $0")>] type FnOnce<'T> = │
00:01:48 #1341 [Verbose] > │ class end │
00:01:48 #1342 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn($0, $1)")>] type ActionFn2<'T, 'U> = │
00:01:48 #1343 [Verbose] > │ class end │
00:01:48 #1344 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("impl $0")>] type Impl<'T> = class end │
00:01:48 #1345 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] type Mut<'T> = class end │
00:01:48 #1346 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&$0")>] type Ref<'T> = class end │
00:01:48 #1347 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&'static $0")>] type StaticRef<'T> = │
00:01:48 #1348 [Verbose] > │ class end │
00:01:48 #1349 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("MutCell<$0>")>] type MutCell<'T> = │
00:01:48 #1350 [Verbose] > │ class end │
00:01:48 #1351 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::any::Any")>] type std_any_Any = │
00:01:48 #1352 [Verbose] > │ class end │
00:01:48 #1353 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::cell::RefCell<$0>")>] type │
00:01:48 #1354 [Verbose] > │ std_cell_RefCell<'T> = class end │
00:01:48 #1355 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::pin::Pin<$0>")>] type │
00:01:48 #1356 [Verbose] > │ std_pin_Pin<'T> = class end │
00:01:48 #1357 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::rc::Rc<$0>")>] type std_rc_Rc<'T> │
00:01:48 #1358 [Verbose] > │ = class end │
00:01:48 #1359 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::rc::Weak<$0>")>] type │
00:01:48 #1360 [Verbose] > │ std_rc_Weak<'T> = class end │
00:01:48 #1361 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::sync::Arc<$0>")>] type │
00:01:48 #1362 [Verbose] > │ std_sync_Arc<'T> = class end │
00:01:48 #1363 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("str")>] type Str = class end │
00:01:48 #1364 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>] type │
00:01:48 #1365 [Verbose] > │ base64_DecodeError = class end │
00:01:48 #1366 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>] type │
00:01:48 #1367 [Verbose] > │ borsh_io_Error = class end │
00:01:48 #1368 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>] type │
00:01:48 #1369 [Verbose] > │ js_sys_JsString = class end │
00:01:48 #1370 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>] type │
00:01:48 #1371 [Verbose] > │ serde_json_Error = class end │
00:01:48 #1372 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>] type │
00:01:48 #1373 [Verbose] > │ serde_json_Value = class end │
00:01:48 #1374 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>] type │
00:01:48 #1375 [Verbose] > │ serde_wasm_bindgen_Error = class end │
00:01:48 #1376 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::str::Utf8Error")>] type │
00:01:48 #1377 [Verbose] > │ std_str_Utf8Error = class end │
00:01:48 #1378 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type │
00:01:48 #1379 [Verbose] > │ std_string_String = class end │
00:01:48 #1380 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("num_complex::Complex<$0>")>] type │
00:01:48 #1381 [Verbose] > │ num_complex_Complex<'T> = class end │
00:01:48 #1382 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::types::PyModule")>] type │
00:01:48 #1383 [Verbose] > │ pyo3_types_PyModule = class end │
00:01:48 #1384 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::Bound<$0>")>] type pyo3_Bound<'T> │
00:01:48 #1385 [Verbose] > │ = class end │
00:01:48 #1386 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::Python")>] type pyo3_Python = │
00:01:48 #1387 [Verbose] > │ class end │
00:01:48 #1388 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::PyAny")>] type pyo3_PyAny = class │
00:01:48 #1389 [Verbose] > │ end │
00:01:48 #1390 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::PyErr")>] type pyo3_PyErr = class │
00:01:48 #1391 [Verbose] > │ end │
00:01:48 #1392 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () "); │
00:01:48 #1393 [Verbose] > │ use pyo3::prelude::PyAnyMethods; │
00:01:48 #1394 [Verbose] > │ //" │
00:01:48 #1395 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:01:48 #1396 [Verbose] > │ and Mut1 = {mutable l0 : int32; mutable l1 : string} │
00:01:48 #1397 [Verbose] > │ and Mut2 = {mutable l0 : int32; mutable l1 : num_complex_Complex<float>} │
00:01:48 #1398 [Verbose] > │ and [<Struct>] US0 = │
00:01:48 #1399 [Verbose] > │ | US0_0 │
00:01:48 #1400 [Verbose] > │ | US0_1 of f1_0 : num_complex_Complex<float> │
00:01:48 #1401 [Verbose] > │ and UH0 = │
00:01:48 #1402 [Verbose] > │ | UH0_0 of float * UH0 │
00:01:48 #1403 [Verbose] > │ | UH0_1 │
00:01:48 #1404 [Verbose] > │ and Mut3 = {mutable l0 : int32; mutable l1 : float} │
00:01:48 #1405 [Verbose] > │ let rec method2 () : float = │
00:01:48 #1406 [Verbose] > │ 2.0 │
00:01:48 #1407 [Verbose] > │ and method3 (v0 : float) : float = │
00:01:48 #1408 [Verbose] > │ v0 │
00:01:48 #1409 [Verbose] > │ and method4 () : float = │
00:01:48 #1410 [Verbose] > │ 0.0 │
00:01:48 #1411 [Verbose] > │ and method5 () : float = │
00:01:48 #1412 [Verbose] > │ -1.0 │
00:01:48 #1413 [Verbose] > │ and method6 (v0 : (struct (num_complex_Complex<float> * float) [])) : │
00:01:48 #1414 [Verbose] > │ (struct (num_complex_Complex<float> * float) []) = │
00:01:48 #1415 [Verbose] > │ v0 │
00:01:48 #1416 [Verbose] > │ and method7 (v0 : int32, v1 : Mut0) : bool = │
00:01:48 #1417 [Verbose] > │ let v2 : int32 = v1.l0 │
00:01:48 #1418 [Verbose] > │ let v3 : bool = v2 < v0 │
00:01:48 #1419 [Verbose] > │ v3 │
00:01:48 #1420 [Verbose] > │ and method8 (v0 : num_complex_Complex<float>) : num_complex_Complex<float> = │
00:01:48 #1421 [Verbose] > │ v0 │
00:01:48 #1422 [Verbose] > │ and method10 (v0 : (string [])) : (string []) = │
00:01:48 #1423 [Verbose] > │ v0 │
00:01:48 #1424 [Verbose] > │ and method12 (v0 : int32, v1 : Mut1) : bool = │
00:01:48 #1425 [Verbose] > │ let v2 : int32 = v1.l0 │
00:01:48 #1426 [Verbose] > │ let v3 : bool = v2 < v0 │
00:01:48 #1427 [Verbose] > │ v3 │
00:01:48 #1428 [Verbose] > │ and method11 (v0 : (string [])) : string = │
00:01:48 #1429 [Verbose] > │ let v1 : int32 = v0.Length │
00:01:48 #1430 [Verbose] > │ let v2 : string = "" │
00:01:48 #1431 [Verbose] > │ let v3 : Mut1 = {l0 = 0; l1 = v2} : Mut1 │
00:01:48 #1432 [Verbose] > │ while method12(v1, v3) do │
00:01:48 #1433 [Verbose] > │ let v5 : int32 = v3.l0 │
00:01:48 #1434 [Verbose] > │ let v6 : string = v3.l1 │
00:01:48 #1435 [Verbose] > │ let v7 : string = v0.[int v5] │
00:01:48 #1436 [Verbose] > │ let v8 : string = "\n" │
00:01:48 #1437 [Verbose] > │ let v9 : string = v6 + v7 + v8 + "" │
00:01:48 #1438 [Verbose] > │ let v10 : int32 = v5 + 1 │
00:01:48 #1439 [Verbose] > │ v3.l0 <- v10 │
00:01:48 #1440 [Verbose] > │ v3.l1 <- v9 │
00:01:48 #1441 [Verbose] > │ () │
00:01:48 #1442 [Verbose] > │ let v11 : string = v3.l1 │
00:01:48 #1443 [Verbose] > │ v11 │
00:01:48 #1444 [Verbose] > │ and method13 (v0 : num_complex_Complex<float>) : num_complex_Complex<float> │
00:01:48 #1445 [Verbose] > │ = │
00:01:48 #1446 [Verbose] > │ v0 │
00:01:48 #1447 [Verbose] > │ and method14 (v0 : num_complex_Complex<float>) : num_complex_Complex<float> │
00:01:48 #1448 [Verbose] > │ = │
00:01:48 #1449 [Verbose] > │ v0 │
00:01:48 #1450 [Verbose] > │ and method15 (v0 : pyo3_Python) : pyo3_Python = │
00:01:48 #1451 [Verbose] > │ v0 │
00:01:48 #1452 [Verbose] > │ and method16 (v0 : string) : string = │
00:01:48 #1453 [Verbose] > │ v0 │
00:01:48 #1454 [Verbose] > │ and closure1 () (v0 : pyo3_PyErr) : std_string_String = │
00:01:48 #1455 [Verbose] > │ let v1 : string = @$"format!(""{{}}"", $0)" │
00:01:48 #1456 [Verbose] > │ let v2 : std_string_String = Fable.Core.RustInterop.emitRustExpr v0 v1 │
00:01:48 #1457 [Verbose] > │ v2 │
00:01:48 #1458 [Verbose] > │ and method17 () : (pyo3_PyErr -> std_string_String) = │
00:01:48 #1459 [Verbose] > │ closure1() │
00:01:48 #1460 [Verbose] > │ and method18 (v0 : Result<pyo3_Bound<pyo3_types_PyModule>, pyo3_PyErr>) : │
00:01:48 #1461 [Verbose] > │ Result<pyo3_Bound<pyo3_types_PyModule>, pyo3_PyErr> = │
00:01:48 #1462 [Verbose] > │ v0 │
00:01:48 #1463 [Verbose] > │ and method19 (v0 : Result<pyo3_Bound<pyo3_types_PyModule>, │
00:01:48 #1464 [Verbose] > │ std_string_String>) : Result<pyo3_Bound<pyo3_types_PyModule>, │
00:01:48 #1465 [Verbose] > │ std_string_String> = │
00:01:48 #1466 [Verbose] > │ v0 │
00:01:48 #1467 [Verbose] > │ and method20 () : string = │
00:01:48 #1468 [Verbose] > │ let v0 : string = "fn" │
00:01:48 #1469 [Verbose] > │ v0 │
00:01:48 #1470 [Verbose] > │ and method21 (v0 : pyo3_Bound<pyo3_types_PyModule>) : │
00:01:48 #1471 [Verbose] > │ pyo3_Bound<pyo3_types_PyModule> = │
00:01:48 #1472 [Verbose] > │ v0 │
00:01:48 #1473 [Verbose] > │ and closure2 () (v0 : pyo3_PyErr) : std_string_String = │
00:01:48 #1474 [Verbose] > │ let v1 : string = @$"format!(""{{}}"", $0)" │
00:01:48 #1475 [Verbose] > │ let v2 : std_string_String = Fable.Core.RustInterop.emitRustExpr v0 v1 │
00:01:48 #1476 [Verbose] > │ v2 │
00:01:48 #1477 [Verbose] > │ and method22 () : (pyo3_PyErr -> std_string_String) = │
00:01:48 #1478 [Verbose] > │ closure2() │
00:01:48 #1479 [Verbose] > │ and method23 (v0 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr>) : │
00:01:48 #1480 [Verbose] > │ Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> = │
00:01:48 #1481 [Verbose] > │ v0 │
00:01:48 #1482 [Verbose] > │ and method24 (v0 : Result<pyo3_Bound<pyo3_PyAny>, std_string_String>) : │
00:01:48 #1483 [Verbose] > │ Result<pyo3_Bound<pyo3_PyAny>, std_string_String> = │
00:01:48 #1484 [Verbose] > │ v0 │
00:01:48 #1485 [Verbose] > │ and method25 (v0 : (bool * (float * float))) : (bool * (float * float)) = │
00:01:48 #1486 [Verbose] > │ v0 │
00:01:48 #1487 [Verbose] > │ and method26 (v0 : pyo3_Bound<pyo3_PyAny>) : pyo3_Bound<pyo3_PyAny> = │
00:01:48 #1488 [Verbose] > │ v0 │
00:01:48 #1489 [Verbose] > │ and closure3 () (v0 : pyo3_PyErr) : std_string_String = │
00:01:48 #1490 [Verbose] > │ let v1 : string = @$"format!(""{{}}"", $0)" │
00:01:48 #1491 [Verbose] > │ let v2 : std_string_String = Fable.Core.RustInterop.emitRustExpr v0 v1 │
00:01:48 #1492 [Verbose] > │ v2 │
00:01:48 #1493 [Verbose] > │ and method27 () : (pyo3_PyErr -> std_string_String) = │
00:01:48 #1494 [Verbose] > │ closure3() │
00:01:48 #1495 [Verbose] > │ and method28 (v0 : pyo3_Bound<pyo3_PyAny>) : pyo3_Bound<pyo3_PyAny> = │
00:01:48 #1496 [Verbose] > │ v0 │
00:01:48 #1497 [Verbose] > │ and closure4 () (v0 : pyo3_PyErr) : std_string_String = │
00:01:48 #1498 [Verbose] > │ let v1 : string = @$"format!(""{{}}"", $0)" │
00:01:48 #1499 [Verbose] > │ let v2 : std_string_String = Fable.Core.RustInterop.emitRustExpr v0 v1 │
00:01:48 #1500 [Verbose] > │ v2 │
00:01:48 #1501 [Verbose] > │ and method29 () : (pyo3_PyErr -> std_string_String) = │
00:01:48 #1502 [Verbose] > │ closure4() │
00:01:48 #1503 [Verbose] > │ and method30 (v0 : Result<struct (float * float), pyo3_PyErr>) : │
00:01:48 #1504 [Verbose] > │ Result<struct (float * float), pyo3_PyErr> = │
00:01:48 #1505 [Verbose] > │ v0 │
00:01:48 #1506 [Verbose] > │ and method31 (v0 : float) : float = │
00:01:48 #1507 [Verbose] > │ v0 │
00:01:48 #1508 [Verbose] > │ and method32 (v0 : float) : float = │
00:01:48 #1509 [Verbose] > │ v0 │
00:01:48 #1510 [Verbose] > │ and method9 (v0 : pyo3_Python, v1 : string, v2 : num_complex_Complex<float>) │
00:01:48 #1511 [Verbose] > │ : Result<num_complex_Complex<float>, std_string_String> = │
00:01:48 #1512 [Verbose] > │ let v3 : string = $"import sys" │
00:01:48 #1513 [Verbose] > │ let v4 : string = $"import traceback" │
00:01:48 #1514 [Verbose] > │ let v5 : string = $"import re" │
00:01:48 #1515 [Verbose] > │ let v6 : string = $"count = 0" │
00:01:48 #1516 [Verbose] > │ let v7 : string = $"memory_address_pattern = re.compile(r' at 0x[ │
00:01:48 #1517 [Verbose] > │ 0-9a-fA-F]+')" │
00:01:48 #1518 [Verbose] > │ let v8 : string = $"def trace_calls(frame, event, arg):" │
00:01:48 #1519 [Verbose] > │ let v9 : string = $" global count" │
00:01:48 #1520 [Verbose] > │ let v10 : string = $" count += 1" │
00:01:48 #1521 [Verbose] > │ let v11 : string = $" if count < 200:" │
00:01:48 #1522 [Verbose] > │ let v12 : string = $" try:" │
00:01:48 #1523 [Verbose] > │ let v13 : string = $" args = {{ k: v for k, v in │
00:01:48 #1524 [Verbose] > │ frame.f_locals.items() if frame.f_code.co_name != 'make_mpc' and k not in [ │
00:01:48 #1525 [Verbose] > │ 'ctx'] and not callable(v) }}" │
00:01:48 #1526 [Verbose] > │ let v14 : string = $" args_str = ', '.join([ │
00:01:48 #1527 [Verbose] > │ f\"{{k}}={{re.sub(memory_address_pattern, ' at 0x<?>', repr(v))}}\" for k, v │
00:01:48 #1528 [Verbose] > │ in args.items() ])" │
00:01:48 #1529 [Verbose] > │ let v15 : string = "zeta_" │
00:01:48 #1530 [Verbose] > │ let v16 : string = $" print(f\"{{event}}({v15}) / │
00:01:48 #1531 [Verbose] > │ f_code.co_name: {{frame.f_code.co_name}} / f_locals: {{args_str}} / │
00:01:48 #1532 [Verbose] > │ f_lineno: {{frame.f_lineno}} / f_code.co_filename: │
00:01:48 #1533 [Verbose] > │ {{frame.f_code.co_filename.split('site-packages')[-1]}} / f_back.f_lineno: │
00:01:48 #1534 [Verbose] > │ {{ '' if frame.f_back is None else frame.f_back.f_lineno }} / │
00:01:48 #1535 [Verbose] > │ f_back.f_code.co_filename: {{ '' if frame.f_back is None else │
00:01:48 #1536 [Verbose] > │ frame.f_back.f_code.co_filename.split('site-packages')[-1] }} / arg: │
00:01:48 #1537 [Verbose] > │ {{re.sub(memory_address_pattern, ' at 0x<?>', repr(arg))}}\", flush=True)" │
00:01:48 #1538 [Verbose] > │ let v17 : string = $" except ValueError as e:" │
00:01:48 #1539 [Verbose] > │ let v18 : string = $" print(f'{v15} / e: {{e}}', flush=True)" │
00:01:48 #1540 [Verbose] > │ let v19 : string = $" return trace_calls" │
00:01:48 #1541 [Verbose] > │ let v20 : string = $"import mpmath" │
00:01:48 #1542 [Verbose] > │ let v21 : string = $"def fn(log, s):" │
00:01:48 #1543 [Verbose] > │ let v22 : string = $" global count" │
00:01:48 #1544 [Verbose] > │ let v23 : string = $" if log:" │
00:01:48 #1545 [Verbose] > │ let v24 : string = $" print(f'{v15} / s: {{s}} / count: │
00:01:48 #1546 [Verbose] > │ {{count}}', flush=True)" │
00:01:48 #1547 [Verbose] > │ let v25 : string = $" s = complex(*s)" │
00:01:48 #1548 [Verbose] > │ let v26 : string = $" try:" │
00:01:48 #1549 [Verbose] > │ let v27 : string = $" if log: sys.settrace(trace_calls)" │
00:01:48 #1550 [Verbose] > │ let v28 : string = $" if log:" │
00:01:48 #1551 [Verbose] > │ let v29 : string = $" sys.settrace(None)" │
00:01:48 #1552 [Verbose] > │ let v30 : string = $" print(f'{v15} / result: {{s}} / count: │
00:01:48 #1553 [Verbose] > │ {{count}}', flush=True)" │
00:01:48 #1554 [Verbose] > │ let v31 : string = $" except ValueError as e:" │
00:01:48 #1555 [Verbose] > │ let v32 : string = $" if s.real == 1:" │
00:01:48 #1556 [Verbose] > │ let v33 : string = $" s = complex(float('inf'), 0)" │
00:01:48 #1557 [Verbose] > │ let v34 : string = $" return (s.real, s.imag)" │
00:01:48 #1558 [Verbose] > │ let v35 : (string []) = [|v3; v4; v5; v6; v7; v8; v9; v10; v11; v12; │
00:01:48 #1559 [Verbose] > │ v13; v14; v16; v17; v18; v19; v20; v21; v22; v23; v24; v25; v26; v27; v1; │
00:01:48 #1560 [Verbose] > │ v28; v29; v30; v31; v32; v33; v34|] │
00:01:48 #1561 [Verbose] > │ let v36 : (string []) = method10(v35) │
00:01:48 #1562 [Verbose] > │ let v37 : string = method11(v36) │
00:01:48 #1563 [Verbose] > │ let v38 : num_complex_Complex<float> = method13(v2) │
00:01:48 #1564 [Verbose] > │ let v39 : string = "v38.re" │
00:01:48 #1565 [Verbose] > │ let v40 : float = Fable.Core.RustInterop.emitRustExpr () v39 │
00:01:48 #1566 [Verbose] > │ let v41 : num_complex_Complex<float> = method14(v2) │
00:01:48 #1567 [Verbose] > │ let v42 : string = "v41.im" │
00:01:48 #1568 [Verbose] > │ let v43 : float = Fable.Core.RustInterop.emitRustExpr () v42 │
00:01:48 #1569 [Verbose] > │ let v44 : (float * float) = v40, v43 │
00:01:48 #1570 [Verbose] > │ let v45 : (bool * (float * float)) = false, v44 │
00:01:48 #1571 [Verbose] > │ let v46 : pyo3_Python = method15(v0) │
00:01:48 #1572 [Verbose] > │ let v47 : string = method16(v37) │
00:01:48 #1573 [Verbose] > │ let v48 : string = $"fable_library_rust::String_::LrcStr::as_str(&v47)" │
00:01:48 #1574 [Verbose] > │ let v49 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v48 │
00:01:48 #1575 [Verbose] > │ let v50 : string = "pyo3::types::PyModule::from_code_bound(v46, v49, │
00:01:48 #1576 [Verbose] > │ \"\", \"\")" │
00:01:48 #1577 [Verbose] > │ let v51 : Result<pyo3_Bound<pyo3_types_PyModule>, pyo3_PyErr> = │
00:01:48 #1578 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v50 │
00:01:48 #1579 [Verbose] > │ let v52 : (pyo3_PyErr -> std_string_String) = method17() │
00:01:48 #1580 [Verbose] > │ let v53 : Result<pyo3_Bound<pyo3_types_PyModule>, pyo3_PyErr> = │
00:01:48 #1581 [Verbose] > │ method18(v51) │
00:01:48 #1582 [Verbose] > │ let v54 : string = "v53.map_err(|x| v52(x))" │
00:01:48 #1583 [Verbose] > │ let v55 : Result<pyo3_Bound<pyo3_types_PyModule>, std_string_String> = │
00:01:48 #1584 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v54 │
00:01:48 #1585 [Verbose] > │ let v56 : Result<pyo3_Bound<pyo3_types_PyModule>, std_string_String> = │
00:01:48 #1586 [Verbose] > │ method19(v55) │
00:01:48 #1587 [Verbose] > │ let v57 : string = "v56.unwrap()" │
00:01:48 #1588 [Verbose] > │ let v58 : pyo3_Bound<pyo3_types_PyModule> = │
00:01:48 #1589 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v57 │
00:01:48 #1590 [Verbose] > │ let v59 : string = method20() │
00:01:48 #1591 [Verbose] > │ let v60 : string = $"fable_library_rust::String_::LrcStr::as_str(&v59)" │
00:01:48 #1592 [Verbose] > │ let v61 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v60 │
00:01:48 #1593 [Verbose] > │ let v62 : pyo3_Bound<pyo3_types_PyModule> = method21(v58) │
00:01:48 #1594 [Verbose] > │ let v63 : string = "v62.getattr(v61)" │
00:01:48 #1595 [Verbose] > │ let v64 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> = │
00:01:48 #1596 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v63 │
00:01:48 #1597 [Verbose] > │ let v65 : (pyo3_PyErr -> std_string_String) = method22() │
00:01:48 #1598 [Verbose] > │ let v66 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> = method23(v64) │
00:01:48 #1599 [Verbose] > │ let v67 : string = "v66.map_err(|x| v65(x))" │
00:01:48 #1600 [Verbose] > │ let v68 : Result<pyo3_Bound<pyo3_PyAny>, std_string_String> = │
00:01:48 #1601 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v67 │
00:01:48 #1602 [Verbose] > │ let v69 : Result<pyo3_Bound<pyo3_PyAny>, std_string_String> = │
00:01:48 #1603 [Verbose] > │ method24(v68) │
00:01:48 #1604 [Verbose] > │ let v70 : string = "v69.unwrap()" │
00:01:48 #1605 [Verbose] > │ let v71 : pyo3_Bound<pyo3_PyAny> = Fable.Core.RustInterop.emitRustExpr │
00:01:48 #1606 [Verbose] > │ () v70 │
00:01:48 #1607 [Verbose] > │ let v72 : (bool * (float * float)) = method25(v45) │
00:01:48 #1608 [Verbose] > │ let v73 : pyo3_Bound<pyo3_PyAny> = method26(v71) │
00:01:48 #1609 [Verbose] > │ let v74 : string = "pyo3::prelude::PyAnyMethods::call(&v73, ((*v72).0, │
00:01:48 #1610 [Verbose] > │ *(*v72).1), None)" │
00:01:48 #1611 [Verbose] > │ let v75 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> = │
00:01:48 #1612 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v74 │
00:01:48 #1613 [Verbose] > │ let v76 : (pyo3_PyErr -> std_string_String) = method27() │
00:01:48 #1614 [Verbose] > │ let v77 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> = method23(v75) │
00:01:48 #1615 [Verbose] > │ let v78 : string = "v77.map_err(|x| v76(x))" │
00:01:48 #1616 [Verbose] > │ let v79 : Result<pyo3_Bound<pyo3_PyAny>, std_string_String> = │
00:01:48 #1617 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v78 │
00:01:48 #1618 [Verbose] > │ let v80 : string = "v79?" │
00:01:48 #1619 [Verbose] > │ let v81 : pyo3_Bound<pyo3_PyAny> = Fable.Core.RustInterop.emitRustExpr │
00:01:48 #1620 [Verbose] > │ () v80 │
00:01:48 #1621 [Verbose] > │ let v82 : pyo3_Bound<pyo3_PyAny> = method28(v81) │
00:01:48 #1622 [Verbose] > │ let v83 : string = "v82.extract()" │
00:01:48 #1623 [Verbose] > │ let v84 : Result<struct (float * float), pyo3_PyErr> = │
00:01:48 #1624 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v83 │
00:01:48 #1625 [Verbose] > │ let v85 : (pyo3_PyErr -> std_string_String) = method29() │
00:01:48 #1626 [Verbose] > │ let v86 : Result<struct (float * float), pyo3_PyErr> = method30(v84) │
00:01:48 #1627 [Verbose] > │ let v87 : string = "v86.map_err(|x| v85(x))" │
00:01:48 #1628 [Verbose] > │ let v88 : Result<struct (float * float), std_string_String> = │
00:01:48 #1629 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v87 │
00:01:48 #1630 [Verbose] > │ let v89 : string = "v88?" │
00:01:48 #1631 [Verbose] > │ let struct (v90 : float, v91 : float) = │
00:01:48 #1632 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v89 │
00:01:48 #1633 [Verbose] > │ let v92 : float = method31(v90) │
00:01:48 #1634 [Verbose] > │ let v93 : float = method3(v92) │
00:01:48 #1635 [Verbose] > │ let v94 : float = method32(v91) │
00:01:48 #1636 [Verbose] > │ let v95 : string = "num_complex::Complex::new(v93, v94)" │
00:01:48 #1637 [Verbose] > │ let v96 : num_complex_Complex<float> = │
00:01:48 #1638 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v95 │
00:01:48 #1639 [Verbose] > │ let v97 : Result<num_complex_Complex<float>, std_string_String> = Ok v96 │
00:01:48 #1640 [Verbose] > │ v97 │
00:01:48 #1641 [Verbose] > │ and method34 (v0 : num_complex_Complex<float>) : num_complex_Complex<float> │
00:01:48 #1642 [Verbose] > │ = │
00:01:48 #1643 [Verbose] > │ v0 │
00:01:48 #1644 [Verbose] > │ and method35 () : float = │
00:01:48 #1645 [Verbose] > │ 0.0 │
00:01:48 #1646 [Verbose] > │ and method36 (v0 : Mut0) : bool = │
00:01:48 #1647 [Verbose] > │ let v1 : int32 = v0.l0 │
00:01:48 #1648 [Verbose] > │ let v2 : bool = v1 < 10000 │
00:01:48 #1649 [Verbose] > │ v2 │
00:01:48 #1650 [Verbose] > │ and method37 (v0 : int32, v1 : Mut2) : bool = │
00:01:48 #1651 [Verbose] > │ let v2 : int32 = v1.l0 │
00:01:48 #1652 [Verbose] > │ let v3 : bool = v2 < v0 │
00:01:48 #1653 [Verbose] > │ v3 │
00:01:48 #1654 [Verbose] > │ and method38 () : float = │
00:01:48 #1655 [Verbose] > │ 1.0 │
00:01:48 #1656 [Verbose] > │ and method39 (v0 : num_complex_Complex<float>) : num_complex_Complex<float> │
00:01:48 #1657 [Verbose] > │ = │
00:01:48 #1658 [Verbose] > │ v0 │
00:01:48 #1659 [Verbose] > │ and method40 (v0 : num_complex_Complex<float>) : num_complex_Complex<float> │
00:01:48 #1660 [Verbose] > │ = │
00:01:48 #1661 [Verbose] > │ v0 │
00:01:48 #1662 [Verbose] > │ and method41 (v0 : pyo3_Python, v1 : string, v2 : │
00:01:48 #1663 [Verbose] > │ num_complex_Complex<float>) : Result<num_complex_Complex<float>, │
00:01:48 #1664 [Verbose] > │ std_string_String> = │
00:01:48 #1665 [Verbose] > │ let v3 : string = $"import sys" │
00:01:48 #1666 [Verbose] > │ let v4 : string = $"import traceback" │
00:01:48 #1667 [Verbose] > │ let v5 : string = $"import re" │
00:01:48 #1668 [Verbose] > │ let v6 : string = $"count = 0" │
00:01:48 #1669 [Verbose] > │ let v7 : string = $"memory_address_pattern = re.compile(r' at 0x[ │
00:01:48 #1670 [Verbose] > │ 0-9a-fA-F]+')" │
00:01:48 #1671 [Verbose] > │ let v8 : string = $"def trace_calls(frame, event, arg):" │
00:01:48 #1672 [Verbose] > │ let v9 : string = $" global count" │
00:01:48 #1673 [Verbose] > │ let v10 : string = $" count += 1" │
00:01:48 #1674 [Verbose] > │ let v11 : string = $" if count < 200:" │
00:01:48 #1675 [Verbose] > │ let v12 : string = $" try:" │
00:01:48 #1676 [Verbose] > │ let v13 : string = $" args = {{ k: v for k, v in │
00:01:48 #1677 [Verbose] > │ frame.f_locals.items() if frame.f_code.co_name != 'make_mpc' and k not in [ │
00:01:48 #1678 [Verbose] > │ 'ctx'] and not callable(v) }}" │
00:01:48 #1679 [Verbose] > │ let v14 : string = $" args_str = ', '.join([ │
00:01:48 #1680 [Verbose] > │ f\"{{k}}={{re.sub(memory_address_pattern, ' at 0x<?>', repr(v))}}\" for k, v │
00:01:48 #1681 [Verbose] > │ in args.items() ])" │
00:01:48 #1682 [Verbose] > │ let v15 : string = "gamma_" │
00:01:48 #1683 [Verbose] > │ let v16 : string = $" print(f\"{{event}}({v15}) / │
00:01:48 #1684 [Verbose] > │ f_code.co_name: {{frame.f_code.co_name}} / f_locals: {{args_str}} / │
00:01:48 #1685 [Verbose] > │ f_lineno: {{frame.f_lineno}} / f_code.co_filename: │
00:01:48 #1686 [Verbose] > │ {{frame.f_code.co_filename.split('site-packages')[-1]}} / f_back.f_lineno: │
00:01:48 #1687 [Verbose] > │ {{ '' if frame.f_back is None else frame.f_back.f_lineno }} / │
00:01:48 #1688 [Verbose] > │ f_back.f_code.co_filename: {{ '' if frame.f_back is None else │
00:01:48 #1689 [Verbose] > │ frame.f_back.f_code.co_filename.split('site-packages')[-1] }} / arg: │
00:01:48 #1690 [Verbose] > │ {{re.sub(memory_address_pattern, ' at 0x<?>', repr(arg))}}\", flush=True)" │
00:01:48 #1691 [Verbose] > │ let v17 : string = $" except ValueError as e:" │
00:01:48 #1692 [Verbose] > │ let v18 : string = $" print(f'{v15} / e: {{e}}', flush=True)" │
00:01:48 #1693 [Verbose] > │ let v19 : string = $" return trace_calls" │
00:01:48 #1694 [Verbose] > │ let v20 : string = $"import mpmath" │
00:01:48 #1695 [Verbose] > │ let v21 : string = $"def fn(log, s):" │
00:01:48 #1696 [Verbose] > │ let v22 : string = $" global count" │
00:01:48 #1697 [Verbose] > │ let v23 : string = $" if log:" │
00:01:48 #1698 [Verbose] > │ let v24 : string = $" print(f'{v15} / s: {{s}} / count: │
00:01:48 #1699 [Verbose] > │ {{count}}', flush=True)" │
00:01:48 #1700 [Verbose] > │ let v25 : string = $" s = complex(*s)" │
00:01:48 #1701 [Verbose] > │ let v26 : string = $" try:" │
00:01:48 #1702 [Verbose] > │ let v27 : string = $" if log: sys.settrace(trace_calls)" │
00:01:48 #1703 [Verbose] > │ let v28 : string = $" if log:" │
00:01:48 #1704 [Verbose] > │ let v29 : string = $" sys.settrace(None)" │
00:01:48 #1705 [Verbose] > │ let v30 : string = $" print(f'{v15} / result: {{s}} / count: │
00:01:48 #1706 [Verbose] > │ {{count}}', flush=True)" │
00:01:48 #1707 [Verbose] > │ let v31 : string = $" except ValueError as e:" │
00:01:48 #1708 [Verbose] > │ let v32 : string = $" if s.real == 1:" │
00:01:48 #1709 [Verbose] > │ let v33 : string = $" s = complex(float('inf'), 0)" │
00:01:48 #1710 [Verbose] > │ let v34 : string = $" return (s.real, s.imag)" │
00:01:48 #1711 [Verbose] > │ let v35 : (string []) = [|v3; v4; v5; v6; v7; v8; v9; v10; v11; v12; │
00:01:48 #1712 [Verbose] > │ v13; v14; v16; v17; v18; v19; v20; v21; v22; v23; v24; v25; v26; v27; v1; │
00:01:48 #1713 [Verbose] > │ v28; v29; v30; v31; v32; v33; v34|] │
00:01:48 #1714 [Verbose] > │ let v36 : (string []) = method10(v35) │
00:01:48 #1715 [Verbose] > │ let v37 : string = method11(v36) │
00:01:48 #1716 [Verbose] > │ let v38 : num_complex_Complex<float> = method13(v2) │
00:01:48 #1717 [Verbose] > │ let v39 : string = "v38.re" │
00:01:48 #1718 [Verbose] > │ let v40 : float = Fable.Core.RustInterop.emitRustExpr () v39 │
00:01:48 #1719 [Verbose] > │ let v41 : num_complex_Complex<float> = method14(v2) │
00:01:48 #1720 [Verbose] > │ let v42 : string = "v41.im" │
00:01:48 #1721 [Verbose] > │ let v43 : float = Fable.Core.RustInterop.emitRustExpr () v42 │
00:01:48 #1722 [Verbose] > │ let v44 : (float * float) = v40, v43 │
00:01:48 #1723 [Verbose] > │ let v45 : (bool * (float * float)) = false, v44 │
00:01:48 #1724 [Verbose] > │ let v46 : pyo3_Python = method15(v0) │
00:01:48 #1725 [Verbose] > │ let v47 : string = method16(v37) │
00:01:48 #1726 [Verbose] > │ let v48 : string = $"fable_library_rust::String_::LrcStr::as_str(&v47)" │
00:01:48 #1727 [Verbose] > │ let v49 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v48 │
00:01:48 #1728 [Verbose] > │ let v50 : string = "pyo3::types::PyModule::from_code_bound(v46, v49, │
00:01:48 #1729 [Verbose] > │ \"\", \"\")" │
00:01:48 #1730 [Verbose] > │ let v51 : Result<pyo3_Bound<pyo3_types_PyModule>, pyo3_PyErr> = │
00:01:48 #1731 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v50 │
00:01:48 #1732 [Verbose] > │ let v52 : (pyo3_PyErr -> std_string_String) = method17() │
00:01:48 #1733 [Verbose] > │ let v53 : Result<pyo3_Bound<pyo3_types_PyModule>, pyo3_PyErr> = │
00:01:48 #1734 [Verbose] > │ method18(v51) │
00:01:48 #1735 [Verbose] > │ let v54 : string = "v53.map_err(|x| v52(x))" │
00:01:48 #1736 [Verbose] > │ let v55 : Result<pyo3_Bound<pyo3_types_PyModule>, std_string_String> = │
00:01:48 #1737 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v54 │
00:01:48 #1738 [Verbose] > │ let v56 : Result<pyo3_Bound<pyo3_types_PyModule>, std_string_String> = │
00:01:48 #1739 [Verbose] > │ method19(v55) │
00:01:48 #1740 [Verbose] > │ let v57 : string = "v56.unwrap()" │
00:01:48 #1741 [Verbose] > │ let v58 : pyo3_Bound<pyo3_types_PyModule> = │
00:01:48 #1742 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v57 │
00:01:48 #1743 [Verbose] > │ let v59 : string = method20() │
00:01:48 #1744 [Verbose] > │ let v60 : string = $"fable_library_rust::String_::LrcStr::as_str(&v59)" │
00:01:48 #1745 [Verbose] > │ let v61 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v60 │
00:01:48 #1746 [Verbose] > │ let v62 : pyo3_Bound<pyo3_types_PyModule> = method21(v58) │
00:01:48 #1747 [Verbose] > │ let v63 : string = "v62.getattr(v61)" │
00:01:48 #1748 [Verbose] > │ let v64 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> = │
00:01:48 #1749 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v63 │
00:01:48 #1750 [Verbose] > │ let v65 : (pyo3_PyErr -> std_string_String) = method22() │
00:01:48 #1751 [Verbose] > │ let v66 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> = method23(v64) │
00:01:48 #1752 [Verbose] > │ let v67 : string = "v66.map_err(|x| v65(x))" │
00:01:48 #1753 [Verbose] > │ let v68 : Result<pyo3_Bound<pyo3_PyAny>, std_string_String> = │
00:01:48 #1754 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v67 │
00:01:48 #1755 [Verbose] > │ let v69 : Result<pyo3_Bound<pyo3_PyAny>, std_string_String> = │
00:01:48 #1756 [Verbose] > │ method24(v68) │
00:01:48 #1757 [Verbose] > │ let v70 : string = "v69.unwrap()" │
00:01:48 #1758 [Verbose] > │ let v71 : pyo3_Bound<pyo3_PyAny> = Fable.Core.RustInterop.emitRustExpr │
00:01:48 #1759 [Verbose] > │ () v70 │
00:01:48 #1760 [Verbose] > │ let v72 : (bool * (float * float)) = method25(v45) │
00:01:48 #1761 [Verbose] > │ let v73 : pyo3_Bound<pyo3_PyAny> = method26(v71) │
00:01:48 #1762 [Verbose] > │ let v74 : string = "pyo3::prelude::PyAnyMethods::call(&v73, ((*v72).0, │
00:01:48 #1763 [Verbose] > │ *(*v72).1), None)" │
00:01:48 #1764 [Verbose] > │ let v75 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> = │
00:01:48 #1765 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v74 │
00:01:48 #1766 [Verbose] > │ let v76 : (pyo3_PyErr -> std_string_String) = method27() │
00:01:48 #1767 [Verbose] > │ let v77 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> = method23(v75) │
00:01:48 #1768 [Verbose] > │ let v78 : string = "v77.map_err(|x| v76(x))" │
00:01:48 #1769 [Verbose] > │ let v79 : Result<pyo3_Bound<pyo3_PyAny>, std_string_String> = │
00:01:48 #1770 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v78 │
00:01:48 #1771 [Verbose] > │ let v80 : string = "v79?" │
00:01:48 #1772 [Verbose] > │ let v81 : pyo3_Bound<pyo3_PyAny> = Fable.Core.RustInterop.emitRustExpr │
00:01:48 #1773 [Verbose] > │ () v80 │
00:01:48 #1774 [Verbose] > │ let v82 : pyo3_Bound<pyo3_PyAny> = method28(v81) │
00:01:48 #1775 [Verbose] > │ let v83 : string = "v82.extract()" │
00:01:48 #1776 [Verbose] > │ let v84 : Result<struct (float * float), pyo3_PyErr> = │
00:01:48 #1777 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v83 │
00:01:48 #1778 [Verbose] > │ let v85 : (pyo3_PyErr -> std_string_String) = method29() │
00:01:48 #1779 [Verbose] > │ let v86 : Result<struct (float * float), pyo3_PyErr> = method30(v84) │
00:01:48 #1780 [Verbose] > │ let v87 : string = "v86.map_err(|x| v85(x))" │
00:01:48 #1781 [Verbose] > │ let v88 : Result<struct (float * float), std_string_String> = │
00:01:48 #1782 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v87 │
00:01:48 #1783 [Verbose] > │ let v89 : string = "v88?" │
00:01:48 #1784 [Verbose] > │ let struct (v90 : float, v91 : float) = │
00:01:48 #1785 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v89 │
00:01:48 #1786 [Verbose] > │ let v92 : float = method31(v90) │
00:01:48 #1787 [Verbose] > │ let v93 : float = method3(v92) │
00:01:48 #1788 [Verbose] > │ let v94 : float = method32(v91) │
00:01:48 #1789 [Verbose] > │ let v95 : string = "num_complex::Complex::new(v93, v94)" │
00:01:48 #1790 [Verbose] > │ let v96 : num_complex_Complex<float> = │
00:01:48 #1791 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v95 │
00:01:48 #1792 [Verbose] > │ let v97 : Result<num_complex_Complex<float>, std_string_String> = Ok v96 │
00:01:48 #1793 [Verbose] > │ v97 │
00:01:48 #1794 [Verbose] > │ and closure5 () (v0 : num_complex_Complex<float>) : US0 = │
00:01:48 #1795 [Verbose] > │ US0_1(v0) │
00:01:48 #1796 [Verbose] > │ and method42 () : float = │
00:01:48 #1797 [Verbose] > │ 3.141592653589793 │
00:01:48 #1798 [Verbose] > │ and method33 (v0 : pyo3_Python, v1 : num_complex_Complex<float>) : │
00:01:48 #1799 [Verbose] > │ num_complex_Complex<float> = │
00:01:48 #1800 [Verbose] > │ let v2 : num_complex_Complex<float> = method34(v1) │
00:01:48 #1801 [Verbose] > │ let v3 : string = "println!(\"zeta / count: {:?} / s: {:?}\", 0, v2)" │
00:01:48 #1802 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v3 │
00:01:48 #1803 [Verbose] > │ let v4 : num_complex_Complex<float> = method13(v2) │
00:01:48 #1804 [Verbose] > │ let v5 : string = "v4.re" │
00:01:48 #1805 [Verbose] > │ let v6 : float = Fable.Core.RustInterop.emitRustExpr () v5 │
00:01:48 #1806 [Verbose] > │ let v7 : bool = v6 > 1.0 │
00:01:48 #1807 [Verbose] > │ if v7 then │
00:01:48 #1808 [Verbose] > │ let v8 : float = method35() │
00:01:48 #1809 [Verbose] > │ let v9 : float = method3(v8) │
00:01:48 #1810 [Verbose] > │ let v10 : float = method4() │
00:01:48 #1811 [Verbose] > │ let v11 : string = "num_complex::Complex::new(v9, v10)" │
00:01:48 #1812 [Verbose] > │ let v12 : num_complex_Complex<float> = │
00:01:48 #1813 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11 │
00:01:48 #1814 [Verbose] > │ let v13 : (int32 []) = Array.zeroCreate<int32> (10000) │
00:01:48 #1815 [Verbose] > │ let v14 : Mut0 = {l0 = 0} : Mut0 │
00:01:48 #1816 [Verbose] > │ while method36(v14) do │
00:01:48 #1817 [Verbose] > │ let v16 : int32 = v14.l0 │
00:01:48 #1818 [Verbose] > │ v13.[int v16] <- v16 │
00:01:48 #1819 [Verbose] > │ let v17 : int32 = v16 + 1 │
00:01:48 #1820 [Verbose] > │ v14.l0 <- v17 │
00:01:48 #1821 [Verbose] > │ () │
00:01:48 #1822 [Verbose] > │ let v18 : int32 = v13.Length │
00:01:48 #1823 [Verbose] > │ let v19 : Mut2 = {l0 = 0; l1 = v12} : Mut2 │
00:01:48 #1824 [Verbose] > │ while method37(v18, v19) do │
00:01:48 #1825 [Verbose] > │ let v21 : int32 = v19.l0 │
00:01:48 #1826 [Verbose] > │ let v22 : num_complex_Complex<float> = v19.l1 │
00:01:48 #1827 [Verbose] > │ let v23 : int32 = v13.[int v21] │
00:01:48 #1828 [Verbose] > │ let v24 : float = method38() │
00:01:48 #1829 [Verbose] > │ let v25 : float = method3(v24) │
00:01:48 #1830 [Verbose] > │ let v26 : float = method4() │
00:01:48 #1831 [Verbose] > │ let v27 : string = "num_complex::Complex::new(v25, v26)" │
00:01:48 #1832 [Verbose] > │ let v28 : num_complex_Complex<float> = │
00:01:48 #1833 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v27 │
00:01:48 #1834 [Verbose] > │ let v29 : float = float v23 │
00:01:48 #1835 [Verbose] > │ let v30 : float = method31(v29) │
00:01:48 #1836 [Verbose] > │ let v31 : float = method3(v30) │
00:01:48 #1837 [Verbose] > │ let v32 : float = method4() │
00:01:48 #1838 [Verbose] > │ let v33 : string = "num_complex::Complex::new(v31, v32)" │
00:01:48 #1839 [Verbose] > │ let v34 : num_complex_Complex<float> = │
00:01:48 #1840 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v33 │
00:01:48 #1841 [Verbose] > │ let v35 : num_complex_Complex<float> = method39(v34) │
00:01:48 #1842 [Verbose] > │ let v36 : num_complex_Complex<float> = method40(v2) │
00:01:48 #1843 [Verbose] > │ let v37 : string = "num_complex::Complex::powc(v35, v36)" │
00:01:48 #1844 [Verbose] > │ let v38 : num_complex_Complex<float> = │
00:01:48 #1845 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v37 │
00:01:48 #1846 [Verbose] > │ let v39 : string = "v28 / v38" │
00:01:48 #1847 [Verbose] > │ let v40 : num_complex_Complex<float> = │
00:01:48 #1848 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v39 │
00:01:48 #1849 [Verbose] > │ let v41 : string = "v22 + v40" │
00:01:48 #1850 [Verbose] > │ let v42 : num_complex_Complex<float> = │
00:01:48 #1851 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v41 │
00:01:48 #1852 [Verbose] > │ let v43 : int32 = v21 + 1 │
00:01:48 #1853 [Verbose] > │ v19.l0 <- v43 │
00:01:48 #1854 [Verbose] > │ v19.l1 <- v42 │
00:01:48 #1855 [Verbose] > │ () │
00:01:48 #1856 [Verbose] > │ let v44 : num_complex_Complex<float> = v19.l1 │
00:01:48 #1857 [Verbose] > │ v44 │
00:01:48 #1858 [Verbose] > │ else │
00:01:48 #1859 [Verbose] > │ let v45 : float = method38() │
00:01:48 #1860 [Verbose] > │ let v46 : float = method3(v45) │
00:01:48 #1861 [Verbose] > │ let v47 : float = method4() │
00:01:48 #1862 [Verbose] > │ let v48 : string = "num_complex::Complex::new(v46, v47)" │
00:01:48 #1863 [Verbose] > │ let v49 : num_complex_Complex<float> = │
00:01:48 #1864 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v48 │
00:01:48 #1865 [Verbose] > │ let v50 : string = "v49 - v2" │
00:01:48 #1866 [Verbose] > │ let v51 : num_complex_Complex<float> = │
00:01:48 #1867 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v50 │
00:01:48 #1868 [Verbose] > │ let v52 : string = $" s = mpmath.gamma(s)" │
00:01:48 #1869 [Verbose] > │ let v53 : num_complex_Complex<float> = method8(v51) │
00:01:48 #1870 [Verbose] > │ let v54 : Result<num_complex_Complex<float>, std_string_String> = │
00:01:48 #1871 [Verbose] > │ method41(v0, v52, v53) │
00:01:48 #1872 [Verbose] > │ let v55 : string = "v54.ok()" │
00:01:48 #1873 [Verbose] > │ let v56 : num_complex_Complex<float> option = │
00:01:48 #1874 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v55 │
00:01:48 #1875 [Verbose] > │ let v57 : (num_complex_Complex<float> -> US0) = closure5() │
00:01:48 #1876 [Verbose] > │ let v58 : US0 = US0_0 │
00:01:48 #1877 [Verbose] > │ let v59 : US0 = v56 |> Option.map v57 |> Option.defaultValue v58 │
00:01:48 #1878 [Verbose] > │ let v60 : string = "f64::NAN" │
00:01:48 #1879 [Verbose] > │ let v61 : float = Fable.Core.RustInterop.emitRustExpr () v60 │
00:01:48 #1880 [Verbose] > │ let v62 : string = "f64::NAN" │
00:01:48 #1881 [Verbose] > │ let v63 : float = Fable.Core.RustInterop.emitRustExpr () v62 │
00:01:48 #1882 [Verbose] > │ let v64 : float = method31(v61) │
00:01:48 #1883 [Verbose] > │ let v65 : float = method3(v64) │
00:01:48 #1884 [Verbose] > │ let v66 : float = method32(v63) │
00:01:48 #1885 [Verbose] > │ let v67 : string = "num_complex::Complex::new(v65, v66)" │
00:01:48 #1886 [Verbose] > │ let v68 : num_complex_Complex<float> = │
00:01:48 #1887 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v67 │
00:01:48 #1888 [Verbose] > │ let v71 : num_complex_Complex<float> = │
00:01:48 #1889 [Verbose] > │ match v59 with │
00:01:48 #1890 [Verbose] > │ | US0_0 -> (* None *) │
00:01:48 #1891 [Verbose] > │ v68 │
00:01:48 #1892 [Verbose] > │ | US0_1(v69) -> (* Some *) │
00:01:48 #1893 [Verbose] > │ v69 │
00:01:48 #1894 [Verbose] > │ let v72 : float = method42() │
00:01:48 #1895 [Verbose] > │ let v73 : float = method3(v72) │
00:01:48 #1896 [Verbose] > │ let v74 : float = method4() │
00:01:48 #1897 [Verbose] > │ let v75 : string = "num_complex::Complex::new(v73, v74)" │
00:01:48 #1898 [Verbose] > │ let v76 : num_complex_Complex<float> = │
00:01:48 #1899 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v75 │
00:01:48 #1900 [Verbose] > │ let v77 : string = "v76 * v2" │
00:01:48 #1901 [Verbose] > │ let v78 : num_complex_Complex<float> = │
00:01:48 #1902 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v77 │
00:01:48 #1903 [Verbose] > │ let v79 : float = method2() │
00:01:48 #1904 [Verbose] > │ let v80 : float = method3(v79) │
00:01:48 #1905 [Verbose] > │ let v81 : float = method4() │
00:01:48 #1906 [Verbose] > │ let v82 : string = "num_complex::Complex::new(v80, v81)" │
00:01:48 #1907 [Verbose] > │ let v83 : num_complex_Complex<float> = │
00:01:48 #1908 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v82 │
00:01:48 #1909 [Verbose] > │ let v84 : string = "v78 / v83" │
00:01:48 #1910 [Verbose] > │ let v85 : num_complex_Complex<float> = │
00:01:48 #1911 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v84 │
00:01:48 #1912 [Verbose] > │ let v86 : string = "v85.sin()" │
00:01:48 #1913 [Verbose] > │ let v87 : num_complex_Complex<float> = │
00:01:48 #1914 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v86 │
00:01:48 #1915 [Verbose] > │ let v88 : num_complex_Complex<float> = method13(v2) │
00:01:48 #1916 [Verbose] > │ let v89 : string = "v88.re" │
00:01:48 #1917 [Verbose] > │ let v90 : float = Fable.Core.RustInterop.emitRustExpr () v89 │
00:01:48 #1918 [Verbose] > │ let v91 : float = 1.0 - v90 │
00:01:48 #1919 [Verbose] > │ let v92 : num_complex_Complex<float> = method14(v2) │
00:01:48 #1920 [Verbose] > │ let v93 : string = "v92.im" │
00:01:48 #1921 [Verbose] > │ let v94 : float = Fable.Core.RustInterop.emitRustExpr () v93 │
00:01:48 #1922 [Verbose] > │ let v95 : float = -v94 │
00:01:48 #1923 [Verbose] > │ let v96 : float = method31(v91) │
00:01:48 #1924 [Verbose] > │ let v97 : float = method3(v96) │
00:01:48 #1925 [Verbose] > │ let v98 : float = method32(v95) │
00:01:48 #1926 [Verbose] > │ let v99 : string = "num_complex::Complex::new(v97, v98)" │
00:01:48 #1927 [Verbose] > │ let v100 : num_complex_Complex<float> = │
00:01:48 #1928 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v99 │
00:01:48 #1929 [Verbose] > │ let v101 : num_complex_Complex<float> = method13(v100) │
00:01:48 #1930 [Verbose] > │ let v102 : string = "v101.re" │
00:01:48 #1931 [Verbose] > │ let v103 : float = Fable.Core.RustInterop.emitRustExpr () v102 │
00:01:48 #1932 [Verbose] > │ let v104 : bool = v103 <= 1.0 │
00:01:48 #1933 [Verbose] > │ let v634 : num_complex_Complex<float> = │
00:01:48 #1934 [Verbose] > │ if v104 then │
00:01:48 #1935 [Verbose] > │ let v105 : float = method35() │
00:01:48 #1936 [Verbose] > │ let v106 : float = method3(v105) │
00:01:48 #1937 [Verbose] > │ let v107 : float = method4() │
00:01:48 #1938 [Verbose] > │ let v108 : string = "num_complex::Complex::new(v106, v107)" │
00:01:48 #1939 [Verbose] > │ let v109 : num_complex_Complex<float> = │
00:01:48 #1940 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v108 │
00:01:48 #1941 [Verbose] > │ v109 │
00:01:48 #1942 [Verbose] > │ else │
00:01:48 #1943 [Verbose] > │ let v110 : num_complex_Complex<float> = method34(v100) │
00:01:48 #1944 [Verbose] > │ let v111 : string = "println!(\"zeta / count: {:?} / s: │
00:01:48 #1945 [Verbose] > │ {:?}\", 1, v110)" │
00:01:48 #1946 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v111 │
00:01:48 #1947 [Verbose] > │ let v112 : num_complex_Complex<float> = method13(v110) │
00:01:48 #1948 [Verbose] > │ let v113 : string = "v112.re" │
00:01:48 #1949 [Verbose] > │ let v114 : float = Fable.Core.RustInterop.emitRustExpr () │
00:01:48 #1950 [Verbose] > │ v113 │
00:01:48 #1951 [Verbose] > │ let v115 : bool = v114 > 1.0 │
00:01:48 #1952 [Verbose] > │ if v115 then │
00:01:48 #1953 [Verbose] > │ let v116 : float = method35() │
00:01:48 #1954 [Verbose] > │ let v117 : float = method3(v116) │
00:01:48 #1955 [Verbose] > │ let v118 : float = method4() │
00:01:48 #1956 [Verbose] > │ let v119 : string = "num_complex::Complex::new(v117, │
00:01:48 #1957 [Verbose] > │ v118)" │
00:01:48 #1958 [Verbose] > │ let v120 : num_complex_Complex<float> = │
00:01:48 #1959 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v119 │
00:01:48 #1960 [Verbose] > │ let v121 : (int32 []) = Array.zeroCreate<int32> (10000) │
00:01:48 #1961 [Verbose] > │ let v122 : Mut0 = {l0 = 0} : Mut0 │
00:01:48 #1962 [Verbose] > │ while method36(v122) do │
00:01:48 #1963 [Verbose] > │ let v124 : int32 = v122.l0 │
00:01:48 #1964 [Verbose] > │ v121.[int v124] <- v124 │
00:01:48 #1965 [Verbose] > │ let v125 : int32 = v124 + 1 │
00:01:48 #1966 [Verbose] > │ v122.l0 <- v125 │
00:01:48 #1967 [Verbose] > │ () │
00:01:48 #1968 [Verbose] > │ let v126 : int32 = v121.Length │
00:01:48 #1969 [Verbose] > │ let v127 : Mut2 = {l0 = 0; l1 = v120} : Mut2 │
00:01:48 #1970 [Verbose] > │ while method37(v126, v127) do │
00:01:48 #1971 [Verbose] > │ let v129 : int32 = v127.l0 │
00:01:48 #1972 [Verbose] > │ let v130 : num_complex_Complex<float> = v127.l1 │
00:01:48 #1973 [Verbose] > │ let v131 : int32 = v121.[int v129] │
00:01:48 #1974 [Verbose] > │ let v132 : float = method38() │
00:01:48 #1975 [Verbose] > │ let v133 : float = method3(v132) │
00:01:48 #1976 [Verbose] > │ let v134 : float = method4() │
00:01:48 #1977 [Verbose] > │ let v135 : string = "num_complex::Complex::new(v133, │
00:01:48 #1978 [Verbose] > │ v134)" │
00:01:48 #1979 [Verbose] > │ let v136 : num_complex_Complex<float> = │
00:01:48 #1980 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v135 │
00:01:48 #1981 [Verbose] > │ let v137 : float = float v131 │
00:01:48 #1982 [Verbose] > │ let v138 : float = method31(v137) │
00:01:48 #1983 [Verbose] > │ let v139 : float = method3(v138) │
00:01:48 #1984 [Verbose] > │ let v140 : float = method4() │
00:01:48 #1985 [Verbose] > │ let v141 : string = "num_complex::Complex::new(v139, │
00:01:48 #1986 [Verbose] > │ v140)" │
00:01:48 #1987 [Verbose] > │ let v142 : num_complex_Complex<float> = │
00:01:48 #1988 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v141 │
00:01:48 #1989 [Verbose] > │ let v143 : num_complex_Complex<float> = │
00:01:48 #1990 [Verbose] > │ method39(v142) │
00:01:48 #1991 [Verbose] > │ let v144 : num_complex_Complex<float> = │
00:01:48 #1992 [Verbose] > │ method40(v110) │
00:01:48 #1993 [Verbose] > │ let v145 : string = │
00:01:48 #1994 [Verbose] > │ "num_complex::Complex::powc(v143, v144)" │
00:01:48 #1995 [Verbose] > │ let v146 : num_complex_Complex<float> = │
00:01:48 #1996 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v145 │
00:01:48 #1997 [Verbose] > │ let v147 : string = "v136 / v146" │
00:01:48 #1998 [Verbose] > │ let v148 : num_complex_Complex<float> = │
00:01:48 #1999 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v147 │
00:01:48 #2000 [Verbose] > │ let v149 : string = "v130 + v148" │
00:01:48 #2001 [Verbose] > │ let v150 : num_complex_Complex<float> = │
00:01:48 #2002 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v149 │
00:01:48 #2003 [Verbose] > │ let v151 : int32 = v129 + 1 │
00:01:48 #2004 [Verbose] > │ v127.l0 <- v151 │
00:01:48 #2005 [Verbose] > │ v127.l1 <- v150 │
00:01:48 #2006 [Verbose] > │ () │
00:01:48 #2007 [Verbose] > │ let v152 : num_complex_Complex<float> = v127.l1 │
00:01:48 #2008 [Verbose] > │ v152 │
00:01:48 #2009 [Verbose] > │ else │
00:01:48 #2010 [Verbose] > │ let v153 : float = method38() │
00:01:48 #2011 [Verbose] > │ let v154 : float = method3(v153) │
00:01:48 #2012 [Verbose] > │ let v155 : float = method4() │
00:01:48 #2013 [Verbose] > │ let v156 : string = "num_complex::Complex::new(v154, │
00:01:48 #2014 [Verbose] > │ v155)" │
00:01:48 #2015 [Verbose] > │ let v157 : num_complex_Complex<float> = │
00:01:48 #2016 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v156 │
00:01:48 #2017 [Verbose] > │ let v158 : string = "v157 - v110" │
00:01:48 #2018 [Verbose] > │ let v159 : num_complex_Complex<float> = │
00:01:48 #2019 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v158 │
00:01:48 #2020 [Verbose] > │ let v160 : string = $" s = mpmath.gamma(s)" │
00:01:48 #2021 [Verbose] > │ let v161 : num_complex_Complex<float> = method8(v159) │
00:01:48 #2022 [Verbose] > │ let v162 : Result<num_complex_Complex<float>, │
00:01:48 #2023 [Verbose] > │ std_string_String> = method41(v0, v160, v161) │
00:01:48 #2024 [Verbose] > │ let v163 : string = "v162.ok()" │
00:01:48 #2025 [Verbose] > │ let v164 : num_complex_Complex<float> option = │
00:01:48 #2026 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v163 │
00:01:48 #2027 [Verbose] > │ let v165 : US0 = US0_0 │
00:01:48 #2028 [Verbose] > │ let v166 : US0 = v164 |> Option.map v57 |> │
00:01:48 #2029 [Verbose] > │ Option.defaultValue v165 │
00:01:48 #2030 [Verbose] > │ let v167 : string = "f64::NAN" │
00:01:48 #2031 [Verbose] > │ let v168 : float = Fable.Core.RustInterop.emitRustExpr │
00:01:48 #2032 [Verbose] > │ () v167 │
00:01:48 #2033 [Verbose] > │ let v169 : string = "f64::NAN" │
00:01:48 #2034 [Verbose] > │ let v170 : float = Fable.Core.RustInterop.emitRustExpr │
00:01:48 #2035 [Verbose] > │ () v169 │
00:01:48 #2036 [Verbose] > │ let v171 : float = method31(v168) │
00:01:48 #2037 [Verbose] > │ let v172 : float = method3(v171) │
00:01:48 #2038 [Verbose] > │ let v173 : float = method32(v170) │
00:01:48 #2039 [Verbose] > │ let v174 : string = "num_complex::Complex::new(v172, │
00:01:48 #2040 [Verbose] > │ v173)" │
00:01:48 #2041 [Verbose] > │ let v175 : num_complex_Complex<float> = │
00:01:48 #2042 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v174 │
00:01:48 #2043 [Verbose] > │ let v178 : num_complex_Complex<float> = │
00:01:48 #2044 [Verbose] > │ match v166 with │
00:01:48 #2045 [Verbose] > │ | US0_0 -> (* None *) │
00:01:48 #2046 [Verbose] > │ v175 │
00:01:48 #2047 [Verbose] > │ | US0_1(v176) -> (* Some *) │
00:01:48 #2048 [Verbose] > │ v176 │
00:01:48 #2049 [Verbose] > │ let v179 : float = method42() │
00:01:48 #2050 [Verbose] > │ let v180 : float = method3(v179) │
00:01:48 #2051 [Verbose] > │ let v181 : float = method4() │
00:01:48 #2052 [Verbose] > │ let v182 : string = "num_complex::Complex::new(v180, │
00:01:48 #2053 [Verbose] > │ v181)" │
00:01:48 #2054 [Verbose] > │ let v183 : num_complex_Complex<float> = │
00:01:48 #2055 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v182 │
00:01:48 #2056 [Verbose] > │ let v184 : string = "v183 * v110" │
00:01:48 #2057 [Verbose] > │ let v185 : num_complex_Complex<float> = │
00:01:48 #2058 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v184 │
00:01:48 #2059 [Verbose] > │ let v186 : float = method2() │
00:01:48 #2060 [Verbose] > │ let v187 : float = method3(v186) │
00:01:48 #2061 [Verbose] > │ let v188 : float = method4() │
00:01:48 #2062 [Verbose] > │ let v189 : string = "num_complex::Complex::new(v187, │
00:01:48 #2063 [Verbose] > │ v188)" │
00:01:48 #2064 [Verbose] > │ let v190 : num_complex_Complex<float> = │
00:01:48 #2065 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v189 │
00:01:48 #2066 [Verbose] > │ let v191 : string = "v185 / v190" │
00:01:48 #2067 [Verbose] > │ let v192 : num_complex_Complex<float> = │
00:01:48 #2068 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v191 │
00:01:48 #2069 [Verbose] > │ let v193 : string = "v192.sin()" │
00:01:48 #2070 [Verbose] > │ let v194 : num_complex_Complex<float> = │
00:01:48 #2071 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v193 │
00:01:48 #2072 [Verbose] > │ let v195 : num_complex_Complex<float> = method13(v110) │
00:01:48 #2073 [Verbose] > │ let v196 : string = "v195.re" │
00:01:48 #2074 [Verbose] > │ let v197 : float = Fable.Core.RustInterop.emitRustExpr │
00:01:48 #2075 [Verbose] > │ () v196 │
00:01:48 #2076 [Verbose] > │ let v198 : float = 1.0 - v197 │
00:01:48 #2077 [Verbose] > │ let v199 : num_complex_Complex<float> = method14(v110) │
00:01:48 #2078 [Verbose] > │ let v200 : string = "v199.im" │
00:01:48 #2079 [Verbose] > │ let v201 : float = Fable.Core.RustInterop.emitRustExpr │
00:01:48 #2080 [Verbose] > │ () v200 │
00:01:48 #2081 [Verbose] > │ let v202 : float = -v201 │
00:01:48 #2082 [Verbose] > │ let v203 : float = method31(v198) │
00:01:48 #2083 [Verbose] > │ let v204 : float = method3(v203) │
00:01:48 #2084 [Verbose] > │ let v205 : float = method32(v202) │
00:01:48 #2085 [Verbose] > │ let v206 : string = "num_complex::Complex::new(v204, │
00:01:48 #2086 [Verbose] > │ v205)" │
00:01:48 #2087 [Verbose] > │ let v207 : num_complex_Complex<float> = │
00:01:48 #2088 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v206 │
00:01:48 #2089 [Verbose] > │ let v208 : num_complex_Complex<float> = method13(v207) │
00:01:48 #2090 [Verbose] > │ let v209 : string = "v208.re" │
00:01:48 #2091 [Verbose] > │ let v210 : float = Fable.Core.RustInterop.emitRustExpr │
00:01:48 #2092 [Verbose] > │ () v209 │
00:01:48 #2093 [Verbose] > │ let v211 : bool = v210 <= 1.0 │
00:01:48 #2094 [Verbose] > │ let v610 : num_complex_Complex<float> = │
00:01:48 #2095 [Verbose] > │ if v211 then │
00:01:48 #2096 [Verbose] > │ let v212 : float = method35() │
00:01:48 #2097 [Verbose] > │ let v213 : float = method3(v212) │
00:01:48 #2098 [Verbose] > │ let v214 : float = method4() │
00:01:48 #2099 [Verbose] > │ let v215 : string = │
00:01:48 #2100 [Verbose] > │ "num_complex::Complex::new(v213, v214)" │
00:01:48 #2101 [Verbose] > │ let v216 : num_complex_Complex<float> = │
00:01:48 #2102 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v215 │
00:01:48 #2103 [Verbose] > │ v216 │
00:01:48 #2104 [Verbose] > │ else │
00:01:48 #2105 [Verbose] > │ let v217 : num_complex_Complex<float> = │
00:01:48 #2106 [Verbose] > │ method34(v207) │
00:01:48 #2107 [Verbose] > │ let v218 : string = "println!(\"zeta / count: │
00:01:48 #2108 [Verbose] > │ {:?} / s: {:?}\", 2, v217)" │
00:01:48 #2109 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v218 │
00:01:48 #2110 [Verbose] > │ let v219 : num_complex_Complex<float> = │
00:01:48 #2111 [Verbose] > │ method13(v217) │
00:01:48 #2112 [Verbose] > │ let v220 : string = "v219.re" │
00:01:48 #2113 [Verbose] > │ let v221 : float = │
00:01:48 #2114 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v220 │
00:01:48 #2115 [Verbose] > │ let v222 : bool = v221 > 1.0 │
00:01:48 #2116 [Verbose] > │ if v222 then │
00:01:48 #2117 [Verbose] > │ let v223 : float = method35() │
00:01:48 #2118 [Verbose] > │ let v224 : float = method3(v223) │
00:01:48 #2119 [Verbose] > │ let v225 : float = method4() │
00:01:48 #2120 [Verbose] > │ let v226 : string = │
00:01:48 #2121 [Verbose] > │ "num_complex::Complex::new(v224, v225)" │
00:01:48 #2122 [Verbose] > │ let v227 : num_complex_Complex<float> = │
00:01:48 #2123 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v226 │
00:01:48 #2124 [Verbose] > │ let v228 : (int32 []) = │
00:01:48 #2125 [Verbose] > │ Array.zeroCreate<int32> (10000) │
00:01:48 #2126 [Verbose] > │ let v229 : Mut0 = {l0 = 0} : Mut0 │
00:01:48 #2127 [Verbose] > │ while method36(v229) do │
00:01:48 #2128 [Verbose] > │ let v231 : int32 = v229.l0 │
00:01:48 #2129 [Verbose] > │ v228.[int v231] <- v231 │
00:01:48 #2130 [Verbose] > │ let v232 : int32 = v231 + 1 │
00:01:48 #2131 [Verbose] > │ v229.l0 <- v232 │
00:01:48 #2132 [Verbose] > │ () │
00:01:48 #2133 [Verbose] > │ let v233 : int32 = v228.Length │
00:01:48 #2134 [Verbose] > │ let v234 : Mut2 = {l0 = 0; l1 = v227} : Mut2 │
00:01:48 #2135 [Verbose] > │ while method37(v233, v234) do │
00:01:48 #2136 [Verbose] > │ let v236 : int32 = v234.l0 │
00:01:48 #2137 [Verbose] > │ let v237 : num_complex_Complex<float> = │
00:01:48 #2138 [Verbose] > │ v234.l1 │
00:01:48 #2139 [Verbose] > │ let v238 : int32 = v228.[int v236] │
00:01:48 #2140 [Verbose] > │ let v239 : float = method38() │
00:01:48 #2141 [Verbose] > │ let v240 : float = method3(v239) │
00:01:48 #2142 [Verbose] > │ let v241 : float = method4() │
00:01:48 #2143 [Verbose] > │ let v242 : string = │
00:01:48 #2144 [Verbose] > │ "num_complex::Complex::new(v240, v241)" │
00:01:48 #2145 [Verbose] > │ let v243 : num_complex_Complex<float> = │
00:01:48 #2146 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v242 │
00:01:48 #2147 [Verbose] > │ let v244 : float = float v238 │
00:01:48 #2148 [Verbose] > │ let v245 : float = method31(v244) │
00:01:48 #2149 [Verbose] > │ let v246 : float = method3(v245) │
00:01:48 #2150 [Verbose] > │ let v247 : float = method4() │
00:01:48 #2151 [Verbose] > │ let v248 : string = │
00:01:48 #2152 [Verbose] > │ "num_complex::Complex::new(v246, v247)" │
00:01:48 #2153 [Verbose] > │ let v249 : num_complex_Complex<float> = │
00:01:48 #2154 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v248 │
00:01:48 #2155 [Verbose] > │ let v250 : num_complex_Complex<float> = │
00:01:48 #2156 [Verbose] > │ method39(v249) │
00:01:48 #2157 [Verbose] > │ let v251 : num_complex_Complex<float> = │
00:01:48 #2158 [Verbose] > │ method40(v217) │
00:01:48 #2159 [Verbose] > │ let v252 : string = │
00:01:48 #2160 [Verbose] > │ "num_complex::Complex::powc(v250, v251)" │
00:01:48 #2161 [Verbose] > │ let v253 : num_complex_Complex<float> = │
00:01:48 #2162 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v252 │
00:01:48 #2163 [Verbose] > │ let v254 : string = "v243 / v253" │
00:01:48 #2164 [Verbose] > │ let v255 : num_complex_Complex<float> = │
00:01:48 #2165 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v254 │
00:01:48 #2166 [Verbose] > │ let v256 : string = "v237 + v255" │
00:01:48 #2167 [Verbose] > │ let v257 : num_complex_Complex<float> = │
00:01:48 #2168 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v256 │
00:01:48 #2169 [Verbose] > │ let v258 : int32 = v236 + 1 │
00:01:48 #2170 [Verbose] > │ v234.l0 <- v258 │
00:01:48 #2171 [Verbose] > │ v234.l1 <- v257 │
00:01:48 #2172 [Verbose] > │ () │
00:01:48 #2173 [Verbose] > │ let v259 : num_complex_Complex<float> = │
00:01:48 #2174 [Verbose] > │ v234.l1 │
00:01:48 #2175 [Verbose] > │ v259 │
00:01:48 #2176 [Verbose] > │ else │
00:01:48 #2177 [Verbose] > │ let v260 : float = method38() │
00:01:48 #2178 [Verbose] > │ let v261 : float = method3(v260) │
00:01:48 #2179 [Verbose] > │ let v262 : float = method4() │
00:01:48 #2180 [Verbose] > │ let v263 : string = │
00:01:48 #2181 [Verbose] > │ "num_complex::Complex::new(v261, v262)" │
00:01:48 #2182 [Verbose] > │ let v264 : num_complex_Complex<float> = │
00:01:48 #2183 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v263 │
00:01:48 #2184 [Verbose] > │ let v265 : string = "v264 - v217" │
00:01:48 #2185 [Verbose] > │ let v266 : num_complex_Complex<float> = │
00:01:48 #2186 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v265 │
00:01:48 #2187 [Verbose] > │ let v267 : string = $" s = │
00:01:48 #2188 [Verbose] > │ mpmath.gamma(s)" │
00:01:48 #2189 [Verbose] > │ let v268 : num_complex_Complex<float> = │
00:01:48 #2190 [Verbose] > │ method8(v266) │
00:01:48 #2191 [Verbose] > │ let v269 : │
00:01:48 #2192 [Verbose] > │ Result<num_complex_Complex<float>, std_string_String> = method41(v0, v267, │
00:01:48 #2193 [Verbose] > │ v268) │
00:01:48 #2194 [Verbose] > │ let v270 : string = "v269.ok()" │
00:01:48 #2195 [Verbose] > │ let v271 : num_complex_Complex<float> option │
00:01:48 #2196 [Verbose] > │ = Fable.Core.RustInterop.emitRustExpr () v270 │
00:01:48 #2197 [Verbose] > │ let v272 : US0 = US0_0 │
00:01:48 #2198 [Verbose] > │ let v273 : US0 = v271 |> Option.map v57 |> │
00:01:48 #2199 [Verbose] > │ Option.defaultValue v272 │
00:01:48 #2200 [Verbose] > │ let v274 : string = "f64::NAN" │
00:01:48 #2201 [Verbose] > │ let v275 : float = │
00:01:48 #2202 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v274 │
00:01:48 #2203 [Verbose] > │ let v276 : string = "f64::NAN" │
00:01:48 #2204 [Verbose] > │ let v277 : float = │
00:01:48 #2205 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v276 │
00:01:48 #2206 [Verbose] > │ let v278 : float = method31(v275) │
00:01:48 #2207 [Verbose] > │ let v279 : float = method3(v278) │
00:01:48 #2208 [Verbose] > │ let v280 : float = method32(v277) │
00:01:48 #2209 [Verbose] > │ let v281 : string = │
00:01:48 #2210 [Verbose] > │ "num_complex::Complex::new(v279, v280)" │
00:01:48 #2211 [Verbose] > │ let v282 : num_complex_Complex<float> = │
00:01:48 #2212 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v281 │
00:01:48 #2213 [Verbose] > │ let v285 : num_complex_Complex<float> = │
00:01:48 #2214 [Verbose] > │ match v273 with │
00:01:48 #2215 [Verbose] > │ | US0_0 -> (* None *) │
00:01:48 #2216 [Verbose] > │ v282 │
00:01:48 #2217 [Verbose] > │ | US0_1(v283) -> (* Some *) │
00:01:48 #2218 [Verbose] > │ v283 │
00:01:48 #2219 [Verbose] > │ let v286 : float = method42() │
00:01:48 #2220 [Verbose] > │ let v287 : float = method3(v286) │
00:01:48 #2221 [Verbose] > │ let v288 : float = method4() │
00:01:48 #2222 [Verbose] > │ let v289 : string = │
00:01:48 #2223 [Verbose] > │ "num_complex::Complex::new(v287, v288)" │
00:01:48 #2224 [Verbose] > │ let v290 : num_complex_Complex<float> = │
00:01:48 #2225 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v289 │
00:01:48 #2226 [Verbose] > │ let v291 : string = "v290 * v217" │
00:01:48 #2227 [Verbose] > │ let v292 : num_complex_Complex<float> = │
00:01:48 #2228 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v291 │
00:01:48 #2229 [Verbose] > │ let v293 : float = method2() │
00:01:48 #2230 [Verbose] > │ let v294 : float = method3(v293) │
00:01:48 #2231 [Verbose] > │ let v295 : float = method4() │
00:01:48 #2232 [Verbose] > │ let v296 : string = │
00:01:48 #2233 [Verbose] > │ "num_complex::Complex::new(v294, v295)" │
00:01:48 #2234 [Verbose] > │ let v297 : num_complex_Complex<float> = │
00:01:48 #2235 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v296 │
00:01:48 #2236 [Verbose] > │ let v298 : string = "v292 / v297" │
00:01:48 #2237 [Verbose] > │ let v299 : num_complex_Complex<float> = │
00:01:48 #2238 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v298 │
00:01:48 #2239 [Verbose] > │ let v300 : string = "v299.sin()" │
00:01:48 #2240 [Verbose] > │ let v301 : num_complex_Complex<float> = │
00:01:48 #2241 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v300 │
00:01:48 #2242 [Verbose] > │ let v302 : num_complex_Complex<float> = │
00:01:48 #2243 [Verbose] > │ method13(v217) │
00:01:48 #2244 [Verbose] > │ let v303 : string = "v302.re" │
00:01:48 #2245 [Verbose] > │ let v304 : float = │
00:01:48 #2246 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v303 │
00:01:48 #2247 [Verbose] > │ let v305 : float = 1.0 - v304 │
00:01:48 #2248 [Verbose] > │ let v306 : num_complex_Complex<float> = │
00:01:48 #2249 [Verbose] > │ method14(v217) │
00:01:48 #2250 [Verbose] > │ let v307 : string = "v306.im" │
00:01:48 #2251 [Verbose] > │ let v308 : float = │
00:01:48 #2252 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v307 │
00:01:48 #2253 [Verbose] > │ let v309 : float = -v308 │
00:01:48 #2254 [Verbose] > │ let v310 : float = method31(v305) │
00:01:48 #2255 [Verbose] > │ let v311 : float = method3(v310) │
00:01:48 #2256 [Verbose] > │ let v312 : float = method32(v309) │
00:01:48 #2257 [Verbose] > │ let v313 : string = │
00:01:48 #2258 [Verbose] > │ "num_complex::Complex::new(v311, v312)" │
00:01:48 #2259 [Verbose] > │ let v314 : num_complex_Complex<float> = │
00:01:48 #2260 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v313 │
00:01:48 #2261 [Verbose] > │ let v315 : num_complex_Complex<float> = │
00:01:48 #2262 [Verbose] > │ method13(v314) │
00:01:48 #2263 [Verbose] > │ let v316 : string = "v315.re" │
00:01:48 #2264 [Verbose] > │ let v317 : float = │
00:01:48 #2265 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v316 │
00:01:48 #2266 [Verbose] > │ let v318 : bool = v317 <= 1.0 │
00:01:48 #2267 [Verbose] > │ let v586 : num_complex_Complex<float> = │
00:01:48 #2268 [Verbose] > │ if v318 then │
00:01:48 #2269 [Verbose] > │ let v319 : float = method35() │
00:01:48 #2270 [Verbose] > │ let v320 : float = method3(v319) │
00:01:48 #2271 [Verbose] > │ let v321 : float = method4() │
00:01:48 #2272 [Verbose] > │ let v322 : string = │
00:01:48 #2273 [Verbose] > │ "num_complex::Complex::new(v320, v321)" │
00:01:48 #2274 [Verbose] > │ let v323 : │
00:01:48 #2275 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v322 │
00:01:48 #2276 [Verbose] > │ v323 │
00:01:48 #2277 [Verbose] > │ else │
00:01:48 #2278 [Verbose] > │ let v324 : │
00:01:48 #2279 [Verbose] > │ num_complex_Complex<float> = method34(v314) │
00:01:48 #2280 [Verbose] > │ let v325 : string = "println!(\"zeta │
00:01:48 #2281 [Verbose] > │ / count: {:?} / s: {:?}\", 3, v324)" │
00:01:48 #2282 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr │
00:01:48 #2283 [Verbose] > │ () v325 │
00:01:48 #2284 [Verbose] > │ let v326 : │
00:01:48 #2285 [Verbose] > │ num_complex_Complex<float> = method13(v324) │
00:01:48 #2286 [Verbose] > │ let v327 : string = "v326.re" │
00:01:48 #2287 [Verbose] > │ let v328 : float = │
00:01:48 #2288 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v327 │
00:01:48 #2289 [Verbose] > │ let v329 : bool = v328 > 1.0 │
00:01:48 #2290 [Verbose] > │ if v329 then │
00:01:48 #2291 [Verbose] > │ let v330 : float = method35() │
00:01:48 #2292 [Verbose] > │ let v331 : float = method3(v330) │
00:01:48 #2293 [Verbose] > │ let v332 : float = method4() │
00:01:48 #2294 [Verbose] > │ let v333 : string = │
00:01:48 #2295 [Verbose] > │ "num_complex::Complex::new(v331, v332)" │
00:01:48 #2296 [Verbose] > │ let v334 : │
00:01:48 #2297 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v333 │
00:01:48 #2298 [Verbose] > │ let v335 : (int32 []) = │
00:01:48 #2299 [Verbose] > │ Array.zeroCreate<int32> (10000) │
00:01:48 #2300 [Verbose] > │ let v336 : Mut0 = {l0 = 0} : │
00:01:48 #2301 [Verbose] > │ Mut0 │
00:01:48 #2302 [Verbose] > │ while method36(v336) do │
00:01:48 #2303 [Verbose] > │ let v338 : int32 = v336.l0 │
00:01:48 #2304 [Verbose] > │ v335.[int v338] <- v338 │
00:01:48 #2305 [Verbose] > │ let v339 : int32 = v338 + 1 │
00:01:48 #2306 [Verbose] > │ v336.l0 <- v339 │
00:01:48 #2307 [Verbose] > │ () │
00:01:48 #2308 [Verbose] > │ let v340 : int32 = v335.Length │
00:01:48 #2309 [Verbose] > │ let v341 : Mut2 = {l0 = 0; l1 = │
00:01:48 #2310 [Verbose] > │ v334} : Mut2 │
00:01:48 #2311 [Verbose] > │ while method37(v340, v341) do │
00:01:48 #2312 [Verbose] > │ let v343 : int32 = v341.l0 │
00:01:48 #2313 [Verbose] > │ let v344 : │
00:01:48 #2314 [Verbose] > │ num_complex_Complex<float> = v341.l1 │
00:01:48 #2315 [Verbose] > │ let v345 : int32 = v335.[int │
00:01:48 #2316 [Verbose] > │ v343] │
00:01:48 #2317 [Verbose] > │ let v346 : float = │
00:01:48 #2318 [Verbose] > │ method38() │
00:01:48 #2319 [Verbose] > │ let v347 : float = │
00:01:48 #2320 [Verbose] > │ method3(v346) │
00:01:48 #2321 [Verbose] > │ let v348 : float = method4() │
00:01:48 #2322 [Verbose] > │ let v349 : string = │
00:01:48 #2323 [Verbose] > │ "num_complex::Complex::new(v347, v348)" │
00:01:48 #2324 [Verbose] > │ let v350 : │
00:01:48 #2325 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v349 │
00:01:48 #2326 [Verbose] > │ let v351 : float = float │
00:01:48 #2327 [Verbose] > │ v345 │
00:01:48 #2328 [Verbose] > │ let v352 : float = │
00:01:48 #2329 [Verbose] > │ method31(v351) │
00:01:48 #2330 [Verbose] > │ let v353 : float = │
00:01:48 #2331 [Verbose] > │ method3(v352) │
00:01:48 #2332 [Verbose] > │ let v354 : float = method4() │
00:01:48 #2333 [Verbose] > │ let v355 : string = │
00:01:48 #2334 [Verbose] > │ "num_complex::Complex::new(v353, v354)" │
00:01:48 #2335 [Verbose] > │ let v356 : │
00:01:48 #2336 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v355 │
00:01:48 #2337 [Verbose] > │ let v357 : │
00:01:48 #2338 [Verbose] > │ num_complex_Complex<float> = method39(v356) │
00:01:48 #2339 [Verbose] > │ let v358 : │
00:01:48 #2340 [Verbose] > │ num_complex_Complex<float> = method40(v324) │
00:01:48 #2341 [Verbose] > │ let v359 : string = │
00:01:48 #2342 [Verbose] > │ "num_complex::Complex::powc(v357, v358)" │
00:01:48 #2343 [Verbose] > │ let v360 : │
00:01:48 #2344 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v359 │
00:01:48 #2345 [Verbose] > │ let v361 : string = "v350 / │
00:01:48 #2346 [Verbose] > │ v360" │
00:01:48 #2347 [Verbose] > │ let v362 : │
00:01:48 #2348 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v361 │
00:01:48 #2349 [Verbose] > │ let v363 : string = "v344 + │
00:01:48 #2350 [Verbose] > │ v362" │
00:01:48 #2351 [Verbose] > │ let v364 : │
00:01:48 #2352 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v363 │
00:01:48 #2353 [Verbose] > │ let v365 : int32 = v343 + 1 │
00:01:48 #2354 [Verbose] > │ v341.l0 <- v365 │
00:01:48 #2355 [Verbose] > │ v341.l1 <- v364 │
00:01:48 #2356 [Verbose] > │ () │
00:01:48 #2357 [Verbose] > │ let v366 : │
00:01:48 #2358 [Verbose] > │ num_complex_Complex<float> = v341.l1 │
00:01:48 #2359 [Verbose] > │ v366 │
00:01:48 #2360 [Verbose] > │ else │
00:01:48 #2361 [Verbose] > │ let v367 : float = method38() │
00:01:48 #2362 [Verbose] > │ let v368 : float = method3(v367) │
00:01:48 #2363 [Verbose] > │ let v369 : float = method4() │
00:01:48 #2364 [Verbose] > │ let v370 : string = │
00:01:48 #2365 [Verbose] > │ "num_complex::Complex::new(v368, v369)" │
00:01:48 #2366 [Verbose] > │ let v371 : │
00:01:48 #2367 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v370 │
00:01:48 #2368 [Verbose] > │ let v372 : string = "v371 - │
00:01:48 #2369 [Verbose] > │ v324" │
00:01:48 #2370 [Verbose] > │ let v373 : │
00:01:48 #2371 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v372 │
00:01:48 #2372 [Verbose] > │ let v374 : string = $" s │
00:01:48 #2373 [Verbose] > │ = mpmath.gamma(s)" │
00:01:48 #2374 [Verbose] > │ let v375 : │
00:01:48 #2375 [Verbose] > │ num_complex_Complex<float> = method8(v373) │
00:01:48 #2376 [Verbose] > │ let v376 : │
00:01:48 #2377 [Verbose] > │ Result<num_complex_Complex<float>, std_string_String> = method41(v0, v374, │
00:01:48 #2378 [Verbose] > │ v375) │
00:01:48 #2379 [Verbose] > │ let v377 : string = "v376.ok()" │
00:01:48 #2380 [Verbose] > │ let v378 : │
00:01:48 #2381 [Verbose] > │ num_complex_Complex<float> option = Fable.Core.RustInterop.emitRustExpr () │
00:01:48 #2382 [Verbose] > │ v377 │
00:01:48 #2383 [Verbose] > │ let v379 : US0 = US0_0 │
00:01:48 #2384 [Verbose] > │ let v380 : US0 = v378 |> │
00:01:48 #2385 [Verbose] > │ Option.map v57 |> Option.defaultValue v379 │
00:01:48 #2386 [Verbose] > │ let v381 : string = "f64::NAN" │
00:01:48 #2387 [Verbose] > │ let v382 : float = │
00:01:48 #2388 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v381 │
00:01:48 #2389 [Verbose] > │ let v383 : string = "f64::NAN" │
00:01:48 #2390 [Verbose] > │ let v384 : float = │
00:01:48 #2391 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v383 │
00:01:48 #2392 [Verbose] > │ let v385 : float = │
00:01:48 #2393 [Verbose] > │ method31(v382) │
00:01:48 #2394 [Verbose] > │ let v386 : float = method3(v385) │
00:01:48 #2395 [Verbose] > │ let v387 : float = │
00:01:48 #2396 [Verbose] > │ method32(v384) │
00:01:48 #2397 [Verbose] > │ let v388 : string = │
00:01:48 #2398 [Verbose] > │ "num_complex::Complex::new(v386, v387)" │
00:01:48 #2399 [Verbose] > │ let v389 : │
00:01:48 #2400 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v388 │
00:01:48 #2401 [Verbose] > │ let v392 : │
00:01:48 #2402 [Verbose] > │ num_complex_Complex<float> = │
00:01:48 #2403 [Verbose] > │ match v380 with │
00:01:48 #2404 [Verbose] > │ | US0_0 -> (* None *) │
00:01:48 #2405 [Verbose] > │ v389 │
00:01:48 #2406 [Verbose] > │ | US0_1(v390) -> (* Some *) │
00:01:48 #2407 [Verbose] > │ v390 │
00:01:48 #2408 [Verbose] > │ let v393 : float = method42() │
00:01:48 #2409 [Verbose] > │ let v394 : float = method3(v393) │
00:01:48 #2410 [Verbose] > │ let v395 : float = method4() │
00:01:48 #2411 [Verbose] > │ let v396 : string = │
00:01:48 #2412 [Verbose] > │ "num_complex::Complex::new(v394, v395)" │
00:01:48 #2413 [Verbose] > │ let v397 : │
00:01:48 #2414 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v396 │
00:01:48 #2415 [Verbose] > │ let v398 : string = "v397 * │
00:01:48 #2416 [Verbose] > │ v324" │
00:01:48 #2417 [Verbose] > │ let v399 : │
00:01:48 #2418 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v398 │
00:01:48 #2419 [Verbose] > │ let v400 : float = method2() │
00:01:48 #2420 [Verbose] > │ let v401 : float = method3(v400) │
00:01:48 #2421 [Verbose] > │ let v402 : float = method4() │
00:01:48 #2422 [Verbose] > │ let v403 : string = │
00:01:48 #2423 [Verbose] > │ "num_complex::Complex::new(v401, v402)" │
00:01:48 #2424 [Verbose] > │ let v404 : │
00:01:48 #2425 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v403 │
00:01:48 #2426 [Verbose] > │ let v405 : string = "v399 / │
00:01:48 #2427 [Verbose] > │ v404" │
00:01:48 #2428 [Verbose] > │ let v406 : │
00:01:48 #2429 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v405 │
00:01:48 #2430 [Verbose] > │ let v407 : string = "v406.sin()" │
00:01:48 #2431 [Verbose] > │ let v408 : │
00:01:48 #2432 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v407 │
00:01:48 #2433 [Verbose] > │ let v409 : │
00:01:48 #2434 [Verbose] > │ num_complex_Complex<float> = method13(v324) │
00:01:48 #2435 [Verbose] > │ let v410 : string = "v409.re" │
00:01:48 #2436 [Verbose] > │ let v411 : float = │
00:01:48 #2437 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v410 │
00:01:48 #2438 [Verbose] > │ let v412 : float = 1.0 - v411 │
00:01:48 #2439 [Verbose] > │ let v413 : │
00:01:48 #2440 [Verbose] > │ num_complex_Complex<float> = method14(v324) │
00:01:48 #2441 [Verbose] > │ let v414 : string = "v413.im" │
00:01:48 #2442 [Verbose] > │ let v415 : float = │
00:01:48 #2443 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v414 │
00:01:48 #2444 [Verbose] > │ let v416 : float = -v415 │
00:01:48 #2445 [Verbose] > │ let v417 : float = │
00:01:48 #2446 [Verbose] > │ method31(v412) │
00:01:48 #2447 [Verbose] > │ let v418 : float = method3(v417) │
00:01:48 #2448 [Verbose] > │ let v419 : float = │
00:01:48 #2449 [Verbose] > │ method32(v416) │
00:01:48 #2450 [Verbose] > │ let v420 : string = │
00:01:48 #2451 [Verbose] > │ "num_complex::Complex::new(v418, v419)" │
00:01:48 #2452 [Verbose] > │ let v421 : │
00:01:48 #2453 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v420 │
00:01:48 #2454 [Verbose] > │ let v422 : │
00:01:48 #2455 [Verbose] > │ num_complex_Complex<float> = method13(v421) │
00:01:48 #2456 [Verbose] > │ let v423 : string = "v422.re" │
00:01:48 #2457 [Verbose] > │ let v424 : float = │
00:01:48 #2458 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v423 │
00:01:48 #2459 [Verbose] > │ let v425 : bool = v424 <= 1.0 │
00:01:48 #2460 [Verbose] > │ let v562 : │
00:01:48 #2461 [Verbose] > │ num_complex_Complex<float> = │
00:01:48 #2462 [Verbose] > │ if v425 then │
00:01:48 #2463 [Verbose] > │ let v426 : float = │
00:01:48 #2464 [Verbose] > │ method35() │
00:01:48 #2465 [Verbose] > │ let v427 : float = │
00:01:48 #2466 [Verbose] > │ method3(v426) │
00:01:48 #2467 [Verbose] > │ let v428 : float = │
00:01:48 #2468 [Verbose] > │ method4() │
00:01:48 #2469 [Verbose] > │ let v429 : string = │
00:01:48 #2470 [Verbose] > │ "num_complex::Complex::new(v427, v428)" │
00:01:48 #2471 [Verbose] > │ let v430 : │
00:01:48 #2472 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v429 │
00:01:48 #2473 [Verbose] > │ v430 │
00:01:48 #2474 [Verbose] > │ else │
00:01:48 #2475 [Verbose] > │ let v431 : │
00:01:48 #2476 [Verbose] > │ num_complex_Complex<float> = method34(v421) │
00:01:48 #2477 [Verbose] > │ let v432 : string = │
00:01:48 #2478 [Verbose] > │ "println!(\"zeta / count: {:?} / s: {:?}\", 4, v431)" │
00:01:48 #2479 [Verbose] > │ │
00:01:48 #2480 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v432 │
00:01:48 #2481 [Verbose] > │ let v433 : │
00:01:48 #2482 [Verbose] > │ num_complex_Complex<float> = method13(v431) │
00:01:48 #2483 [Verbose] > │ let v434 : string = │
00:01:48 #2484 [Verbose] > │ "v433.re" │
00:01:48 #2485 [Verbose] > │ let v435 : float = │
00:01:48 #2486 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v434 │
00:01:48 #2487 [Verbose] > │ let v436 : bool = v435 > │
00:01:48 #2488 [Verbose] > │ 1.0 │
00:01:48 #2489 [Verbose] > │ if v436 then │
00:01:48 #2490 [Verbose] > │ let v437 : float = │
00:01:48 #2491 [Verbose] > │ method35() │
00:01:48 #2492 [Verbose] > │ let v438 : float = │
00:01:48 #2493 [Verbose] > │ method3(v437) │
00:01:48 #2494 [Verbose] > │ let v439 : float = │
00:01:48 #2495 [Verbose] > │ method4() │
00:01:48 #2496 [Verbose] > │ let v440 : string = │
00:01:48 #2497 [Verbose] > │ "num_complex::Complex::new(v438, v439)" │
00:01:48 #2498 [Verbose] > │ let v441 : │
00:01:48 #2499 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v440 │
00:01:48 #2500 [Verbose] > │ let v442 : (int32 [ │
00:01:48 #2501 [Verbose] > │ ]) = Array.zeroCreate<int32> (10000) │
00:01:48 #2502 [Verbose] > │ let v443 : Mut0 = │
00:01:48 #2503 [Verbose] > │ {l0 = 0} : Mut0 │
00:01:48 #2504 [Verbose] > │ while method36(v443) │
00:01:48 #2505 [Verbose] > │ do │
00:01:48 #2506 [Verbose] > │ let v445 : int32 │
00:01:48 #2507 [Verbose] > │ = v443.l0 │
00:01:48 #2508 [Verbose] > │ v442.[int v445] │
00:01:48 #2509 [Verbose] > │ <- v445 │
00:01:48 #2510 [Verbose] > │ let v446 : int32 │
00:01:48 #2511 [Verbose] > │ = v445 + 1 │
00:01:48 #2512 [Verbose] > │ v443.l0 <- v446 │
00:01:48 #2513 [Verbose] > │ () │
00:01:48 #2514 [Verbose] > │ let v447 : int32 = │
00:01:48 #2515 [Verbose] > │ v442.Length │
00:01:48 #2516 [Verbose] > │ let v448 : Mut2 = │
00:01:48 #2517 [Verbose] > │ {l0 = 0; l1 = v441} : Mut2 │
00:01:48 #2518 [Verbose] > │ while method37(v447, │
00:01:48 #2519 [Verbose] > │ v448) do │
00:01:48 #2520 [Verbose] > │ let v450 : int32 │
00:01:48 #2521 [Verbose] > │ = v448.l0 │
00:01:48 #2522 [Verbose] > │ let v451 : │
00:01:48 #2523 [Verbose] > │ num_complex_Complex<float> = v448.l1 │
00:01:48 #2524 [Verbose] > │ let v452 : int32 │
00:01:48 #2525 [Verbose] > │ = v442.[int v450] │
00:01:48 #2526 [Verbose] > │ let v453 : float │
00:01:48 #2527 [Verbose] > │ = method38() │
00:01:48 #2528 [Verbose] > │ let v454 : float │
00:01:48 #2529 [Verbose] > │ = method3(v453) │
00:01:48 #2530 [Verbose] > │ let v455 : float │
00:01:48 #2531 [Verbose] > │ = method4() │
00:01:48 #2532 [Verbose] > │ let v456 : │
00:01:48 #2533 [Verbose] > │ string = "num_complex::Complex::new(v454, v455)" │
00:01:48 #2534 [Verbose] > │ let v457 : │
00:01:48 #2535 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v456 │
00:01:48 #2536 [Verbose] > │ let v458 : float │
00:01:48 #2537 [Verbose] > │ = float v452 │
00:01:48 #2538 [Verbose] > │ let v459 : float │
00:01:48 #2539 [Verbose] > │ = method31(v458) │
00:01:48 #2540 [Verbose] > │ let v460 : float │
00:01:48 #2541 [Verbose] > │ = method3(v459) │
00:01:48 #2542 [Verbose] > │ let v461 : float │
00:01:48 #2543 [Verbose] > │ = method4() │
00:01:48 #2544 [Verbose] > │ let v462 : │
00:01:48 #2545 [Verbose] > │ string = "num_complex::Complex::new(v460, v461)" │
00:01:48 #2546 [Verbose] > │ let v463 : │
00:01:48 #2547 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v462 │
00:01:48 #2548 [Verbose] > │ let v464 : │
00:01:48 #2549 [Verbose] > │ num_complex_Complex<float> = method39(v463) │
00:01:48 #2550 [Verbose] > │ let v465 : │
00:01:48 #2551 [Verbose] > │ num_complex_Complex<float> = method40(v431) │
00:01:48 #2552 [Verbose] > │ let v466 : │
00:01:48 #2553 [Verbose] > │ string = "num_complex::Complex::powc(v464, v465)" │
00:01:48 #2554 [Verbose] > │ let v467 : │
00:01:48 #2555 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v466 │
00:01:48 #2556 [Verbose] > │ let v468 : │
00:01:48 #2557 [Verbose] > │ string = "v457 / v467" │
00:01:48 #2558 [Verbose] > │ let v469 : │
00:01:48 #2559 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v468 │
00:01:48 #2560 [Verbose] > │ let v470 : │
00:01:48 #2561 [Verbose] > │ string = "v451 + v469" │
00:01:48 #2562 [Verbose] > │ let v471 : │
00:01:48 #2563 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v470 │
00:01:48 #2564 [Verbose] > │ let v472 : int32 │
00:01:48 #2565 [Verbose] > │ = v450 + 1 │
00:01:48 #2566 [Verbose] > │ v448.l0 <- v472 │
00:01:48 #2567 [Verbose] > │ v448.l1 <- v471 │
00:01:48 #2568 [Verbose] > │ () │
00:01:48 #2569 [Verbose] > │ let v473 : │
00:01:48 #2570 [Verbose] > │ num_complex_Complex<float> = v448.l1 │
00:01:48 #2571 [Verbose] > │ v473 │
00:01:48 #2572 [Verbose] > │ else │
00:01:48 #2573 [Verbose] > │ let v474 : float = │
00:01:48 #2574 [Verbose] > │ method38() │
00:01:48 #2575 [Verbose] > │ let v475 : float = │
00:01:48 #2576 [Verbose] > │ method3(v474) │
00:01:48 #2577 [Verbose] > │ let v476 : float = │
00:01:48 #2578 [Verbose] > │ method4() │
00:01:48 #2579 [Verbose] > │ let v477 : string = │
00:01:48 #2580 [Verbose] > │ "num_complex::Complex::new(v475, v476)" │
00:01:48 #2581 [Verbose] > │ let v478 : │
00:01:48 #2582 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v477 │
00:01:48 #2583 [Verbose] > │ let v479 : string = │
00:01:48 #2584 [Verbose] > │ "v478 - v431" │
00:01:48 #2585 [Verbose] > │ let v480 : │
00:01:48 #2586 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v479 │
00:01:48 #2587 [Verbose] > │ let v481 : string = │
00:01:48 #2588 [Verbose] > │ $" s = mpmath.gamma(s)" │
00:01:48 #2589 [Verbose] > │ let v482 : │
00:01:48 #2590 [Verbose] > │ num_complex_Complex<float> = method8(v480) │
00:01:48 #2591 [Verbose] > │ let v483 : │
00:01:48 #2592 [Verbose] > │ Result<num_complex_Complex<float>, std_string_String> = method41(v0, v481, │
00:01:48 #2593 [Verbose] > │ v482) │
00:01:48 #2594 [Verbose] > │ let v484 : string = │
00:01:48 #2595 [Verbose] > │ "v483.ok()" │
00:01:48 #2596 [Verbose] > │ let v485 : │
00:01:48 #2597 [Verbose] > │ num_complex_Complex<float> option = Fable.Core.RustInterop.emitRustExpr () │
00:01:48 #2598 [Verbose] > │ v484 │
00:01:48 #2599 [Verbose] > │ let v486 : US0 = │
00:01:48 #2600 [Verbose] > │ US0_0 │
00:01:48 #2601 [Verbose] > │ let v487 : US0 = │
00:01:48 #2602 [Verbose] > │ v485 |> Option.map v57 |> Option.defaultValue v486 │
00:01:48 #2603 [Verbose] > │ let v488 : string = │
00:01:48 #2604 [Verbose] > │ "f64::NAN" │
00:01:48 #2605 [Verbose] > │ let v489 : float = │
00:01:48 #2606 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v488 │
00:01:48 #2607 [Verbose] > │ let v490 : string = │
00:01:48 #2608 [Verbose] > │ "f64::NAN" │
00:01:48 #2609 [Verbose] > │ let v491 : float = │
00:01:48 #2610 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v490 │
00:01:48 #2611 [Verbose] > │ let v492 : float = │
00:01:48 #2612 [Verbose] > │ method31(v489) │
00:01:48 #2613 [Verbose] > │ let v493 : float = │
00:01:48 #2614 [Verbose] > │ method3(v492) │
00:01:48 #2615 [Verbose] > │ let v494 : float = │
00:01:48 #2616 [Verbose] > │ method32(v491) │
00:01:48 #2617 [Verbose] > │ let v495 : string = │
00:01:48 #2618 [Verbose] > │ "num_complex::Complex::new(v493, v494)" │
00:01:48 #2619 [Verbose] > │ let v496 : │
00:01:48 #2620 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v495 │
00:01:48 #2621 [Verbose] > │ let v499 : │
00:01:48 #2622 [Verbose] > │ num_complex_Complex<float> = │
00:01:48 #2623 [Verbose] > │ match v487 with │
00:01:48 #2624 [Verbose] > │ | US0_0 -> (* │
00:01:48 #2625 [Verbose] > │ None *) │
00:01:48 #2626 [Verbose] > │ v496 │
00:01:48 #2627 [Verbose] > │ | US0_1(v497) -> │
00:01:48 #2628 [Verbose] > │ (* Some *) │
00:01:48 #2629 [Verbose] > │ v497 │
00:01:48 #2630 [Verbose] > │ let v500 : float = │
00:01:48 #2631 [Verbose] > │ method42() │
00:01:48 #2632 [Verbose] > │ let v501 : float = │
00:01:48 #2633 [Verbose] > │ method3(v500) │
00:01:48 #2634 [Verbose] > │ let v502 : float = │
00:01:48 #2635 [Verbose] > │ method4() │
00:01:48 #2636 [Verbose] > │ let v503 : string = │
00:01:48 #2637 [Verbose] > │ "num_complex::Complex::new(v501, v502)" │
00:01:48 #2638 [Verbose] > │ let v504 : │
00:01:48 #2639 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v503 │
00:01:48 #2640 [Verbose] > │ let v505 : string = │
00:01:48 #2641 [Verbose] > │ "v504 * v431" │
00:01:48 #2642 [Verbose] > │ let v506 : │
00:01:48 #2643 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v505 │
00:01:48 #2644 [Verbose] > │ let v507 : float = │
00:01:48 #2645 [Verbose] > │ method2() │
00:01:48 #2646 [Verbose] > │ let v508 : float = │
00:01:48 #2647 [Verbose] > │ method3(v507) │
00:01:48 #2648 [Verbose] > │ let v509 : float = │
00:01:48 #2649 [Verbose] > │ method4() │
00:01:48 #2650 [Verbose] > │ let v510 : string = │
00:01:48 #2651 [Verbose] > │ "num_complex::Complex::new(v508, v509)" │
00:01:48 #2652 [Verbose] > │ let v511 : │
00:01:48 #2653 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v510 │
00:01:48 #2654 [Verbose] > │ let v512 : string = │
00:01:48 #2655 [Verbose] > │ "v506 / v511" │
00:01:48 #2656 [Verbose] > │ let v513 : │
00:01:48 #2657 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v512 │
00:01:48 #2658 [Verbose] > │ let v514 : string = │
00:01:48 #2659 [Verbose] > │ "v513.sin()" │
00:01:48 #2660 [Verbose] > │ let v515 : │
00:01:48 #2661 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v514 │
00:01:48 #2662 [Verbose] > │ let v516 : │
00:01:48 #2663 [Verbose] > │ num_complex_Complex<float> = method13(v431) │
00:01:48 #2664 [Verbose] > │ let v517 : string = │
00:01:48 #2665 [Verbose] > │ "v516.re" │
00:01:48 #2666 [Verbose] > │ let v518 : float = │
00:01:48 #2667 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v517 │
00:01:48 #2668 [Verbose] > │ let v519 : float = │
00:01:48 #2669 [Verbose] > │ 1.0 - v518 │
00:01:48 #2670 [Verbose] > │ let v520 : │
00:01:48 #2671 [Verbose] > │ num_complex_Complex<float> = method14(v431) │
00:01:48 #2672 [Verbose] > │ let v521 : string = │
00:01:48 #2673 [Verbose] > │ "v520.im" │
00:01:48 #2674 [Verbose] > │ let v522 : float = │
00:01:48 #2675 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v521 │
00:01:48 #2676 [Verbose] > │ let v523 : float = │
00:01:48 #2677 [Verbose] > │ -v522 │
00:01:48 #2678 [Verbose] > │ let v524 : float = │
00:01:48 #2679 [Verbose] > │ method31(v519) │
00:01:48 #2680 [Verbose] > │ let v525 : float = │
00:01:48 #2681 [Verbose] > │ method3(v524) │
00:01:48 #2682 [Verbose] > │ let v526 : float = │
00:01:48 #2683 [Verbose] > │ method32(v523) │
00:01:48 #2684 [Verbose] > │ let v527 : string = │
00:01:48 #2685 [Verbose] > │ "num_complex::Complex::new(v525, v526)" │
00:01:48 #2686 [Verbose] > │ let v528 : │
00:01:48 #2687 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v527 │
00:01:48 #2688 [Verbose] > │ let v529 : │
00:01:48 #2689 [Verbose] > │ num_complex_Complex<float> = method13(v528) │
00:01:48 #2690 [Verbose] > │ let v530 : string = │
00:01:48 #2691 [Verbose] > │ "v529.re" │
00:01:48 #2692 [Verbose] > │ let v531 : float = │
00:01:48 #2693 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v530 │
00:01:48 #2694 [Verbose] > │ let v532 : bool = │
00:01:48 #2695 [Verbose] > │ v531 <= 1.0 │
00:01:48 #2696 [Verbose] > │ let v538 : │
00:01:48 #2697 [Verbose] > │ num_complex_Complex<float> = │
00:01:48 #2698 [Verbose] > │ if v532 then │
00:01:48 #2699 [Verbose] > │ let v533 : │
00:01:48 #2700 [Verbose] > │ float = method35() │
00:01:48 #2701 [Verbose] > │ let v534 : │
00:01:48 #2702 [Verbose] > │ float = method3(v533) │
00:01:48 #2703 [Verbose] > │ let v535 : │
00:01:48 #2704 [Verbose] > │ float = method4() │
00:01:48 #2705 [Verbose] > │ let v536 : │
00:01:48 #2706 [Verbose] > │ string = "num_complex::Complex::new(v534, v535)" │
00:01:48 #2707 [Verbose] > │ let v537 : │
00:01:48 #2708 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v536 │
00:01:48 #2709 [Verbose] > │ v537 │
00:01:48 #2710 [Verbose] > │ else │
00:01:48 #2711 [Verbose] > │ v528 │
00:01:48 #2712 [Verbose] > │ let v539 : float = │
00:01:48 #2713 [Verbose] > │ method2() │
00:01:48 #2714 [Verbose] > │ let v540 : float = │
00:01:48 #2715 [Verbose] > │ method3(v539) │
00:01:48 #2716 [Verbose] > │ let v541 : float = │
00:01:48 #2717 [Verbose] > │ method4() │
00:01:48 #2718 [Verbose] > │ let v542 : string = │
00:01:48 #2719 [Verbose] > │ "num_complex::Complex::new(v540, v541)" │
00:01:48 #2720 [Verbose] > │ let v543 : │
00:01:48 #2721 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v542 │
00:01:48 #2722 [Verbose] > │ let v544 : float = │
00:01:48 #2723 [Verbose] > │ method42() │
00:01:48 #2724 [Verbose] > │ let v545 : float = │
00:01:48 #2725 [Verbose] > │ method3(v544) │
00:01:48 #2726 [Verbose] > │ let v546 : float = │
00:01:48 #2727 [Verbose] > │ method4() │
00:01:48 #2728 [Verbose] > │ let v547 : string = │
00:01:48 #2729 [Verbose] > │ "num_complex::Complex::new(v545, v546)" │
00:01:48 #2730 [Verbose] > │ let v548 : │
00:01:48 #2731 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v547 │
00:01:48 #2732 [Verbose] > │ let v549 : │
00:01:48 #2733 [Verbose] > │ num_complex_Complex<float> = method39(v548) │
00:01:48 #2734 [Verbose] > │ let v550 : │
00:01:48 #2735 [Verbose] > │ num_complex_Complex<float> = method40(v431) │
00:01:48 #2736 [Verbose] > │ let v551 : string = │
00:01:48 #2737 [Verbose] > │ "num_complex::Complex::powc(v549, v550)" │
00:01:48 #2738 [Verbose] > │ let v552 : │
00:01:48 #2739 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v551 │
00:01:48 #2740 [Verbose] > │ let v553 : string = │
00:01:48 #2741 [Verbose] > │ "v543 * v552" │
00:01:48 #2742 [Verbose] > │ let v554 : │
00:01:48 #2743 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v553 │
00:01:48 #2744 [Verbose] > │ let v555 : string = │
00:01:48 #2745 [Verbose] > │ "v554 * v515" │
00:01:48 #2746 [Verbose] > │ let v556 : │
00:01:48 #2747 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v555 │
00:01:48 #2748 [Verbose] > │ let v557 : string = │
00:01:48 #2749 [Verbose] > │ "v556 * v499" │
00:01:48 #2750 [Verbose] > │ let v558 : │
00:01:48 #2751 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v557 │
00:01:48 #2752 [Verbose] > │ let v559 : string = │
00:01:48 #2753 [Verbose] > │ "v558 * v538" │
00:01:48 #2754 [Verbose] > │ let v560 : │
00:01:48 #2755 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v559 │
00:01:48 #2756 [Verbose] > │ v560 │
00:01:48 #2757 [Verbose] > │ let v563 : float = method2() │
00:01:48 #2758 [Verbose] > │ let v564 : float = method3(v563) │
00:01:48 #2759 [Verbose] > │ let v565 : float = method4() │
00:01:48 #2760 [Verbose] > │ let v566 : string = │
00:01:48 #2761 [Verbose] > │ "num_complex::Complex::new(v564, v565)" │
00:01:48 #2762 [Verbose] > │ let v567 : │
00:01:48 #2763 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v566 │
00:01:48 #2764 [Verbose] > │ let v568 : float = method42() │
00:01:48 #2765 [Verbose] > │ let v569 : float = method3(v568) │
00:01:48 #2766 [Verbose] > │ let v570 : float = method4() │
00:01:48 #2767 [Verbose] > │ let v571 : string = │
00:01:48 #2768 [Verbose] > │ "num_complex::Complex::new(v569, v570)" │
00:01:48 #2769 [Verbose] > │ let v572 : │
00:01:48 #2770 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v571 │
00:01:48 #2771 [Verbose] > │ let v573 : │
00:01:48 #2772 [Verbose] > │ num_complex_Complex<float> = method39(v572) │
00:01:48 #2773 [Verbose] > │ let v574 : │
00:01:48 #2774 [Verbose] > │ num_complex_Complex<float> = method40(v324) │
00:01:48 #2775 [Verbose] > │ let v575 : string = │
00:01:48 #2776 [Verbose] > │ "num_complex::Complex::powc(v573, v574)" │
00:01:48 #2777 [Verbose] > │ let v576 : │
00:01:48 #2778 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v575 │
00:01:48 #2779 [Verbose] > │ let v577 : string = "v567 * │
00:01:48 #2780 [Verbose] > │ v576" │
00:01:48 #2781 [Verbose] > │ let v578 : │
00:01:48 #2782 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v577 │
00:01:48 #2783 [Verbose] > │ let v579 : string = "v578 * │
00:01:48 #2784 [Verbose] > │ v408" │
00:01:48 #2785 [Verbose] > │ let v580 : │
00:01:48 #2786 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v579 │
00:01:48 #2787 [Verbose] > │ let v581 : string = "v580 * │
00:01:48 #2788 [Verbose] > │ v392" │
00:01:48 #2789 [Verbose] > │ let v582 : │
00:01:48 #2790 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v581 │
00:01:48 #2791 [Verbose] > │ let v583 : string = "v582 * │
00:01:48 #2792 [Verbose] > │ v562" │
00:01:48 #2793 [Verbose] > │ let v584 : │
00:01:48 #2794 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v583 │
00:01:48 #2795 [Verbose] > │ v584 │
00:01:48 #2796 [Verbose] > │ let v587 : float = method2() │
00:01:48 #2797 [Verbose] > │ let v588 : float = method3(v587) │
00:01:48 #2798 [Verbose] > │ let v589 : float = method4() │
00:01:48 #2799 [Verbose] > │ let v590 : string = │
00:01:48 #2800 [Verbose] > │ "num_complex::Complex::new(v588, v589)" │
00:01:48 #2801 [Verbose] > │ let v591 : num_complex_Complex<float> = │
00:01:48 #2802 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v590 │
00:01:48 #2803 [Verbose] > │ let v592 : float = method42() │
00:01:48 #2804 [Verbose] > │ let v593 : float = method3(v592) │
00:01:48 #2805 [Verbose] > │ let v594 : float = method4() │
00:01:48 #2806 [Verbose] > │ let v595 : string = │
00:01:48 #2807 [Verbose] > │ "num_complex::Complex::new(v593, v594)" │
00:01:48 #2808 [Verbose] > │ let v596 : num_complex_Complex<float> = │
00:01:48 #2809 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v595 │
00:01:48 #2810 [Verbose] > │ let v597 : num_complex_Complex<float> = │
00:01:48 #2811 [Verbose] > │ method39(v596) │
00:01:48 #2812 [Verbose] > │ let v598 : num_complex_Complex<float> = │
00:01:48 #2813 [Verbose] > │ method40(v217) │
00:01:48 #2814 [Verbose] > │ let v599 : string = │
00:01:48 #2815 [Verbose] > │ "num_complex::Complex::powc(v597, v598)" │
00:01:48 #2816 [Verbose] > │ let v600 : num_complex_Complex<float> = │
00:01:48 #2817 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v599 │
00:01:48 #2818 [Verbose] > │ let v601 : string = "v591 * v600" │
00:01:48 #2819 [Verbose] > │ let v602 : num_complex_Complex<float> = │
00:01:48 #2820 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v601 │
00:01:48 #2821 [Verbose] > │ let v603 : string = "v602 * v301" │
00:01:48 #2822 [Verbose] > │ let v604 : num_complex_Complex<float> = │
00:01:48 #2823 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v603 │
00:01:48 #2824 [Verbose] > │ let v605 : string = "v604 * v285" │
00:01:48 #2825 [Verbose] > │ let v606 : num_complex_Complex<float> = │
00:01:48 #2826 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v605 │
00:01:48 #2827 [Verbose] > │ let v607 : string = "v606 * v586" │
00:01:48 #2828 [Verbose] > │ let v608 : num_complex_Complex<float> = │
00:01:48 #2829 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v607 │
00:01:48 #2830 [Verbose] > │ v608 │
00:01:48 #2831 [Verbose] > │ let v611 : float = method2() │
00:01:48 #2832 [Verbose] > │ let v612 : float = method3(v611) │
00:01:48 #2833 [Verbose] > │ let v613 : float = method4() │
00:01:48 #2834 [Verbose] > │ let v614 : string = "num_complex::Complex::new(v612, │
00:01:48 #2835 [Verbose] > │ v613)" │
00:01:48 #2836 [Verbose] > │ let v615 : num_complex_Complex<float> = │
00:01:48 #2837 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v614 │
00:01:48 #2838 [Verbose] > │ let v616 : float = method42() │
00:01:48 #2839 [Verbose] > │ let v617 : float = method3(v616) │
00:01:48 #2840 [Verbose] > │ let v618 : float = method4() │
00:01:48 #2841 [Verbose] > │ let v619 : string = "num_complex::Complex::new(v617, │
00:01:48 #2842 [Verbose] > │ v618)" │
00:01:48 #2843 [Verbose] > │ let v620 : num_complex_Complex<float> = │
00:01:48 #2844 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v619 │
00:01:48 #2845 [Verbose] > │ let v621 : num_complex_Complex<float> = method39(v620) │
00:01:48 #2846 [Verbose] > │ let v622 : num_complex_Complex<float> = method40(v110) │
00:01:48 #2847 [Verbose] > │ let v623 : string = "num_complex::Complex::powc(v621, │
00:01:48 #2848 [Verbose] > │ v622)" │
00:01:48 #2849 [Verbose] > │ let v624 : num_complex_Complex<float> = │
00:01:48 #2850 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v623 │
00:01:48 #2851 [Verbose] > │ let v625 : string = "v615 * v624" │
00:01:48 #2852 [Verbose] > │ let v626 : num_complex_Complex<float> = │
00:01:48 #2853 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v625 │
00:01:48 #2854 [Verbose] > │ let v627 : string = "v626 * v194" │
00:01:48 #2855 [Verbose] > │ let v628 : num_complex_Complex<float> = │
00:01:48 #2856 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v627 │
00:01:48 #2857 [Verbose] > │ let v629 : string = "v628 * v178" │
00:01:48 #2858 [Verbose] > │ let v630 : num_complex_Complex<float> = │
00:01:48 #2859 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v629 │
00:01:48 #2860 [Verbose] > │ let v631 : string = "v630 * v610" │
00:01:48 #2861 [Verbose] > │ let v632 : num_complex_Complex<float> = │
00:01:48 #2862 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v631 │
00:01:48 #2863 [Verbose] > │ v632 │
00:01:48 #2864 [Verbose] > │ let v635 : float = method2() │
00:01:48 #2865 [Verbose] > │ let v636 : float = method3(v635) │
00:01:48 #2866 [Verbose] > │ let v637 : float = method4() │
00:01:48 #2867 [Verbose] > │ let v638 : string = "num_complex::Complex::new(v636, v637)" │
00:01:48 #2868 [Verbose] > │ let v639 : num_complex_Complex<float> = │
00:01:48 #2869 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v638 │
00:01:48 #2870 [Verbose] > │ let v640 : float = method42() │
00:01:48 #2871 [Verbose] > │ let v641 : float = method3(v640) │
00:01:48 #2872 [Verbose] > │ let v642 : float = method4() │
00:01:48 #2873 [Verbose] > │ let v643 : string = "num_complex::Complex::new(v641, v642)" │
00:01:48 #2874 [Verbose] > │ let v644 : num_complex_Complex<float> = │
00:01:48 #2875 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v643 │
00:01:48 #2876 [Verbose] > │ let v645 : num_complex_Complex<float> = method39(v644) │
00:01:48 #2877 [Verbose] > │ let v646 : num_complex_Complex<float> = method40(v2) │
00:01:48 #2878 [Verbose] > │ let v647 : string = "num_complex::Complex::powc(v645, v646)" │
00:01:48 #2879 [Verbose] > │ let v648 : num_complex_Complex<float> = │
00:01:48 #2880 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v647 │
00:01:48 #2881 [Verbose] > │ let v649 : string = "v639 * v648" │
00:01:48 #2882 [Verbose] > │ let v650 : num_complex_Complex<float> = │
00:01:48 #2883 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v649 │
00:01:48 #2884 [Verbose] > │ let v651 : string = "v650 * v87" │
00:01:48 #2885 [Verbose] > │ let v652 : num_complex_Complex<float> = │
00:01:48 #2886 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v651 │
00:01:48 #2887 [Verbose] > │ let v653 : string = "v652 * v71" │
00:01:48 #2888 [Verbose] > │ let v654 : num_complex_Complex<float> = │
00:01:48 #2889 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v653 │
00:01:48 #2890 [Verbose] > │ let v655 : string = "v654 * v634" │
00:01:48 #2891 [Verbose] > │ let v656 : num_complex_Complex<float> = │
00:01:48 #2892 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v655 │
00:01:48 #2893 [Verbose] > │ v656 │
00:01:48 #2894 [Verbose] > │ and method43 (v0 : bool) : bool = │
00:01:48 #2895 [Verbose] > │ v0 │
00:01:48 #2896 [Verbose] > │ and method1 (v0 : pyo3_Python) : unit = │
00:01:48 #2897 [Verbose] > │ let v1 : float = method2() │
00:01:48 #2898 [Verbose] > │ let v2 : float = method3(v1) │
00:01:48 #2899 [Verbose] > │ let v3 : float = method4() │
00:01:48 #2900 [Verbose] > │ let v4 : string = "num_complex::Complex::new(v2, v3)" │
00:01:48 #2901 [Verbose] > │ let v5 : num_complex_Complex<float> = │
00:01:48 #2902 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v4 │
00:01:48 #2903 [Verbose] > │ let v6 : float = method5() │
00:01:48 #2904 [Verbose] > │ let v7 : float = method3(v6) │
00:01:48 #2905 [Verbose] > │ let v8 : float = method4() │
00:01:48 #2906 [Verbose] > │ let v9 : string = "num_complex::Complex::new(v7, v8)" │
00:01:48 #2907 [Verbose] > │ let v10 : num_complex_Complex<float> = │
00:01:48 #2908 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v9 │
00:01:48 #2909 [Verbose] > │ let v11 : (struct (num_complex_Complex<float> * float) []) = [|struct │
00:01:48 #2910 [Verbose] > │ (v5, 1.6449340668482264); struct (v10, -0.08333333333333333)|] │
00:01:48 #2911 [Verbose] > │ let v12 : (struct (num_complex_Complex<float> * float) []) = │
00:01:48 #2912 [Verbose] > │ method6(v11) │
00:01:48 #2913 [Verbose] > │ let v13 : int32 = v12.Length │
00:01:48 #2914 [Verbose] > │ let v14 : Mut0 = {l0 = 0} : Mut0 │
00:01:48 #2915 [Verbose] > │ while method7(v13, v14) do │
00:01:48 #2916 [Verbose] > │ let v16 : int32 = v14.l0 │
00:01:48 #2917 [Verbose] > │ let struct (v17 : num_complex_Complex<float>, v18 : float) = v12.[ │
00:01:48 #2918 [Verbose] > │ int v16] │
00:01:48 #2919 [Verbose] > │ let v19 : string = $" s = mpmath.zeta(s)" │
00:01:48 #2920 [Verbose] > │ let v20 : num_complex_Complex<float> = method8(v17) │
00:01:48 #2921 [Verbose] > │ let v21 : Result<num_complex_Complex<float>, std_string_String> = │
00:01:48 #2922 [Verbose] > │ method9(v0, v19, v20) │
00:01:48 #2923 [Verbose] > │ let v22 : num_complex_Complex<float> = method33(v0, v17) │
00:01:48 #2924 [Verbose] > │ let v23 : string = "v21.ok()" │
00:01:48 #2925 [Verbose] > │ let v24 : num_complex_Complex<float> option = │
00:01:48 #2926 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v23 │
00:01:48 #2927 [Verbose] > │ let v25 : (num_complex_Complex<float> -> US0) = closure5() │
00:01:48 #2928 [Verbose] > │ let v26 : US0 = US0_0 │
00:01:48 #2929 [Verbose] > │ let v27 : US0 = v24 |> Option.map v25 |> Option.defaultValue v26 │
00:01:48 #2930 [Verbose] > │ let v28 : string = "f64::NAN" │
00:01:48 #2931 [Verbose] > │ let v29 : float = Fable.Core.RustInterop.emitRustExpr () v28 │
00:01:48 #2932 [Verbose] > │ let v30 : string = "f64::NAN" │
00:01:48 #2933 [Verbose] > │ let v31 : float = Fable.Core.RustInterop.emitRustExpr () v30 │
00:01:48 #2934 [Verbose] > │ let v32 : float = method31(v29) │
00:01:48 #2935 [Verbose] > │ let v33 : float = method3(v32) │
00:01:48 #2936 [Verbose] > │ let v34 : float = method32(v31) │
00:01:48 #2937 [Verbose] > │ let v35 : string = "num_complex::Complex::new(v33, v34)" │
00:01:48 #2938 [Verbose] > │ let v36 : num_complex_Complex<float> = │
00:01:48 #2939 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v35 │
00:01:48 #2940 [Verbose] > │ let v39 : num_complex_Complex<float> = │
00:01:48 #2941 [Verbose] > │ match v27 with │
00:01:48 #2942 [Verbose] > │ | US0_0 -> (* None *) │
00:01:48 #2943 [Verbose] > │ v36 │
00:01:48 #2944 [Verbose] > │ | US0_1(v37) -> (* Some *) │
00:01:48 #2945 [Verbose] > │ v37 │
00:01:48 #2946 [Verbose] > │ let v40 : num_complex_Complex<float> = method14(v39) │
00:01:48 #2947 [Verbose] > │ let v41 : string = "v40.im" │
00:01:48 #2948 [Verbose] > │ let v42 : float = Fable.Core.RustInterop.emitRustExpr () v41 │
00:01:48 #2949 [Verbose] > │ let v43 : string = $"%A{v42}" │
00:01:48 #2950 [Verbose] > │ System.Console.WriteLine v43 │
00:01:48 #2951 [Verbose] > │ let v44 : bool = v42 = 0.0 │
00:01:48 #2952 [Verbose] > │ let v46 : bool = │
00:01:48 #2953 [Verbose] > │ if v44 then │
00:01:48 #2954 [Verbose] > │ true │
00:01:48 #2955 [Verbose] > │ else │
00:01:48 #2956 [Verbose] > │ method43(v44) │
00:01:48 #2957 [Verbose] > │ let v47 : string = $"__expect / actual: %A{v42} / expected: %A{0.0}" │
00:01:48 #2958 [Verbose] > │ let v48 : bool = v46 = false │
00:01:48 #2959 [Verbose] > │ if v48 then │
00:01:48 #2960 [Verbose] > │ failwith<unit> v47 │
00:01:48 #2961 [Verbose] > │ let v49 : num_complex_Complex<float> = method13(v39) │
00:01:48 #2962 [Verbose] > │ let v50 : string = "v49.re" │
00:01:48 #2963 [Verbose] > │ let v51 : float = Fable.Core.RustInterop.emitRustExpr () v50 │
00:01:48 #2964 [Verbose] > │ let v52 : float = v51 - v18 │
00:01:48 #2965 [Verbose] > │ let v53 : float = -v52 │
00:01:48 #2966 [Verbose] > │ let v54 : bool = v52 >= v53 │
00:01:48 #2967 [Verbose] > │ let v55 : float = │
00:01:48 #2968 [Verbose] > │ if v54 then │
00:01:48 #2969 [Verbose] > │ v52 │
00:01:48 #2970 [Verbose] > │ else │
00:01:48 #2971 [Verbose] > │ v53 │
00:01:48 #2972 [Verbose] > │ let v56 : string = $"%A{v55}" │
00:01:48 #2973 [Verbose] > │ System.Console.WriteLine v56 │
00:01:48 #2974 [Verbose] > │ let v57 : bool = v55 < 0.0001 │
00:01:48 #2975 [Verbose] > │ let v59 : bool = │
00:01:48 #2976 [Verbose] > │ if v57 then │
00:01:48 #2977 [Verbose] > │ true │
00:01:48 #2978 [Verbose] > │ else │
00:01:48 #2979 [Verbose] > │ method43(v57) │
00:01:48 #2980 [Verbose] > │ let v60 : string = $"__expect / actual: %A{v55} / expected: │
00:01:48 #2981 [Verbose] > │ %A{0.0001}" │
00:01:48 #2982 [Verbose] > │ let v61 : bool = v59 = false │
00:01:48 #2983 [Verbose] > │ if v61 then │
00:01:48 #2984 [Verbose] > │ failwith<unit> v60 │
00:01:48 #2985 [Verbose] > │ let v62 : int32 = v16 + 1 │
00:01:48 #2986 [Verbose] > │ v14.l0 <- v62 │
00:01:48 #2987 [Verbose] > │ () │
00:01:48 #2988 [Verbose] > │ () │
00:01:48 #2989 [Verbose] > │ and method44 (v0 : Result<unit, pyo3_PyErr>) : Result<unit, pyo3_PyErr> = │
00:01:48 #2990 [Verbose] > │ v0 │
00:01:48 #2991 [Verbose] > │ and method45 (v0 : Result<unit, pyo3_PyErr>) : Result<unit, pyo3_PyErr> = │
00:01:48 #2992 [Verbose] > │ v0 │
00:01:48 #2993 [Verbose] > │ and method0 () : unit = │
00:01:48 #2994 [Verbose] > │ let v0 : string = "pyo3::prepare_freethreaded_python()" │
00:01:48 #2995 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v0 │
00:01:48 #2996 [Verbose] > │ let v1 : string = "let __result = pyo3::Python::with_gil(|py| -> │
00:01:48 #2997 [Verbose] > │ pyo3::PyResult<()> { //" │
00:01:48 #2998 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v1 │
00:01:48 #2999 [Verbose] > │ let v2 : string = "py" │
00:01:48 #3000 [Verbose] > │ let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2 │
00:01:48 #3001 [Verbose] > │ method1(v3) │
00:01:48 #3002 [Verbose] > │ let v4 : Result<unit, pyo3_PyErr> = Ok () │
00:01:48 #3003 [Verbose] > │ let v5 : Result<unit, pyo3_PyErr> = method44(v4) │
00:01:48 #3004 [Verbose] > │ let v6 : string = "v5 }})" │
00:01:48 #3005 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v6 │
00:01:48 #3006 [Verbose] > │ let v7 : string = "{ //" │
00:01:48 #3007 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:01:48 #3008 [Verbose] > │ let v8 : string = "__result" │
00:01:48 #3009 [Verbose] > │ let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr │
00:01:48 #3010 [Verbose] > │ () v8 │
00:01:48 #3011 [Verbose] > │ let v10 : Result<unit, pyo3_PyErr> = method45(v9) │
00:01:48 #3012 [Verbose] > │ let v11 : string = "v10.unwrap()" │
00:01:48 #3013 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11 │
00:01:48 #3014 [Verbose] > │ () │
00:01:48 #3015 [Verbose] > │ and method48 () : float = │
00:01:48 #3016 [Verbose] > │ -2.0 │
00:01:48 #3017 [Verbose] > │ and method47 (v0 : pyo3_Python) : unit = │
00:01:48 #3018 [Verbose] > │ let v1 : float = method2() │
00:01:48 #3019 [Verbose] > │ let v2 : float = method3(v1) │
00:01:48 #3020 [Verbose] > │ let v3 : float = method48() │
00:01:48 #3021 [Verbose] > │ let v4 : string = "num_complex::Complex::new(v2, v3)" │
00:01:48 #3022 [Verbose] > │ let v5 : num_complex_Complex<float> = │
00:01:48 #3023 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v4 │
00:01:48 #3024 [Verbose] > │ let v6 : string = $" s = mpmath.zeta(s)" │
00:01:48 #3025 [Verbose] > │ let v7 : num_complex_Complex<float> = method8(v5) │
00:01:48 #3026 [Verbose] > │ let v8 : Result<num_complex_Complex<float>, std_string_String> = │
00:01:48 #3027 [Verbose] > │ method9(v0, v6, v7) │
00:01:48 #3028 [Verbose] > │ let v9 : num_complex_Complex<float> = method33(v0, v5) │
00:01:48 #3029 [Verbose] > │ let v10 : string = "v8.ok()" │
00:01:48 #3030 [Verbose] > │ let v11 : num_complex_Complex<float> option = │
00:01:48 #3031 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v10 │
00:01:48 #3032 [Verbose] > │ let v12 : (num_complex_Complex<float> -> US0) = closure5() │
00:01:48 #3033 [Verbose] > │ let v13 : US0 = US0_0 │
00:01:48 #3034 [Verbose] > │ let v14 : US0 = v11 |> Option.map v12 |> Option.defaultValue v13 │
00:01:48 #3035 [Verbose] > │ let v15 : string = "f64::NAN" │
00:01:48 #3036 [Verbose] > │ let v16 : float = Fable.Core.RustInterop.emitRustExpr () v15 │
00:01:48 #3037 [Verbose] > │ let v17 : string = "f64::NAN" │
00:01:48 #3038 [Verbose] > │ let v18 : float = Fable.Core.RustInterop.emitRustExpr () v17 │
00:01:48 #3039 [Verbose] > │ let v19 : float = method31(v16) │
00:01:48 #3040 [Verbose] > │ let v20 : float = method3(v19) │
00:01:48 #3041 [Verbose] > │ let v21 : float = method32(v18) │
00:01:48 #3042 [Verbose] > │ let v22 : string = "num_complex::Complex::new(v20, v21)" │
00:01:48 #3043 [Verbose] > │ let v23 : num_complex_Complex<float> = │
00:01:48 #3044 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v22 │
00:01:48 #3045 [Verbose] > │ let v26 : num_complex_Complex<float> = │
00:01:48 #3046 [Verbose] > │ match v14 with │
00:01:48 #3047 [Verbose] > │ | US0_0 -> (* None *) │
00:01:48 #3048 [Verbose] > │ v23 │
00:01:48 #3049 [Verbose] > │ | US0_1(v24) -> (* Some *) │
00:01:48 #3050 [Verbose] > │ v24 │
00:01:48 #3051 [Verbose] > │ let v27 : num_complex_Complex<float> = method13(v26) │
00:01:48 #3052 [Verbose] > │ let v28 : string = "v27.re" │
00:01:48 #3053 [Verbose] > │ let v29 : float = Fable.Core.RustInterop.emitRustExpr () v28 │
00:01:48 #3054 [Verbose] > │ let v30 : float = v29 - 0.8673 │
00:01:48 #3055 [Verbose] > │ let v31 : float = -v30 │
00:01:48 #3056 [Verbose] > │ let v32 : bool = v30 >= v31 │
00:01:48 #3057 [Verbose] > │ let v33 : float = │
00:01:48 #3058 [Verbose] > │ if v32 then │
00:01:48 #3059 [Verbose] > │ v30 │
00:01:48 #3060 [Verbose] > │ else │
00:01:48 #3061 [Verbose] > │ v31 │
00:01:48 #3062 [Verbose] > │ let v34 : string = $"%A{v33}" │
00:01:48 #3063 [Verbose] > │ System.Console.WriteLine v34 │
00:01:48 #3064 [Verbose] > │ let v35 : bool = v33 < 0.001 │
00:01:48 #3065 [Verbose] > │ let v37 : bool = │
00:01:48 #3066 [Verbose] > │ if v35 then │
00:01:48 #3067 [Verbose] > │ true │
00:01:48 #3068 [Verbose] > │ else │
00:01:48 #3069 [Verbose] > │ method43(v35) │
00:01:48 #3070 [Verbose] > │ let v38 : string = $"__expect / actual: %A{v33} / expected: %A{0.001}" │
00:01:48 #3071 [Verbose] > │ let v39 : bool = v37 = false │
00:01:48 #3072 [Verbose] > │ if v39 then │
00:01:48 #3073 [Verbose] > │ failwith<unit> v38 │
00:01:48 #3074 [Verbose] > │ let v40 : num_complex_Complex<float> = method14(v26) │
00:01:48 #3075 [Verbose] > │ let v41 : string = "v40.im" │
00:01:48 #3076 [Verbose] > │ let v42 : float = Fable.Core.RustInterop.emitRustExpr () v41 │
00:01:48 #3077 [Verbose] > │ let v43 : float = v42 - 0.275 │
00:01:48 #3078 [Verbose] > │ let v44 : float = -v43 │
00:01:48 #3079 [Verbose] > │ let v45 : bool = v43 >= v44 │
00:01:48 #3080 [Verbose] > │ let v46 : float = │
00:01:48 #3081 [Verbose] > │ if v45 then │
00:01:48 #3082 [Verbose] > │ v43 │
00:01:48 #3083 [Verbose] > │ else │
00:01:48 #3084 [Verbose] > │ v44 │
00:01:48 #3085 [Verbose] > │ let v47 : string = $"%A{v46}" │
00:01:48 #3086 [Verbose] > │ System.Console.WriteLine v47 │
00:01:48 #3087 [Verbose] > │ let v48 : bool = v46 < 0.001 │
00:01:48 #3088 [Verbose] > │ let v50 : bool = │
00:01:48 #3089 [Verbose] > │ if v48 then │
00:01:48 #3090 [Verbose] > │ true │
00:01:48 #3091 [Verbose] > │ else │
00:01:48 #3092 [Verbose] > │ method43(v48) │
00:01:48 #3093 [Verbose] > │ let v51 : string = $"__expect / actual: %A{v46} / expected: %A{0.001}" │
00:01:48 #3094 [Verbose] > │ let v52 : bool = v50 = false │
00:01:48 #3095 [Verbose] > │ if v52 then │
00:01:48 #3096 [Verbose] > │ failwith<unit> v51 │
00:01:48 #3097 [Verbose] > │ and method46 () : unit = │
00:01:48 #3098 [Verbose] > │ let v0 : string = "pyo3::prepare_freethreaded_python()" │
00:01:48 #3099 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v0 │
00:01:48 #3100 [Verbose] > │ let v1 : string = "let __result = pyo3::Python::with_gil(|py| -> │
00:01:48 #3101 [Verbose] > │ pyo3::PyResult<()> { //" │
00:01:48 #3102 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v1 │
00:01:48 #3103 [Verbose] > │ let v2 : string = "py" │
00:01:48 #3104 [Verbose] > │ let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2 │
00:01:48 #3105 [Verbose] > │ method47(v3) │
00:01:48 #3106 [Verbose] > │ let v4 : Result<unit, pyo3_PyErr> = Ok () │
00:01:48 #3107 [Verbose] > │ let v5 : Result<unit, pyo3_PyErr> = method44(v4) │
00:01:48 #3108 [Verbose] > │ let v6 : string = "v5 }})" │
00:01:48 #3109 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v6 │
00:01:48 #3110 [Verbose] > │ let v7 : string = "{ //" │
00:01:48 #3111 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:01:48 #3112 [Verbose] > │ let v8 : string = "__result" │
00:01:48 #3113 [Verbose] > │ let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr │
00:01:48 #3114 [Verbose] > │ () v8 │
00:01:48 #3115 [Verbose] > │ let v10 : Result<unit, pyo3_PyErr> = method45(v9) │
00:01:48 #3116 [Verbose] > │ let v11 : string = "v10.unwrap()" │
00:01:48 #3117 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11 │
00:01:48 #3118 [Verbose] > │ () │
00:01:48 #3119 [Verbose] > │ and method51 () : UH0 = │
00:01:48 #3120 [Verbose] > │ let v0 : UH0 = UH0_1 │
00:01:48 #3121 [Verbose] > │ let v1 : UH0 = UH0_0(-40.0, v0) │
00:01:48 #3122 [Verbose] > │ let v2 : UH0 = UH0_0(-38.0, v1) │
00:01:48 #3123 [Verbose] > │ let v3 : UH0 = UH0_0(-36.0, v2) │
00:01:48 #3124 [Verbose] > │ let v4 : UH0 = UH0_0(-34.0, v3) │
00:01:48 #3125 [Verbose] > │ let v5 : UH0 = UH0_0(-32.0, v4) │
00:01:48 #3126 [Verbose] > │ let v6 : UH0 = UH0_0(-30.0, v5) │
00:01:48 #3127 [Verbose] > │ let v7 : UH0 = UH0_0(-28.0, v6) │
00:01:48 #3128 [Verbose] > │ let v8 : UH0 = UH0_0(-26.0, v7) │
00:01:48 #3129 [Verbose] > │ let v9 : UH0 = UH0_0(-24.0, v8) │
00:01:48 #3130 [Verbose] > │ let v10 : UH0 = UH0_0(-22.0, v9) │
00:01:48 #3131 [Verbose] > │ let v11 : UH0 = UH0_0(-20.0, v10) │
00:01:48 #3132 [Verbose] > │ let v12 : UH0 = UH0_0(-18.0, v11) │
00:01:48 #3133 [Verbose] > │ let v13 : UH0 = UH0_0(-16.0, v12) │
00:01:48 #3134 [Verbose] > │ let v14 : UH0 = UH0_0(-14.0, v13) │
00:01:48 #3135 [Verbose] > │ let v15 : UH0 = UH0_0(-12.0, v14) │
00:01:48 #3136 [Verbose] > │ let v16 : UH0 = UH0_0(-10.0, v15) │
00:01:48 #3137 [Verbose] > │ let v17 : UH0 = UH0_0(-8.0, v16) │
00:01:48 #3138 [Verbose] > │ let v18 : UH0 = UH0_0(-6.0, v17) │
00:01:48 #3139 [Verbose] > │ let v19 : UH0 = UH0_0(-4.0, v18) │
00:01:48 #3140 [Verbose] > │ UH0_0(-2.0, v19) │
00:01:48 #3141 [Verbose] > │ and method52 (v0 : pyo3_Python, v1 : UH0) : unit = │
00:01:48 #3142 [Verbose] > │ match v1 with │
00:01:48 #3143 [Verbose] > │ | UH0_0(v2, v3) -> (* Cons *) │
00:01:48 #3144 [Verbose] > │ let v4 : float = method31(v2) │
00:01:48 #3145 [Verbose] > │ let v5 : float = method3(v4) │
00:01:48 #3146 [Verbose] > │ let v6 : float = method4() │
00:01:48 #3147 [Verbose] > │ let v7 : string = "num_complex::Complex::new(v5, v6)" │
00:01:48 #3148 [Verbose] > │ let v8 : num_complex_Complex<float> = │
00:01:48 #3149 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:01:48 #3150 [Verbose] > │ let v9 : string = $" s = mpmath.zeta(s)" │
00:01:48 #3151 [Verbose] > │ let v10 : num_complex_Complex<float> = method8(v8) │
00:01:48 #3152 [Verbose] > │ let v11 : Result<num_complex_Complex<float>, std_string_String> = │
00:01:48 #3153 [Verbose] > │ method9(v0, v9, v10) │
00:01:48 #3154 [Verbose] > │ let v12 : num_complex_Complex<float> = method33(v0, v8) │
00:01:48 #3155 [Verbose] > │ let v13 : string = "v11.ok()" │
00:01:48 #3156 [Verbose] > │ let v14 : num_complex_Complex<float> option = │
00:01:48 #3157 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v13 │
00:01:48 #3158 [Verbose] > │ let v15 : (num_complex_Complex<float> -> US0) = closure5() │
00:01:48 #3159 [Verbose] > │ let v16 : US0 = US0_0 │
00:01:48 #3160 [Verbose] > │ let v17 : US0 = v14 |> Option.map v15 |> Option.defaultValue v16 │
00:01:48 #3161 [Verbose] > │ let v18 : string = "f64::NAN" │
00:01:48 #3162 [Verbose] > │ let v19 : float = Fable.Core.RustInterop.emitRustExpr () v18 │
00:01:48 #3163 [Verbose] > │ let v20 : string = "f64::NAN" │
00:01:48 #3164 [Verbose] > │ let v21 : float = Fable.Core.RustInterop.emitRustExpr () v20 │
00:01:48 #3165 [Verbose] > │ let v22 : float = method31(v19) │
00:01:48 #3166 [Verbose] > │ let v23 : float = method3(v22) │
00:01:48 #3167 [Verbose] > │ let v24 : float = method32(v21) │
00:01:48 #3168 [Verbose] > │ let v25 : string = "num_complex::Complex::new(v23, v24)" │
00:01:48 #3169 [Verbose] > │ let v26 : num_complex_Complex<float> = │
00:01:48 #3170 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v25 │
00:01:48 #3171 [Verbose] > │ let v29 : num_complex_Complex<float> = │
00:01:48 #3172 [Verbose] > │ match v17 with │
00:01:48 #3173 [Verbose] > │ | US0_0 -> (* None *) │
00:01:48 #3174 [Verbose] > │ v26 │
00:01:48 #3175 [Verbose] > │ | US0_1(v27) -> (* Some *) │
00:01:48 #3176 [Verbose] > │ v27 │
00:01:48 #3177 [Verbose] > │ let v30 : num_complex_Complex<float> = method13(v29) │
00:01:48 #3178 [Verbose] > │ let v31 : string = "v30.re" │
00:01:48 #3179 [Verbose] > │ let v32 : float = Fable.Core.RustInterop.emitRustExpr () v31 │
00:01:48 #3180 [Verbose] > │ let v33 : string = $"%A{v32}" │
00:01:48 #3181 [Verbose] > │ System.Console.WriteLine v33 │
00:01:48 #3182 [Verbose] > │ let v34 : bool = v32 = 0.0 │
00:01:48 #3183 [Verbose] > │ let v36 : bool = │
00:01:48 #3184 [Verbose] > │ if v34 then │
00:01:48 #3185 [Verbose] > │ true │
00:01:48 #3186 [Verbose] > │ else │
00:01:48 #3187 [Verbose] > │ method43(v34) │
00:01:48 #3188 [Verbose] > │ let v37 : string = $"__expect / actual: %A{v32} / expected: %A{0.0}" │
00:01:48 #3189 [Verbose] > │ let v38 : bool = v36 = false │
00:01:48 #3190 [Verbose] > │ if v38 then │
00:01:48 #3191 [Verbose] > │ failwith<unit> v37 │
00:01:48 #3192 [Verbose] > │ let v39 : num_complex_Complex<float> = method14(v29) │
00:01:48 #3193 [Verbose] > │ let v40 : string = "v39.im" │
00:01:48 #3194 [Verbose] > │ let v41 : float = Fable.Core.RustInterop.emitRustExpr () v40 │
00:01:48 #3195 [Verbose] > │ let v42 : string = $"%A{v41}" │
00:01:48 #3196 [Verbose] > │ System.Console.WriteLine v42 │
00:01:48 #3197 [Verbose] > │ let v43 : bool = v41 = 0.0 │
00:01:48 #3198 [Verbose] > │ let v45 : bool = │
00:01:48 #3199 [Verbose] > │ if v43 then │
00:01:48 #3200 [Verbose] > │ true │
00:01:48 #3201 [Verbose] > │ else │
00:01:48 #3202 [Verbose] > │ method43(v43) │
00:01:48 #3203 [Verbose] > │ let v46 : string = $"__expect / actual: %A{v41} / expected: %A{0.0}" │
00:01:48 #3204 [Verbose] > │ let v47 : bool = v45 = false │
00:01:48 #3205 [Verbose] > │ if v47 then │
00:01:48 #3206 [Verbose] > │ failwith<unit> v46 │
00:01:48 #3207 [Verbose] > │ method52(v0, v3) │
00:01:48 #3208 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:01:48 #3209 [Verbose] > │ () │
00:01:48 #3210 [Verbose] > │ and method50 (v0 : pyo3_Python) : unit = │
00:01:48 #3211 [Verbose] > │ let v1 : UH0 = method51() │
00:01:48 #3212 [Verbose] > │ method52(v0, v1) │
00:01:48 #3213 [Verbose] > │ and method49 () : unit = │
00:01:48 #3214 [Verbose] > │ let v0 : string = "pyo3::prepare_freethreaded_python()" │
00:01:48 #3215 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v0 │
00:01:48 #3216 [Verbose] > │ let v1 : string = "let __result = pyo3::Python::with_gil(|py| -> │
00:01:48 #3217 [Verbose] > │ pyo3::PyResult<()> { //" │
00:01:48 #3218 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v1 │
00:01:48 #3219 [Verbose] > │ let v2 : string = "py" │
00:01:48 #3220 [Verbose] > │ let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2 │
00:01:48 #3221 [Verbose] > │ method50(v3) │
00:01:48 #3222 [Verbose] > │ let v4 : Result<unit, pyo3_PyErr> = Ok () │
00:01:48 #3223 [Verbose] > │ let v5 : Result<unit, pyo3_PyErr> = method44(v4) │
00:01:48 #3224 [Verbose] > │ let v6 : string = "v5 }})" │
00:01:48 #3225 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v6 │
00:01:48 #3226 [Verbose] > │ let v7 : string = "{ //" │
00:01:48 #3227 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:01:48 #3228 [Verbose] > │ let v8 : string = "__result" │
00:01:48 #3229 [Verbose] > │ let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr │
00:01:48 #3230 [Verbose] > │ () v8 │
00:01:48 #3231 [Verbose] > │ let v10 : Result<unit, pyo3_PyErr> = method45(v9) │
00:01:48 #3232 [Verbose] > │ let v11 : string = "v10.unwrap()" │
00:01:48 #3233 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11 │
00:01:48 #3234 [Verbose] > │ () │
00:01:48 #3235 [Verbose] > │ and method55 () : float = │
00:01:48 #3236 [Verbose] > │ 0.5 │
00:01:48 #3237 [Verbose] > │ and method56 () : float = │
00:01:48 #3238 [Verbose] > │ 14.134725 │
00:01:48 #3239 [Verbose] > │ and method57 () : float = │
00:01:48 #3240 [Verbose] > │ 21.02204 │
00:01:48 #3241 [Verbose] > │ and method58 () : float = │
00:01:48 #3242 [Verbose] > │ 25.010857 │
00:01:48 #3243 [Verbose] > │ and method59 () : float = │
00:01:48 #3244 [Verbose] > │ 30.424876 │
00:01:48 #3245 [Verbose] > │ and method60 () : float = │
00:01:48 #3246 [Verbose] > │ 32.935062 │
00:01:48 #3247 [Verbose] > │ and method61 () : float = │
00:01:48 #3248 [Verbose] > │ 37.586178 │
00:01:48 #3249 [Verbose] > │ and method62 (v0 : (num_complex_Complex<float> [])) : │
00:01:48 #3250 [Verbose] > │ (num_complex_Complex<float> []) = │
00:01:48 #3251 [Verbose] > │ v0 │
00:01:48 #3252 [Verbose] > │ and method54 (v0 : pyo3_Python) : unit = │
00:01:48 #3253 [Verbose] > │ let v1 : float = method55() │
00:01:48 #3254 [Verbose] > │ let v2 : float = method3(v1) │
00:01:48 #3255 [Verbose] > │ let v3 : float = method56() │
00:01:48 #3256 [Verbose] > │ let v4 : string = "num_complex::Complex::new(v2, v3)" │
00:01:48 #3257 [Verbose] > │ let v5 : num_complex_Complex<float> = │
00:01:48 #3258 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v4 │
00:01:48 #3259 [Verbose] > │ let v6 : float = method55() │
00:01:48 #3260 [Verbose] > │ let v7 : float = method3(v6) │
00:01:48 #3261 [Verbose] > │ let v8 : float = method57() │
00:01:48 #3262 [Verbose] > │ let v9 : string = "num_complex::Complex::new(v7, v8)" │
00:01:48 #3263 [Verbose] > │ let v10 : num_complex_Complex<float> = │
00:01:48 #3264 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v9 │
00:01:48 #3265 [Verbose] > │ let v11 : float = method55() │
00:01:48 #3266 [Verbose] > │ let v12 : float = method3(v11) │
00:01:48 #3267 [Verbose] > │ let v13 : float = method58() │
00:01:48 #3268 [Verbose] > │ let v14 : string = "num_complex::Complex::new(v12, v13)" │
00:01:48 #3269 [Verbose] > │ let v15 : num_complex_Complex<float> = │
00:01:48 #3270 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v14 │
00:01:48 #3271 [Verbose] > │ let v16 : float = method55() │
00:01:48 #3272 [Verbose] > │ let v17 : float = method3(v16) │
00:01:48 #3273 [Verbose] > │ let v18 : float = method59() │
00:01:48 #3274 [Verbose] > │ let v19 : string = "num_complex::Complex::new(v17, v18)" │
00:01:48 #3275 [Verbose] > │ let v20 : num_complex_Complex<float> = │
00:01:48 #3276 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v19 │
00:01:48 #3277 [Verbose] > │ let v21 : float = method55() │
00:01:48 #3278 [Verbose] > │ let v22 : float = method3(v21) │
00:01:48 #3279 [Verbose] > │ let v23 : float = method60() │
00:01:48 #3280 [Verbose] > │ let v24 : string = "num_complex::Complex::new(v22, v23)" │
00:01:48 #3281 [Verbose] > │ let v25 : num_complex_Complex<float> = │
00:01:48 #3282 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v24 │
00:01:48 #3283 [Verbose] > │ let v26 : float = method55() │
00:01:48 #3284 [Verbose] > │ let v27 : float = method3(v26) │
00:01:48 #3285 [Verbose] > │ let v28 : float = method61() │
00:01:48 #3286 [Verbose] > │ let v29 : string = "num_complex::Complex::new(v27, v28)" │
00:01:48 #3287 [Verbose] > │ let v30 : num_complex_Complex<float> = │
00:01:48 #3288 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v29 │
00:01:48 #3289 [Verbose] > │ let v31 : (num_complex_Complex<float> []) = [|v5; v10; v15; v20; v25; │
00:01:48 #3290 [Verbose] > │ v30|] │
00:01:48 #3291 [Verbose] > │ let v32 : (num_complex_Complex<float> []) = method62(v31) │
00:01:48 #3292 [Verbose] > │ let v33 : int32 = v32.Length │
00:01:48 #3293 [Verbose] > │ let v34 : Mut0 = {l0 = 0} : Mut0 │
00:01:48 #3294 [Verbose] > │ while method7(v33, v34) do │
00:01:48 #3295 [Verbose] > │ let v36 : int32 = v34.l0 │
00:01:48 #3296 [Verbose] > │ let v37 : num_complex_Complex<float> = v32.[int v36] │
00:01:48 #3297 [Verbose] > │ let v38 : string = $" s = mpmath.zeta(s)" │
00:01:48 #3298 [Verbose] > │ let v39 : num_complex_Complex<float> = method8(v37) │
00:01:48 #3299 [Verbose] > │ let v40 : Result<num_complex_Complex<float>, std_string_String> = │
00:01:48 #3300 [Verbose] > │ method9(v0, v38, v39) │
00:01:48 #3301 [Verbose] > │ let v41 : num_complex_Complex<float> = method33(v0, v37) │
00:01:48 #3302 [Verbose] > │ let v42 : string = "v40.ok()" │
00:01:48 #3303 [Verbose] > │ let v43 : num_complex_Complex<float> option = │
00:01:48 #3304 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v42 │
00:01:48 #3305 [Verbose] > │ let v44 : (num_complex_Complex<float> -> US0) = closure5() │
00:01:48 #3306 [Verbose] > │ let v45 : US0 = US0_0 │
00:01:48 #3307 [Verbose] > │ let v46 : US0 = v43 |> Option.map v44 |> Option.defaultValue v45 │
00:01:48 #3308 [Verbose] > │ let v47 : string = "f64::NAN" │
00:01:48 #3309 [Verbose] > │ let v48 : float = Fable.Core.RustInterop.emitRustExpr () v47 │
00:01:48 #3310 [Verbose] > │ let v49 : string = "f64::NAN" │
00:01:48 #3311 [Verbose] > │ let v50 : float = Fable.Core.RustInterop.emitRustExpr () v49 │
00:01:48 #3312 [Verbose] > │ let v51 : float = method31(v48) │
00:01:48 #3313 [Verbose] > │ let v52 : float = method3(v51) │
00:01:48 #3314 [Verbose] > │ let v53 : float = method32(v50) │
00:01:48 #3315 [Verbose] > │ let v54 : string = "num_complex::Complex::new(v52, v53)" │
00:01:48 #3316 [Verbose] > │ let v55 : num_complex_Complex<float> = │
00:01:48 #3317 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v54 │
00:01:48 #3318 [Verbose] > │ let v58 : num_complex_Complex<float> = │
00:01:48 #3319 [Verbose] > │ match v46 with │
00:01:48 #3320 [Verbose] > │ | US0_0 -> (* None *) │
00:01:48 #3321 [Verbose] > │ v55 │
00:01:48 #3322 [Verbose] > │ | US0_1(v56) -> (* Some *) │
00:01:48 #3323 [Verbose] > │ v56 │
00:01:48 #3324 [Verbose] > │ let v59 : num_complex_Complex<float> = method13(v58) │
00:01:48 #3325 [Verbose] > │ let v60 : string = "v59.re" │
00:01:48 #3326 [Verbose] > │ let v61 : float = Fable.Core.RustInterop.emitRustExpr () v60 │
00:01:48 #3327 [Verbose] > │ let v62 : float = -v61 │
00:01:48 #3328 [Verbose] > │ let v63 : bool = v61 >= v62 │
00:01:48 #3329 [Verbose] > │ let v64 : float = │
00:01:48 #3330 [Verbose] > │ if v63 then │
00:01:48 #3331 [Verbose] > │ v61 │
00:01:48 #3332 [Verbose] > │ else │
00:01:48 #3333 [Verbose] > │ v62 │
00:01:48 #3334 [Verbose] > │ let v65 : string = $"%A{v64}" │
00:01:48 #3335 [Verbose] > │ System.Console.WriteLine v65 │
00:01:48 #3336 [Verbose] > │ let v66 : bool = v64 < 0.0001 │
00:01:48 #3337 [Verbose] > │ let v68 : bool = │
00:01:48 #3338 [Verbose] > │ if v66 then │
00:01:48 #3339 [Verbose] > │ true │
00:01:48 #3340 [Verbose] > │ else │
00:01:48 #3341 [Verbose] > │ method43(v66) │
00:01:48 #3342 [Verbose] > │ let v69 : string = $"__expect / actual: %A{v64} / expected: │
00:01:48 #3343 [Verbose] > │ %A{0.0001}" │
00:01:48 #3344 [Verbose] > │ let v70 : bool = v68 = false │
00:01:48 #3345 [Verbose] > │ if v70 then │
00:01:48 #3346 [Verbose] > │ failwith<unit> v69 │
00:01:48 #3347 [Verbose] > │ let v71 : num_complex_Complex<float> = method14(v58) │
00:01:48 #3348 [Verbose] > │ let v72 : string = "v71.im" │
00:01:48 #3349 [Verbose] > │ let v73 : float = Fable.Core.RustInterop.emitRustExpr () v72 │
00:01:48 #3350 [Verbose] > │ let v74 : float = -v73 │
00:01:48 #3351 [Verbose] > │ let v75 : bool = v73 >= v74 │
00:01:48 #3352 [Verbose] > │ let v76 : float = │
00:01:48 #3353 [Verbose] > │ if v75 then │
00:01:48 #3354 [Verbose] > │ v73 │
00:01:48 #3355 [Verbose] > │ else │
00:01:48 #3356 [Verbose] > │ v74 │
00:01:48 #3357 [Verbose] > │ let v77 : string = $"%A{v76}" │
00:01:48 #3358 [Verbose] > │ System.Console.WriteLine v77 │
00:01:48 #3359 [Verbose] > │ let v78 : bool = v76 < 0.0001 │
00:01:48 #3360 [Verbose] > │ let v80 : bool = │
00:01:48 #3361 [Verbose] > │ if v78 then │
00:01:48 #3362 [Verbose] > │ true │
00:01:48 #3363 [Verbose] > │ else │
00:01:48 #3364 [Verbose] > │ method43(v78) │
00:01:48 #3365 [Verbose] > │ let v81 : string = $"__expect / actual: %A{v76} / expected: │
00:01:48 #3366 [Verbose] > │ %A{0.0001}" │
00:01:48 #3367 [Verbose] > │ let v82 : bool = v80 = false │
00:01:48 #3368 [Verbose] > │ if v82 then │
00:01:48 #3369 [Verbose] > │ failwith<unit> v81 │
00:01:48 #3370 [Verbose] > │ let v83 : int32 = v36 + 1 │
00:01:48 #3371 [Verbose] > │ v34.l0 <- v83 │
00:01:48 #3372 [Verbose] > │ () │
00:01:48 #3373 [Verbose] > │ () │
00:01:48 #3374 [Verbose] > │ and method53 () : unit = │
00:01:48 #3375 [Verbose] > │ let v0 : string = "pyo3::prepare_freethreaded_python()" │
00:01:48 #3376 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v0 │
00:01:48 #3377 [Verbose] > │ let v1 : string = "let __result = pyo3::Python::with_gil(|py| -> │
00:01:48 #3378 [Verbose] > │ pyo3::PyResult<()> { //" │
00:01:48 #3379 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v1 │
00:01:48 #3380 [Verbose] > │ let v2 : string = "py" │
00:01:48 #3381 [Verbose] > │ let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2 │
00:01:48 #3382 [Verbose] > │ method54(v3) │
00:01:48 #3383 [Verbose] > │ let v4 : Result<unit, pyo3_PyErr> = Ok () │
00:01:48 #3384 [Verbose] > │ let v5 : Result<unit, pyo3_PyErr> = method44(v4) │
00:01:48 #3385 [Verbose] > │ let v6 : string = "v5 }})" │
00:01:48 #3386 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v6 │
00:01:48 #3387 [Verbose] > │ let v7 : string = "{ //" │
00:01:48 #3388 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:01:48 #3389 [Verbose] > │ let v8 : string = "__result" │
00:01:48 #3390 [Verbose] > │ let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr │
00:01:48 #3391 [Verbose] > │ () v8 │
00:01:48 #3392 [Verbose] > │ let v10 : Result<unit, pyo3_PyErr> = method45(v9) │
00:01:48 #3393 [Verbose] > │ let v11 : string = "v10.unwrap()" │
00:01:48 #3394 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11 │
00:01:48 #3395 [Verbose] > │ () │
00:01:48 #3396 [Verbose] > │ and method65 (v0 : (float [])) : (float []) = │
00:01:48 #3397 [Verbose] > │ v0 │
00:01:48 #3398 [Verbose] > │ and method64 (v0 : pyo3_Python) : unit = │
00:01:48 #3399 [Verbose] > │ let v1 : (float []) = [|2.0; 3.0; 4.0; 5.0; 10.0; 20.0; 50.0|] │
00:01:48 #3400 [Verbose] > │ let v2 : (float []) = method65(v1) │
00:01:48 #3401 [Verbose] > │ let v3 : int32 = v2.Length │
00:01:48 #3402 [Verbose] > │ let v4 : Mut0 = {l0 = 0} : Mut0 │
00:01:48 #3403 [Verbose] > │ while method7(v3, v4) do │
00:01:48 #3404 [Verbose] > │ let v6 : int32 = v4.l0 │
00:01:48 #3405 [Verbose] > │ let v7 : float = v2.[int v6] │
00:01:48 #3406 [Verbose] > │ let v8 : float = method31(v7) │
00:01:48 #3407 [Verbose] > │ let v9 : float = method3(v8) │
00:01:48 #3408 [Verbose] > │ let v10 : float = method4() │
00:01:48 #3409 [Verbose] > │ let v11 : string = "num_complex::Complex::new(v9, v10)" │
00:01:48 #3410 [Verbose] > │ let v12 : num_complex_Complex<float> = │
00:01:48 #3411 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11 │
00:01:48 #3412 [Verbose] > │ let v13 : string = $" s = mpmath.zeta(s)" │
00:01:48 #3413 [Verbose] > │ let v14 : num_complex_Complex<float> = method8(v12) │
00:01:48 #3414 [Verbose] > │ let v15 : Result<num_complex_Complex<float>, std_string_String> = │
00:01:48 #3415 [Verbose] > │ method9(v0, v13, v14) │
00:01:48 #3416 [Verbose] > │ let v16 : num_complex_Complex<float> = method33(v0, v12) │
00:01:48 #3417 [Verbose] > │ let v17 : string = "v15.ok()" │
00:01:48 #3418 [Verbose] > │ let v18 : num_complex_Complex<float> option = │
00:01:48 #3419 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v17 │
00:01:48 #3420 [Verbose] > │ let v19 : (num_complex_Complex<float> -> US0) = closure5() │
00:01:48 #3421 [Verbose] > │ let v20 : US0 = US0_0 │
00:01:48 #3422 [Verbose] > │ let v21 : US0 = v18 |> Option.map v19 |> Option.defaultValue v20 │
00:01:48 #3423 [Verbose] > │ let v22 : string = "f64::NAN" │
00:01:48 #3424 [Verbose] > │ let v23 : float = Fable.Core.RustInterop.emitRustExpr () v22 │
00:01:48 #3425 [Verbose] > │ let v24 : string = "f64::NAN" │
00:01:48 #3426 [Verbose] > │ let v25 : float = Fable.Core.RustInterop.emitRustExpr () v24 │
00:01:48 #3427 [Verbose] > │ let v26 : float = method31(v23) │
00:01:48 #3428 [Verbose] > │ let v27 : float = method3(v26) │
00:01:48 #3429 [Verbose] > │ let v28 : float = method32(v25) │
00:01:48 #3430 [Verbose] > │ let v29 : string = "num_complex::Complex::new(v27, v28)" │
00:01:48 #3431 [Verbose] > │ let v30 : num_complex_Complex<float> = │
00:01:48 #3432 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v29 │
00:01:48 #3433 [Verbose] > │ let v33 : num_complex_Complex<float> = │
00:01:48 #3434 [Verbose] > │ match v21 with │
00:01:48 #3435 [Verbose] > │ | US0_0 -> (* None *) │
00:01:48 #3436 [Verbose] > │ v30 │
00:01:48 #3437 [Verbose] > │ | US0_1(v31) -> (* Some *) │
00:01:48 #3438 [Verbose] > │ v31 │
00:01:48 #3439 [Verbose] > │ let v34 : num_complex_Complex<float> = method13(v33) │
00:01:48 #3440 [Verbose] > │ let v35 : string = "v34.re" │
00:01:48 #3441 [Verbose] > │ let v36 : float = Fable.Core.RustInterop.emitRustExpr () v35 │
00:01:48 #3442 [Verbose] > │ let v37 : string = $"%A{v36}" │
00:01:48 #3443 [Verbose] > │ System.Console.WriteLine v37 │
00:01:48 #3444 [Verbose] > │ let v38 : bool = v36 > 0.0 │
00:01:48 #3445 [Verbose] > │ let v40 : bool = │
00:01:48 #3446 [Verbose] > │ if v38 then │
00:01:48 #3447 [Verbose] > │ true │
00:01:48 #3448 [Verbose] > │ else │
00:01:48 #3449 [Verbose] > │ method43(v38) │
00:01:48 #3450 [Verbose] > │ let v41 : string = $"__expect / actual: %A{v36} / expected: %A{0.0}" │
00:01:48 #3451 [Verbose] > │ let v42 : bool = v40 = false │
00:01:48 #3452 [Verbose] > │ if v42 then │
00:01:48 #3453 [Verbose] > │ failwith<unit> v41 │
00:01:48 #3454 [Verbose] > │ let v43 : num_complex_Complex<float> = method14(v33) │
00:01:48 #3455 [Verbose] > │ let v44 : string = "v43.im" │
00:01:48 #3456 [Verbose] > │ let v45 : float = Fable.Core.RustInterop.emitRustExpr () v44 │
00:01:48 #3457 [Verbose] > │ let v46 : string = $"%A{v45}" │
00:01:48 #3458 [Verbose] > │ System.Console.WriteLine v46 │
00:01:48 #3459 [Verbose] > │ let v47 : bool = v45 = 0.0 │
00:01:48 #3460 [Verbose] > │ let v49 : bool = │
00:01:48 #3461 [Verbose] > │ if v47 then │
00:01:48 #3462 [Verbose] > │ true │
00:01:48 #3463 [Verbose] > │ else │
00:01:48 #3464 [Verbose] > │ method43(v47) │
00:01:48 #3465 [Verbose] > │ let v50 : string = $"__expect / actual: %A{v45} / expected: %A{0.0}" │
00:01:48 #3466 [Verbose] > │ let v51 : bool = v49 = false │
00:01:48 #3467 [Verbose] > │ if v51 then │
00:01:48 #3468 [Verbose] > │ failwith<unit> v50 │
00:01:48 #3469 [Verbose] > │ let v52 : int32 = v6 + 1 │
00:01:48 #3470 [Verbose] > │ v4.l0 <- v52 │
00:01:48 #3471 [Verbose] > │ () │
00:01:48 #3472 [Verbose] > │ () │
00:01:48 #3473 [Verbose] > │ and method63 () : unit = │
00:01:48 #3474 [Verbose] > │ let v0 : string = "pyo3::prepare_freethreaded_python()" │
00:01:48 #3475 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v0 │
00:01:48 #3476 [Verbose] > │ let v1 : string = "let __result = pyo3::Python::with_gil(|py| -> │
00:01:48 #3477 [Verbose] > │ pyo3::PyResult<()> { //" │
00:01:48 #3478 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v1 │
00:01:48 #3479 [Verbose] > │ let v2 : string = "py" │
00:01:48 #3480 [Verbose] > │ let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2 │
00:01:48 #3481 [Verbose] > │ method64(v3) │
00:01:48 #3482 [Verbose] > │ let v4 : Result<unit, pyo3_PyErr> = Ok () │
00:01:48 #3483 [Verbose] > │ let v5 : Result<unit, pyo3_PyErr> = method44(v4) │
00:01:48 #3484 [Verbose] > │ let v6 : string = "v5 }})" │
00:01:48 #3485 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v6 │
00:01:48 #3486 [Verbose] > │ let v7 : string = "{ //" │
00:01:48 #3487 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:01:48 #3488 [Verbose] > │ let v8 : string = "__result" │
00:01:48 #3489 [Verbose] > │ let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr │
00:01:48 #3490 [Verbose] > │ () v8 │
00:01:48 #3491 [Verbose] > │ let v10 : Result<unit, pyo3_PyErr> = method45(v9) │
00:01:48 #3492 [Verbose] > │ let v11 : string = "v10.unwrap()" │
00:01:48 #3493 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11 │
00:01:48 #3494 [Verbose] > │ () │
00:01:48 #3495 [Verbose] > │ and method67 (v0 : pyo3_Python) : unit = │
00:01:48 #3496 [Verbose] > │ let v1 : float = method38() │
00:01:48 #3497 [Verbose] > │ let v2 : float = method3(v1) │
00:01:48 #3498 [Verbose] > │ let v3 : float = method4() │
00:01:48 #3499 [Verbose] > │ let v4 : string = "num_complex::Complex::new(v2, v3)" │
00:01:48 #3500 [Verbose] > │ let v5 : num_complex_Complex<float> = │
00:01:48 #3501 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v4 │
00:01:48 #3502 [Verbose] > │ let v6 : string = $" s = mpmath.zeta(s)" │
00:01:48 #3503 [Verbose] > │ let v7 : num_complex_Complex<float> = method8(v5) │
00:01:48 #3504 [Verbose] > │ let v8 : Result<num_complex_Complex<float>, std_string_String> = │
00:01:48 #3505 [Verbose] > │ method9(v0, v6, v7) │
00:01:48 #3506 [Verbose] > │ let v9 : num_complex_Complex<float> = method33(v0, v5) │
00:01:48 #3507 [Verbose] > │ let v10 : string = "v8.ok()" │
00:01:48 #3508 [Verbose] > │ let v11 : num_complex_Complex<float> option = │
00:01:48 #3509 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v10 │
00:01:48 #3510 [Verbose] > │ let v12 : (num_complex_Complex<float> -> US0) = closure5() │
00:01:48 #3511 [Verbose] > │ let v13 : US0 = US0_0 │
00:01:48 #3512 [Verbose] > │ let v14 : US0 = v11 |> Option.map v12 |> Option.defaultValue v13 │
00:01:48 #3513 [Verbose] > │ let v15 : string = "f64::NAN" │
00:01:48 #3514 [Verbose] > │ let v16 : float = Fable.Core.RustInterop.emitRustExpr () v15 │
00:01:48 #3515 [Verbose] > │ let v17 : string = "f64::NAN" │
00:01:48 #3516 [Verbose] > │ let v18 : float = Fable.Core.RustInterop.emitRustExpr () v17 │
00:01:48 #3517 [Verbose] > │ let v19 : float = method31(v16) │
00:01:48 #3518 [Verbose] > │ let v20 : float = method3(v19) │
00:01:48 #3519 [Verbose] > │ let v21 : float = method32(v18) │
00:01:48 #3520 [Verbose] > │ let v22 : string = "num_complex::Complex::new(v20, v21)" │
00:01:48 #3521 [Verbose] > │ let v23 : num_complex_Complex<float> = │
00:01:48 #3522 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v22 │
00:01:48 #3523 [Verbose] > │ let v26 : num_complex_Complex<float> = │
00:01:48 #3524 [Verbose] > │ match v14 with │
00:01:48 #3525 [Verbose] > │ | US0_0 -> (* None *) │
00:01:48 #3526 [Verbose] > │ v23 │
00:01:48 #3527 [Verbose] > │ | US0_1(v24) -> (* Some *) │
00:01:48 #3528 [Verbose] > │ v24 │
00:01:48 #3529 [Verbose] > │ let v27 : num_complex_Complex<float> = method13(v26) │
00:01:48 #3530 [Verbose] > │ let v28 : string = "v27.re" │
00:01:48 #3531 [Verbose] > │ let v29 : float = Fable.Core.RustInterop.emitRustExpr () v28 │
00:01:48 #3532 [Verbose] > │ let v30 : string = $"%A{v29}" │
00:01:48 #3533 [Verbose] > │ System.Console.WriteLine v30 │
00:01:48 #3534 [Verbose] > │ let v31 : bool = v29 = infinity │
00:01:48 #3535 [Verbose] > │ let v33 : bool = │
00:01:48 #3536 [Verbose] > │ if v31 then │
00:01:48 #3537 [Verbose] > │ true │
00:01:48 #3538 [Verbose] > │ else │
00:01:48 #3539 [Verbose] > │ method43(v31) │
00:01:48 #3540 [Verbose] > │ let v34 : string = $"__expect / actual: %A{v29} / expected: │
00:01:48 #3541 [Verbose] > │ %A{infinity}" │
00:01:48 #3542 [Verbose] > │ let v35 : bool = v33 = false │
00:01:48 #3543 [Verbose] > │ if v35 then │
00:01:48 #3544 [Verbose] > │ failwith<unit> v34 │
00:01:48 #3545 [Verbose] > │ let v36 : num_complex_Complex<float> = method14(v26) │
00:01:48 #3546 [Verbose] > │ let v37 : string = "v36.im" │
00:01:48 #3547 [Verbose] > │ let v38 : float = Fable.Core.RustInterop.emitRustExpr () v37 │
00:01:48 #3548 [Verbose] > │ let v39 : string = $"%A{v38}" │
00:01:48 #3549 [Verbose] > │ System.Console.WriteLine v39 │
00:01:48 #3550 [Verbose] > │ let v40 : bool = v38 = 0.0 │
00:01:48 #3551 [Verbose] > │ let v42 : bool = │
00:01:48 #3552 [Verbose] > │ if v40 then │
00:01:48 #3553 [Verbose] > │ true │
00:01:48 #3554 [Verbose] > │ else │
00:01:48 #3555 [Verbose] > │ method43(v40) │
00:01:48 #3556 [Verbose] > │ let v43 : string = $"__expect / actual: %A{v38} / expected: %A{0.0}" │
00:01:48 #3557 [Verbose] > │ let v44 : bool = v42 = false │
00:01:48 #3558 [Verbose] > │ if v44 then │
00:01:48 #3559 [Verbose] > │ failwith<unit> v43 │
00:01:48 #3560 [Verbose] > │ and method66 () : unit = │
00:01:48 #3561 [Verbose] > │ let v0 : string = "pyo3::prepare_freethreaded_python()" │
00:01:48 #3562 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v0 │
00:01:48 #3563 [Verbose] > │ let v1 : string = "let __result = pyo3::Python::with_gil(|py| -> │
00:01:48 #3564 [Verbose] > │ pyo3::PyResult<()> { //" │
00:01:48 #3565 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v1 │
00:01:48 #3566 [Verbose] > │ let v2 : string = "py" │
00:01:48 #3567 [Verbose] > │ let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2 │
00:01:48 #3568 [Verbose] > │ method67(v3) │
00:01:48 #3569 [Verbose] > │ let v4 : Result<unit, pyo3_PyErr> = Ok () │
00:01:48 #3570 [Verbose] > │ let v5 : Result<unit, pyo3_PyErr> = method44(v4) │
00:01:48 #3571 [Verbose] > │ let v6 : string = "v5 }})" │
00:01:48 #3572 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v6 │
00:01:48 #3573 [Verbose] > │ let v7 : string = "{ //" │
00:01:48 #3574 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:01:48 #3575 [Verbose] > │ let v8 : string = "__result" │
00:01:48 #3576 [Verbose] > │ let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr │
00:01:48 #3577 [Verbose] > │ () v8 │
00:01:48 #3578 [Verbose] > │ let v10 : Result<unit, pyo3_PyErr> = method45(v9) │
00:01:48 #3579 [Verbose] > │ let v11 : string = "v10.unwrap()" │
00:01:48 #3580 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11 │
00:01:48 #3581 [Verbose] > │ () │
00:01:48 #3582 [Verbose] > │ and method70 () : float = │
00:01:48 #3583 [Verbose] > │ 10.0 │
00:01:48 #3584 [Verbose] > │ and method69 (v0 : pyo3_Python) : unit = │
00:01:48 #3585 [Verbose] > │ let v1 : float = method2() │
00:01:48 #3586 [Verbose] > │ let v2 : float = method3(v1) │
00:01:48 #3587 [Verbose] > │ let v3 : float = method70() │
00:01:48 #3588 [Verbose] > │ let v4 : string = "num_complex::Complex::new(v2, v3)" │
00:01:48 #3589 [Verbose] > │ let v5 : num_complex_Complex<float> = │
00:01:48 #3590 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v4 │
00:01:48 #3591 [Verbose] > │ let v6 : string = $" s = mpmath.zeta(s)" │
00:01:48 #3592 [Verbose] > │ let v7 : num_complex_Complex<float> = method8(v5) │
00:01:48 #3593 [Verbose] > │ let v8 : Result<num_complex_Complex<float>, std_string_String> = │
00:01:48 #3594 [Verbose] > │ method9(v0, v6, v7) │
00:01:48 #3595 [Verbose] > │ let v9 : num_complex_Complex<float> = method33(v0, v5) │
00:01:48 #3596 [Verbose] > │ let v10 : string = "v8.ok()" │
00:01:48 #3597 [Verbose] > │ let v11 : num_complex_Complex<float> option = │
00:01:48 #3598 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v10 │
00:01:48 #3599 [Verbose] > │ let v12 : (num_complex_Complex<float> -> US0) = closure5() │
00:01:48 #3600 [Verbose] > │ let v13 : US0 = US0_0 │
00:01:48 #3601 [Verbose] > │ let v14 : US0 = v11 |> Option.map v12 |> Option.defaultValue v13 │
00:01:48 #3602 [Verbose] > │ let v15 : string = "f64::NAN" │
00:01:48 #3603 [Verbose] > │ let v16 : float = Fable.Core.RustInterop.emitRustExpr () v15 │
00:01:48 #3604 [Verbose] > │ let v17 : string = "f64::NAN" │
00:01:48 #3605 [Verbose] > │ let v18 : float = Fable.Core.RustInterop.emitRustExpr () v17 │
00:01:48 #3606 [Verbose] > │ let v19 : float = method31(v16) │
00:01:48 #3607 [Verbose] > │ let v20 : float = method3(v19) │
00:01:48 #3608 [Verbose] > │ let v21 : float = method32(v18) │
00:01:48 #3609 [Verbose] > │ let v22 : string = "num_complex::Complex::new(v20, v21)" │
00:01:48 #3610 [Verbose] > │ let v23 : num_complex_Complex<float> = │
00:01:48 #3611 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v22 │
00:01:48 #3612 [Verbose] > │ let v26 : num_complex_Complex<float> = │
00:01:48 #3613 [Verbose] > │ match v14 with │
00:01:48 #3614 [Verbose] > │ | US0_0 -> (* None *) │
00:01:48 #3615 [Verbose] > │ v23 │
00:01:48 #3616 [Verbose] > │ | US0_1(v24) -> (* Some *) │
00:01:48 #3617 [Verbose] > │ v24 │
00:01:48 #3618 [Verbose] > │ let v27 : num_complex_Complex<float> = method13(v5) │
00:01:48 #3619 [Verbose] > │ let v28 : string = "v27.re" │
00:01:48 #3620 [Verbose] > │ let v29 : float = Fable.Core.RustInterop.emitRustExpr () v28 │
00:01:48 #3621 [Verbose] > │ let v30 : num_complex_Complex<float> = method14(v5) │
00:01:48 #3622 [Verbose] > │ let v31 : string = "v30.im" │
00:01:48 #3623 [Verbose] > │ let v32 : float = Fable.Core.RustInterop.emitRustExpr () v31 │
00:01:48 #3624 [Verbose] > │ let v33 : float = -v32 │
00:01:48 #3625 [Verbose] > │ let v34 : float = method31(v29) │
00:01:48 #3626 [Verbose] > │ let v35 : float = method3(v34) │
00:01:48 #3627 [Verbose] > │ let v36 : float = method32(v33) │
00:01:48 #3628 [Verbose] > │ let v37 : string = "num_complex::Complex::new(v35, v36)" │
00:01:48 #3629 [Verbose] > │ let v38 : num_complex_Complex<float> = │
00:01:48 #3630 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v37 │
00:01:48 #3631 [Verbose] > │ let v39 : string = $" s = mpmath.zeta(s)" │
00:01:48 #3632 [Verbose] > │ let v40 : num_complex_Complex<float> = method8(v38) │
00:01:48 #3633 [Verbose] > │ let v41 : Result<num_complex_Complex<float>, std_string_String> = │
00:01:48 #3634 [Verbose] > │ method9(v0, v39, v40) │
00:01:48 #3635 [Verbose] > │ let v42 : num_complex_Complex<float> = method33(v0, v38) │
00:01:48 #3636 [Verbose] > │ let v43 : string = "v41.ok()" │
00:01:48 #3637 [Verbose] > │ let v44 : num_complex_Complex<float> option = │
00:01:48 #3638 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v43 │
00:01:48 #3639 [Verbose] > │ let v45 : US0 = US0_0 │
00:01:48 #3640 [Verbose] > │ let v46 : US0 = v44 |> Option.map v12 |> Option.defaultValue v45 │
00:01:48 #3641 [Verbose] > │ let v47 : string = "f64::NAN" │
00:01:48 #3642 [Verbose] > │ let v48 : float = Fable.Core.RustInterop.emitRustExpr () v47 │
00:01:48 #3643 [Verbose] > │ let v49 : string = "f64::NAN" │
00:01:48 #3644 [Verbose] > │ let v50 : float = Fable.Core.RustInterop.emitRustExpr () v49 │
00:01:48 #3645 [Verbose] > │ let v51 : float = method31(v48) │
00:01:48 #3646 [Verbose] > │ let v52 : float = method3(v51) │
00:01:48 #3647 [Verbose] > │ let v53 : float = method32(v50) │
00:01:48 #3648 [Verbose] > │ let v54 : string = "num_complex::Complex::new(v52, v53)" │
00:01:48 #3649 [Verbose] > │ let v55 : num_complex_Complex<float> = │
00:01:48 #3650 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v54 │
00:01:48 #3651 [Verbose] > │ let v58 : num_complex_Complex<float> = │
00:01:48 #3652 [Verbose] > │ match v46 with │
00:01:48 #3653 [Verbose] > │ | US0_0 -> (* None *) │
00:01:48 #3654 [Verbose] > │ v55 │
00:01:48 #3655 [Verbose] > │ | US0_1(v56) -> (* Some *) │
00:01:48 #3656 [Verbose] > │ v56 │
00:01:48 #3657 [Verbose] > │ let v59 : string = "v58.conj()" │
00:01:48 #3658 [Verbose] > │ let v60 : num_complex_Complex<float> = │
00:01:48 #3659 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v59 │
00:01:48 #3660 [Verbose] > │ let v61 : num_complex_Complex<float> = method13(v26) │
00:01:48 #3661 [Verbose] > │ let v62 : string = "v61.re" │
00:01:48 #3662 [Verbose] > │ let v63 : float = Fable.Core.RustInterop.emitRustExpr () v62 │
00:01:48 #3663 [Verbose] > │ let v64 : num_complex_Complex<float> = method13(v60) │
00:01:48 #3664 [Verbose] > │ let v65 : string = "v64.re" │
00:01:48 #3665 [Verbose] > │ let v66 : float = Fable.Core.RustInterop.emitRustExpr () v65 │
00:01:48 #3666 [Verbose] > │ let v67 : string = $"%A{v63}" │
00:01:48 #3667 [Verbose] > │ System.Console.WriteLine v67 │
00:01:48 #3668 [Verbose] > │ let v68 : bool = v63 = v66 │
00:01:48 #3669 [Verbose] > │ let v70 : bool = │
00:01:48 #3670 [Verbose] > │ if v68 then │
00:01:48 #3671 [Verbose] > │ true │
00:01:48 #3672 [Verbose] > │ else │
00:01:48 #3673 [Verbose] > │ method43(v68) │
00:01:48 #3674 [Verbose] > │ let v71 : string = $"__expect / actual: %A{v63} / expected: %A{v66}" │
00:01:48 #3675 [Verbose] > │ let v72 : bool = v70 = false │
00:01:48 #3676 [Verbose] > │ if v72 then │
00:01:48 #3677 [Verbose] > │ failwith<unit> v71 │
00:01:48 #3678 [Verbose] > │ let v73 : num_complex_Complex<float> = method14(v26) │
00:01:48 #3679 [Verbose] > │ let v74 : string = "v73.im" │
00:01:48 #3680 [Verbose] > │ let v75 : float = Fable.Core.RustInterop.emitRustExpr () v74 │
00:01:48 #3681 [Verbose] > │ let v76 : num_complex_Complex<float> = method14(v60) │
00:01:48 #3682 [Verbose] > │ let v77 : string = "v76.im" │
00:01:48 #3683 [Verbose] > │ let v78 : float = Fable.Core.RustInterop.emitRustExpr () v77 │
00:01:48 #3684 [Verbose] > │ let v79 : string = $"%A{v75}" │
00:01:48 #3685 [Verbose] > │ System.Console.WriteLine v79 │
00:01:48 #3686 [Verbose] > │ let v80 : bool = v75 = v78 │
00:01:48 #3687 [Verbose] > │ let v82 : bool = │
00:01:48 #3688 [Verbose] > │ if v80 then │
00:01:48 #3689 [Verbose] > │ true │
00:01:48 #3690 [Verbose] > │ else │
00:01:48 #3691 [Verbose] > │ method43(v80) │
00:01:48 #3692 [Verbose] > │ let v83 : string = $"__expect / actual: %A{v75} / expected: %A{v78}" │
00:01:48 #3693 [Verbose] > │ let v84 : bool = v82 = false │
00:01:48 #3694 [Verbose] > │ if v84 then │
00:01:48 #3695 [Verbose] > │ failwith<unit> v83 │
00:01:48 #3696 [Verbose] > │ and method68 () : unit = │
00:01:48 #3697 [Verbose] > │ let v0 : string = "pyo3::prepare_freethreaded_python()" │
00:01:48 #3698 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v0 │
00:01:48 #3699 [Verbose] > │ let v1 : string = "let __result = pyo3::Python::with_gil(|py| -> │
00:01:48 #3700 [Verbose] > │ pyo3::PyResult<()> { //" │
00:01:48 #3701 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v1 │
00:01:48 #3702 [Verbose] > │ let v2 : string = "py" │
00:01:48 #3703 [Verbose] > │ let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2 │
00:01:48 #3704 [Verbose] > │ method69(v3) │
00:01:48 #3705 [Verbose] > │ let v4 : Result<unit, pyo3_PyErr> = Ok () │
00:01:48 #3706 [Verbose] > │ let v5 : Result<unit, pyo3_PyErr> = method44(v4) │
00:01:48 #3707 [Verbose] > │ let v6 : string = "v5 }})" │
00:01:48 #3708 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v6 │
00:01:48 #3709 [Verbose] > │ let v7 : string = "{ //" │
00:01:48 #3710 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:01:48 #3711 [Verbose] > │ let v8 : string = "__result" │
00:01:48 #3712 [Verbose] > │ let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr │
00:01:48 #3713 [Verbose] > │ () v8 │
00:01:48 #3714 [Verbose] > │ let v10 : Result<unit, pyo3_PyErr> = method45(v9) │
00:01:48 #3715 [Verbose] > │ let v11 : string = "v10.unwrap()" │
00:01:48 #3716 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11 │
00:01:48 #3717 [Verbose] > │ () │
00:01:48 #3718 [Verbose] > │ and method73 () : float = │
00:01:48 #3719 [Verbose] > │ 0.01 │
00:01:48 #3720 [Verbose] > │ and method74 () : float = │
00:01:48 #3721 [Verbose] > │ 0.01 │
00:01:48 #3722 [Verbose] > │ and method72 (v0 : pyo3_Python) : unit = │
00:01:48 #3723 [Verbose] > │ let v1 : float = method73() │
00:01:48 #3724 [Verbose] > │ let v2 : float = method3(v1) │
00:01:48 #3725 [Verbose] > │ let v3 : float = method74() │
00:01:48 #3726 [Verbose] > │ let v4 : string = "num_complex::Complex::new(v2, v3)" │
00:01:48 #3727 [Verbose] > │ let v5 : num_complex_Complex<float> = │
00:01:48 #3728 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v4 │
00:01:48 #3729 [Verbose] > │ let v6 : string = $" s = mpmath.zeta(s)" │
00:01:48 #3730 [Verbose] > │ let v7 : num_complex_Complex<float> = method8(v5) │
00:01:48 #3731 [Verbose] > │ let v8 : Result<num_complex_Complex<float>, std_string_String> = │
00:01:48 #3732 [Verbose] > │ method9(v0, v6, v7) │
00:01:48 #3733 [Verbose] > │ let v9 : num_complex_Complex<float> = method33(v0, v5) │
00:01:48 #3734 [Verbose] > │ let v10 : string = "v8.ok()" │
00:01:48 #3735 [Verbose] > │ let v11 : num_complex_Complex<float> option = │
00:01:48 #3736 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v10 │
00:01:48 #3737 [Verbose] > │ let v12 : (num_complex_Complex<float> -> US0) = closure5() │
00:01:48 #3738 [Verbose] > │ let v13 : US0 = US0_0 │
00:01:48 #3739 [Verbose] > │ let v14 : US0 = v11 |> Option.map v12 |> Option.defaultValue v13 │
00:01:48 #3740 [Verbose] > │ let v15 : string = "f64::NAN" │
00:01:48 #3741 [Verbose] > │ let v16 : float = Fable.Core.RustInterop.emitRustExpr () v15 │
00:01:48 #3742 [Verbose] > │ let v17 : string = "f64::NAN" │
00:01:48 #3743 [Verbose] > │ let v18 : float = Fable.Core.RustInterop.emitRustExpr () v17 │
00:01:48 #3744 [Verbose] > │ let v19 : float = method31(v16) │
00:01:48 #3745 [Verbose] > │ let v20 : float = method3(v19) │
00:01:48 #3746 [Verbose] > │ let v21 : float = method32(v18) │
00:01:48 #3747 [Verbose] > │ let v22 : string = "num_complex::Complex::new(v20, v21)" │
00:01:48 #3748 [Verbose] > │ let v23 : num_complex_Complex<float> = │
00:01:48 #3749 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v22 │
00:01:48 #3750 [Verbose] > │ let v26 : num_complex_Complex<float> = │
00:01:48 #3751 [Verbose] > │ match v14 with │
00:01:48 #3752 [Verbose] > │ | US0_0 -> (* None *) │
00:01:48 #3753 [Verbose] > │ v23 │
00:01:48 #3754 [Verbose] > │ | US0_1(v24) -> (* Some *) │
00:01:48 #3755 [Verbose] > │ v24 │
00:01:48 #3756 [Verbose] > │ let v27 : num_complex_Complex<float> = method13(v26) │
00:01:48 #3757 [Verbose] > │ let v28 : string = "v27.re" │
00:01:48 #3758 [Verbose] > │ let v29 : float = Fable.Core.RustInterop.emitRustExpr () v28 │
00:01:48 #3759 [Verbose] > │ let v30 : string = $"%A{v29}" │
00:01:48 #3760 [Verbose] > │ System.Console.WriteLine v30 │
00:01:48 #3761 [Verbose] > │ let v31 : bool = v29 < infinity │
00:01:48 #3762 [Verbose] > │ let v33 : bool = │
00:01:48 #3763 [Verbose] > │ if v31 then │
00:01:48 #3764 [Verbose] > │ true │
00:01:48 #3765 [Verbose] > │ else │
00:01:48 #3766 [Verbose] > │ method43(v31) │
00:01:48 #3767 [Verbose] > │ let v34 : string = $"__expect / actual: %A{v29} / expected: │
00:01:48 #3768 [Verbose] > │ %A{infinity}" │
00:01:48 #3769 [Verbose] > │ let v35 : bool = v33 = false │
00:01:48 #3770 [Verbose] > │ if v35 then │
00:01:48 #3771 [Verbose] > │ failwith<unit> v34 │
00:01:48 #3772 [Verbose] > │ let v36 : num_complex_Complex<float> = method14(v26) │
00:01:48 #3773 [Verbose] > │ let v37 : string = "v36.im" │
00:01:48 #3774 [Verbose] > │ let v38 : float = Fable.Core.RustInterop.emitRustExpr () v37 │
00:01:48 #3775 [Verbose] > │ let v39 : string = $"%A{v38}" │
00:01:48 #3776 [Verbose] > │ System.Console.WriteLine v39 │
00:01:48 #3777 [Verbose] > │ let v40 : bool = v38 < infinity │
00:01:48 #3778 [Verbose] > │ let v42 : bool = │
00:01:48 #3779 [Verbose] > │ if v40 then │
00:01:48 #3780 [Verbose] > │ true │
00:01:48 #3781 [Verbose] > │ else │
00:01:48 #3782 [Verbose] > │ method43(v40) │
00:01:48 #3783 [Verbose] > │ let v43 : string = $"__expect / actual: %A{v38} / expected: │
00:01:48 #3784 [Verbose] > │ %A{infinity}" │
00:01:48 #3785 [Verbose] > │ let v44 : bool = v42 = false │
00:01:48 #3786 [Verbose] > │ if v44 then │
00:01:48 #3787 [Verbose] > │ failwith<unit> v43 │
00:01:48 #3788 [Verbose] > │ and method71 () : unit = │
00:01:48 #3789 [Verbose] > │ let v0 : string = "pyo3::prepare_freethreaded_python()" │
00:01:48 #3790 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v0 │
00:01:48 #3791 [Verbose] > │ let v1 : string = "let __result = pyo3::Python::with_gil(|py| -> │
00:01:48 #3792 [Verbose] > │ pyo3::PyResult<()> { //" │
00:01:48 #3793 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v1 │
00:01:48 #3794 [Verbose] > │ let v2 : string = "py" │
00:01:48 #3795 [Verbose] > │ let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2 │
00:01:48 #3796 [Verbose] > │ method72(v3) │
00:01:48 #3797 [Verbose] > │ let v4 : Result<unit, pyo3_PyErr> = Ok () │
00:01:48 #3798 [Verbose] > │ let v5 : Result<unit, pyo3_PyErr> = method44(v4) │
00:01:48 #3799 [Verbose] > │ let v6 : string = "v5 }})" │
00:01:48 #3800 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v6 │
00:01:48 #3801 [Verbose] > │ let v7 : string = "{ //" │
00:01:48 #3802 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:01:48 #3803 [Verbose] > │ let v8 : string = "__result" │
00:01:48 #3804 [Verbose] > │ let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr │
00:01:48 #3805 [Verbose] > │ () v8 │
00:01:48 #3806 [Verbose] > │ let v10 : Result<unit, pyo3_PyErr> = method45(v9) │
00:01:48 #3807 [Verbose] > │ let v11 : string = "v10.unwrap()" │
00:01:48 #3808 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11 │
00:01:48 #3809 [Verbose] > │ () │
00:01:48 #3810 [Verbose] > │ and method77 () : (float []) = │
00:01:48 #3811 [Verbose] > │ let v0 : (float []) = [|10.0; 20.0; 30.0; 40.0; 50.0; 60.0; 70.0; 80.0; │
00:01:48 #3812 [Verbose] > │ 90.0; 100.0|] │
00:01:48 #3813 [Verbose] > │ let v1 : (float []) = method65(v0) │
00:01:48 #3814 [Verbose] > │ v1 │
00:01:48 #3815 [Verbose] > │ and method78 (v0 : bool) : bool = │
00:01:48 #3816 [Verbose] > │ let v1 : bool = v0 = false │
00:01:48 #3817 [Verbose] > │ v1 │
00:01:48 #3818 [Verbose] > │ and method76 (v0 : pyo3_Python) : unit = │
00:01:48 #3819 [Verbose] > │ let v1 : (float []) = method77() │
00:01:48 #3820 [Verbose] > │ let v2 : int32 = v1.Length │
00:01:48 #3821 [Verbose] > │ let v3 : Mut0 = {l0 = 0} : Mut0 │
00:01:48 #3822 [Verbose] > │ while method7(v2, v3) do │
00:01:48 #3823 [Verbose] > │ let v5 : int32 = v3.l0 │
00:01:48 #3824 [Verbose] > │ let v6 : float = v1.[int v5] │
00:01:48 #3825 [Verbose] > │ let v7 : float = method35() │
00:01:48 #3826 [Verbose] > │ let v8 : float = method3(v7) │
00:01:48 #3827 [Verbose] > │ let v9 : float = method32(v6) │
00:01:48 #3828 [Verbose] > │ let v10 : string = "num_complex::Complex::new(v8, v9)" │
00:01:48 #3829 [Verbose] > │ let v11 : num_complex_Complex<float> = │
00:01:48 #3830 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v10 │
00:01:48 #3831 [Verbose] > │ let v12 : string = $" s = mpmath.zeta(s)" │
00:01:48 #3832 [Verbose] > │ let v13 : num_complex_Complex<float> = method8(v11) │
00:01:48 #3833 [Verbose] > │ let v14 : Result<num_complex_Complex<float>, std_string_String> = │
00:01:48 #3834 [Verbose] > │ method9(v0, v12, v13) │
00:01:48 #3835 [Verbose] > │ let v15 : num_complex_Complex<float> = method33(v0, v11) │
00:01:48 #3836 [Verbose] > │ let v16 : string = "v14.ok()" │
00:01:48 #3837 [Verbose] > │ let v17 : num_complex_Complex<float> option = │
00:01:48 #3838 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v16 │
00:01:48 #3839 [Verbose] > │ let v18 : (num_complex_Complex<float> -> US0) = closure5() │
00:01:48 #3840 [Verbose] > │ let v19 : US0 = US0_0 │
00:01:48 #3841 [Verbose] > │ let v20 : US0 = v17 |> Option.map v18 |> Option.defaultValue v19 │
00:01:48 #3842 [Verbose] > │ let v21 : string = "f64::NAN" │
00:01:48 #3843 [Verbose] > │ let v22 : float = Fable.Core.RustInterop.emitRustExpr () v21 │
00:01:48 #3844 [Verbose] > │ let v23 : string = "f64::NAN" │
00:01:48 #3845 [Verbose] > │ let v24 : float = Fable.Core.RustInterop.emitRustExpr () v23 │
00:01:48 #3846 [Verbose] > │ let v25 : float = method31(v22) │
00:01:48 #3847 [Verbose] > │ let v26 : float = method3(v25) │
00:01:48 #3848 [Verbose] > │ let v27 : float = method32(v24) │
00:01:48 #3849 [Verbose] > │ let v28 : string = "num_complex::Complex::new(v26, v27)" │
00:01:48 #3850 [Verbose] > │ let v29 : num_complex_Complex<float> = │
00:01:48 #3851 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v28 │
00:01:48 #3852 [Verbose] > │ let v32 : num_complex_Complex<float> = │
00:01:48 #3853 [Verbose] > │ match v20 with │
00:01:48 #3854 [Verbose] > │ | US0_0 -> (* None *) │
00:01:48 #3855 [Verbose] > │ v29 │
00:01:48 #3856 [Verbose] > │ | US0_1(v30) -> (* Some *) │
00:01:48 #3857 [Verbose] > │ v30 │
00:01:48 #3858 [Verbose] > │ let v33 : num_complex_Complex<float> = method13(v32) │
00:01:48 #3859 [Verbose] > │ let v34 : string = "v33.re" │
00:01:48 #3860 [Verbose] > │ let v35 : float = Fable.Core.RustInterop.emitRustExpr () v34 │
00:01:48 #3861 [Verbose] > │ let v36 : string = $"%A{v35}" │
00:01:48 #3862 [Verbose] > │ System.Console.WriteLine v36 │
00:01:48 #3863 [Verbose] > │ let v37 : bool = v35 = 0.0 │
00:01:48 #3864 [Verbose] > │ let v38 : bool = method78(v37) │
00:01:48 #3865 [Verbose] > │ let v40 : bool = │
00:01:48 #3866 [Verbose] > │ if v38 then │
00:01:48 #3867 [Verbose] > │ true │
00:01:48 #3868 [Verbose] > │ else │
00:01:48 #3869 [Verbose] > │ method43(v38) │
00:01:48 #3870 [Verbose] > │ let v41 : string = $"__expect / actual: %A{v35} / expected: %A{0.0}" │
00:01:48 #3871 [Verbose] > │ let v42 : bool = v40 = false │
00:01:48 #3872 [Verbose] > │ if v42 then │
00:01:48 #3873 [Verbose] > │ failwith<unit> v41 │
00:01:48 #3874 [Verbose] > │ let v43 : num_complex_Complex<float> = method14(v32) │
00:01:48 #3875 [Verbose] > │ let v44 : string = "v43.im" │
00:01:48 #3876 [Verbose] > │ let v45 : float = Fable.Core.RustInterop.emitRustExpr () v44 │
00:01:48 #3877 [Verbose] > │ let v46 : string = $"%A{v45}" │
00:01:48 #3878 [Verbose] > │ System.Console.WriteLine v46 │
00:01:48 #3879 [Verbose] > │ let v47 : bool = v45 = 0.0 │
00:01:48 #3880 [Verbose] > │ let v48 : bool = method78(v47) │
00:01:48 #3881 [Verbose] > │ let v50 : bool = │
00:01:48 #3882 [Verbose] > │ if v48 then │
00:01:48 #3883 [Verbose] > │ true │
00:01:48 #3884 [Verbose] > │ else │
00:01:48 #3885 [Verbose] > │ method43(v48) │
00:01:48 #3886 [Verbose] > │ let v51 : string = $"__expect / actual: %A{v45} / expected: %A{0.0}" │
00:01:48 #3887 [Verbose] > │ let v52 : bool = v50 = false │
00:01:48 #3888 [Verbose] > │ if v52 then │
00:01:48 #3889 [Verbose] > │ failwith<unit> v51 │
00:01:48 #3890 [Verbose] > │ let v53 : int32 = v5 + 1 │
00:01:48 #3891 [Verbose] > │ v3.l0 <- v53 │
00:01:48 #3892 [Verbose] > │ () │
00:01:48 #3893 [Verbose] > │ () │
00:01:48 #3894 [Verbose] > │ and method75 () : unit = │
00:01:48 #3895 [Verbose] > │ let v0 : string = "pyo3::prepare_freethreaded_python()" │
00:01:48 #3896 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v0 │
00:01:48 #3897 [Verbose] > │ let v1 : string = "let __result = pyo3::Python::with_gil(|py| -> │
00:01:48 #3898 [Verbose] > │ pyo3::PyResult<()> { //" │
00:01:48 #3899 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v1 │
00:01:48 #3900 [Verbose] > │ let v2 : string = "py" │
00:01:48 #3901 [Verbose] > │ let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2 │
00:01:48 #3902 [Verbose] > │ method76(v3) │
00:01:48 #3903 [Verbose] > │ let v4 : Result<unit, pyo3_PyErr> = Ok () │
00:01:48 #3904 [Verbose] > │ let v5 : Result<unit, pyo3_PyErr> = method44(v4) │
00:01:48 #3905 [Verbose] > │ let v6 : string = "v5 }})" │
00:01:48 #3906 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v6 │
00:01:48 #3907 [Verbose] > │ let v7 : string = "{ //" │
00:01:48 #3908 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:01:48 #3909 [Verbose] > │ let v8 : string = "__result" │
00:01:48 #3910 [Verbose] > │ let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr │
00:01:48 #3911 [Verbose] > │ () v8 │
00:01:48 #3912 [Verbose] > │ let v10 : Result<unit, pyo3_PyErr> = method45(v9) │
00:01:48 #3913 [Verbose] > │ let v11 : string = "v10.unwrap()" │
00:01:48 #3914 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11 │
00:01:48 #3915 [Verbose] > │ () │
00:01:48 #3916 [Verbose] > │ and method81 () : float = │
00:01:48 #3917 [Verbose] > │ 0.75 │
00:01:48 #3918 [Verbose] > │ and method82 () : float = │
00:01:48 #3919 [Verbose] > │ 20.5 │
00:01:48 #3920 [Verbose] > │ and method83 () : float = │
00:01:48 #3921 [Verbose] > │ 1.25 │
00:01:48 #3922 [Verbose] > │ and method84 () : float = │
00:01:48 #3923 [Verbose] > │ 30.1 │
00:01:48 #3924 [Verbose] > │ and method85 () : float = │
00:01:48 #3925 [Verbose] > │ 0.25 │
00:01:48 #3926 [Verbose] > │ and method86 () : float = │
00:01:48 #3927 [Verbose] > │ 40.0 │
00:01:48 #3928 [Verbose] > │ and method87 () : float = │
00:01:48 #3929 [Verbose] > │ 50.0 │
00:01:48 #3930 [Verbose] > │ and method80 (v0 : pyo3_Python) : unit = │
00:01:48 #3931 [Verbose] > │ let v1 : float = method55() │
00:01:48 #3932 [Verbose] > │ let v2 : float = method3(v1) │
00:01:48 #3933 [Verbose] > │ let v3 : float = method56() │
00:01:48 #3934 [Verbose] > │ let v4 : string = "num_complex::Complex::new(v2, v3)" │
00:01:48 #3935 [Verbose] > │ let v5 : num_complex_Complex<float> = │
00:01:48 #3936 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v4 │
00:01:48 #3937 [Verbose] > │ let v6 : float = method81() │
00:01:48 #3938 [Verbose] > │ let v7 : float = method3(v6) │
00:01:48 #3939 [Verbose] > │ let v8 : float = method82() │
00:01:48 #3940 [Verbose] > │ let v9 : string = "num_complex::Complex::new(v7, v8)" │
00:01:48 #3941 [Verbose] > │ let v10 : num_complex_Complex<float> = │
00:01:48 #3942 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v9 │
00:01:48 #3943 [Verbose] > │ let v11 : float = method83() │
00:01:48 #3944 [Verbose] > │ let v12 : float = method3(v11) │
00:01:48 #3945 [Verbose] > │ let v13 : float = method84() │
00:01:48 #3946 [Verbose] > │ let v14 : string = "num_complex::Complex::new(v12, v13)" │
00:01:48 #3947 [Verbose] > │ let v15 : num_complex_Complex<float> = │
00:01:48 #3948 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v14 │
00:01:48 #3949 [Verbose] > │ let v16 : float = method85() │
00:01:48 #3950 [Verbose] > │ let v17 : float = method3(v16) │
00:01:48 #3951 [Verbose] > │ let v18 : float = method86() │
00:01:48 #3952 [Verbose] > │ let v19 : string = "num_complex::Complex::new(v17, v18)" │
00:01:48 #3953 [Verbose] > │ let v20 : num_complex_Complex<float> = │
00:01:48 #3954 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v19 │
00:01:48 #3955 [Verbose] > │ let v21 : float = method38() │
00:01:48 #3956 [Verbose] > │ let v22 : float = method3(v21) │
00:01:48 #3957 [Verbose] > │ let v23 : float = method87() │
00:01:48 #3958 [Verbose] > │ let v24 : string = "num_complex::Complex::new(v22, v23)" │
00:01:48 #3959 [Verbose] > │ let v25 : num_complex_Complex<float> = │
00:01:48 #3960 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v24 │
00:01:48 #3961 [Verbose] > │ let v26 : (num_complex_Complex<float> []) = [|v5; v10; v15; v20; v25|] │
00:01:48 #3962 [Verbose] > │ let v27 : (num_complex_Complex<float> []) = method62(v26) │
00:01:48 #3963 [Verbose] > │ let v28 : int32 = v27.Length │
00:01:48 #3964 [Verbose] > │ let v29 : Mut0 = {l0 = 0} : Mut0 │
00:01:48 #3965 [Verbose] > │ while method7(v28, v29) do │
00:01:48 #3966 [Verbose] > │ let v31 : int32 = v29.l0 │
00:01:48 #3967 [Verbose] > │ let v32 : num_complex_Complex<float> = v27.[int v31] │
00:01:48 #3968 [Verbose] > │ let v33 : string = $" s = mpmath.zeta(s)" │
00:01:48 #3969 [Verbose] > │ let v34 : num_complex_Complex<float> = method8(v32) │
00:01:48 #3970 [Verbose] > │ let v35 : Result<num_complex_Complex<float>, std_string_String> = │
00:01:48 #3971 [Verbose] > │ method9(v0, v33, v34) │
00:01:48 #3972 [Verbose] > │ let v36 : num_complex_Complex<float> = method33(v0, v32) │
00:01:48 #3973 [Verbose] > │ let v37 : string = "v35.ok()" │
00:01:48 #3974 [Verbose] > │ let v38 : num_complex_Complex<float> option = │
00:01:48 #3975 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v37 │
00:01:48 #3976 [Verbose] > │ let v39 : (num_complex_Complex<float> -> US0) = closure5() │
00:01:48 #3977 [Verbose] > │ let v40 : US0 = US0_0 │
00:01:48 #3978 [Verbose] > │ let v41 : US0 = v38 |> Option.map v39 |> Option.defaultValue v40 │
00:01:48 #3979 [Verbose] > │ let v42 : string = "f64::NAN" │
00:01:48 #3980 [Verbose] > │ let v43 : float = Fable.Core.RustInterop.emitRustExpr () v42 │
00:01:48 #3981 [Verbose] > │ let v44 : string = "f64::NAN" │
00:01:48 #3982 [Verbose] > │ let v45 : float = Fable.Core.RustInterop.emitRustExpr () v44 │
00:01:48 #3983 [Verbose] > │ let v46 : float = method31(v43) │
00:01:48 #3984 [Verbose] > │ let v47 : float = method3(v46) │
00:01:48 #3985 [Verbose] > │ let v48 : float = method32(v45) │
00:01:48 #3986 [Verbose] > │ let v49 : string = "num_complex::Complex::new(v47, v48)" │
00:01:48 #3987 [Verbose] > │ let v50 : num_complex_Complex<float> = │
00:01:48 #3988 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v49 │
00:01:48 #3989 [Verbose] > │ let v53 : num_complex_Complex<float> = │
00:01:48 #3990 [Verbose] > │ match v41 with │
00:01:48 #3991 [Verbose] > │ | US0_0 -> (* None *) │
00:01:48 #3992 [Verbose] > │ v50 │
00:01:48 #3993 [Verbose] > │ | US0_1(v51) -> (* Some *) │
00:01:48 #3994 [Verbose] > │ v51 │
00:01:48 #3995 [Verbose] > │ let v54 : num_complex_Complex<float> = method13(v53) │
00:01:48 #3996 [Verbose] > │ let v55 : string = "v54.re" │
00:01:48 #3997 [Verbose] > │ let v56 : float = Fable.Core.RustInterop.emitRustExpr () v55 │
00:01:48 #3998 [Verbose] > │ let v57 : string = $"%A{v56}" │
00:01:48 #3999 [Verbose] > │ System.Console.WriteLine v57 │
00:01:48 #4000 [Verbose] > │ let v58 : bool = v56 = 0.0 │
00:01:48 #4001 [Verbose] > │ let v59 : bool = method78(v58) │
00:01:48 #4002 [Verbose] > │ let v61 : bool = │
00:01:48 #4003 [Verbose] > │ if v59 then │
00:01:48 #4004 [Verbose] > │ true │
00:01:48 #4005 [Verbose] > │ else │
00:01:48 #4006 [Verbose] > │ method43(v59) │
00:01:48 #4007 [Verbose] > │ let v62 : string = $"__expect / actual: %A{v56} / expected: %A{0.0}" │
00:01:48 #4008 [Verbose] > │ let v63 : bool = v61 = false │
00:01:48 #4009 [Verbose] > │ if v63 then │
00:01:48 #4010 [Verbose] > │ failwith<unit> v62 │
00:01:48 #4011 [Verbose] > │ let v64 : num_complex_Complex<float> = method14(v53) │
00:01:48 #4012 [Verbose] > │ let v65 : string = "v64.im" │
00:01:48 #4013 [Verbose] > │ let v66 : float = Fable.Core.RustInterop.emitRustExpr () v65 │
00:01:48 #4014 [Verbose] > │ let v67 : string = $"%A{v66}" │
00:01:48 #4015 [Verbose] > │ System.Console.WriteLine v67 │
00:01:48 #4016 [Verbose] > │ let v68 : bool = v66 = 0.0 │
00:01:48 #4017 [Verbose] > │ let v69 : bool = method78(v68) │
00:01:48 #4018 [Verbose] > │ let v71 : bool = │
00:01:48 #4019 [Verbose] > │ if v69 then │
00:01:48 #4020 [Verbose] > │ true │
00:01:48 #4021 [Verbose] > │ else │
00:01:48 #4022 [Verbose] > │ method43(v69) │
00:01:48 #4023 [Verbose] > │ let v72 : string = $"__expect / actual: %A{v66} / expected: %A{0.0}" │
00:01:48 #4024 [Verbose] > │ let v73 : bool = v71 = false │
00:01:48 #4025 [Verbose] > │ if v73 then │
00:01:48 #4026 [Verbose] > │ failwith<unit> v72 │
00:01:48 #4027 [Verbose] > │ let v74 : int32 = v31 + 1 │
00:01:48 #4028 [Verbose] > │ v29.l0 <- v74 │
00:01:48 #4029 [Verbose] > │ () │
00:01:48 #4030 [Verbose] > │ () │
00:01:48 #4031 [Verbose] > │ and method79 () : unit = │
00:01:48 #4032 [Verbose] > │ let v0 : string = "pyo3::prepare_freethreaded_python()" │
00:01:48 #4033 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v0 │
00:01:48 #4034 [Verbose] > │ let v1 : string = "let __result = pyo3::Python::with_gil(|py| -> │
00:01:48 #4035 [Verbose] > │ pyo3::PyResult<()> { //" │
00:01:48 #4036 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v1 │
00:01:48 #4037 [Verbose] > │ let v2 : string = "py" │
00:01:48 #4038 [Verbose] > │ let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2 │
00:01:48 #4039 [Verbose] > │ method80(v3) │
00:01:48 #4040 [Verbose] > │ let v4 : Result<unit, pyo3_PyErr> = Ok () │
00:01:48 #4041 [Verbose] > │ let v5 : Result<unit, pyo3_PyErr> = method44(v4) │
00:01:48 #4042 [Verbose] > │ let v6 : string = "v5 }})" │
00:01:48 #4043 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v6 │
00:01:48 #4044 [Verbose] > │ let v7 : string = "{ //" │
00:01:48 #4045 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:01:48 #4046 [Verbose] > │ let v8 : string = "__result" │
00:01:48 #4047 [Verbose] > │ let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr │
00:01:48 #4048 [Verbose] > │ () v8 │
00:01:48 #4049 [Verbose] > │ let v10 : Result<unit, pyo3_PyErr> = method45(v9) │
00:01:48 #4050 [Verbose] > │ let v11 : string = "v10.unwrap()" │
00:01:48 #4051 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11 │
00:01:48 #4052 [Verbose] > │ () │
00:01:48 #4053 [Verbose] > │ and method90 () : float = │
00:01:48 #4054 [Verbose] > │ 3.0 │
00:01:48 #4055 [Verbose] > │ and method91 () : float = │
00:01:48 #4056 [Verbose] > │ 4.0 │
00:01:48 #4057 [Verbose] > │ and method92 () : float = │
00:01:48 #4058 [Verbose] > │ 2.5 │
00:01:48 #4059 [Verbose] > │ and method93 () : float = │
00:01:48 #4060 [Verbose] > │ -3.5 │
00:01:48 #4061 [Verbose] > │ and method94 () : float = │
00:01:48 #4062 [Verbose] > │ 1.5 │
00:01:48 #4063 [Verbose] > │ and method95 () : float = │
00:01:48 #4064 [Verbose] > │ 2.5 │
00:01:48 #4065 [Verbose] > │ and method89 (v0 : pyo3_Python) : unit = │
00:01:48 #4066 [Verbose] > │ let v1 : float = method90() │
00:01:48 #4067 [Verbose] > │ let v2 : float = method3(v1) │
00:01:48 #4068 [Verbose] > │ let v3 : float = method91() │
00:01:48 #4069 [Verbose] > │ let v4 : string = "num_complex::Complex::new(v2, v3)" │
00:01:48 #4070 [Verbose] > │ let v5 : num_complex_Complex<float> = │
00:01:48 #4071 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v4 │
00:01:48 #4072 [Verbose] > │ let v6 : float = method92() │
00:01:48 #4073 [Verbose] > │ let v7 : float = method3(v6) │
00:01:48 #4074 [Verbose] > │ let v8 : float = method93() │
00:01:48 #4075 [Verbose] > │ let v9 : string = "num_complex::Complex::new(v7, v8)" │
00:01:48 #4076 [Verbose] > │ let v10 : num_complex_Complex<float> = │
00:01:48 #4077 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v9 │
00:01:48 #4078 [Verbose] > │ let v11 : float = method94() │
00:01:48 #4079 [Verbose] > │ let v12 : float = method3(v11) │
00:01:48 #4080 [Verbose] > │ let v13 : float = method95() │
00:01:48 #4081 [Verbose] > │ let v14 : string = "num_complex::Complex::new(v12, v13)" │
00:01:48 #4082 [Verbose] > │ let v15 : num_complex_Complex<float> = │
00:01:48 #4083 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v14 │
00:01:48 #4084 [Verbose] > │ let v16 : float = method55() │
00:01:48 #4085 [Verbose] > │ let v17 : float = method3(v16) │
00:01:48 #4086 [Verbose] > │ let v18 : float = method56() │
00:01:48 #4087 [Verbose] > │ let v19 : string = "num_complex::Complex::new(v17, v18)" │
00:01:48 #4088 [Verbose] > │ let v20 : num_complex_Complex<float> = │
00:01:48 #4089 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v19 │
00:01:48 #4090 [Verbose] > │ let v21 : (num_complex_Complex<float> []) = [|v5; v10; v15; v20|] │
00:01:48 #4091 [Verbose] > │ let v22 : (num_complex_Complex<float> []) = method62(v21) │
00:01:48 #4092 [Verbose] > │ let v23 : int32 = v22.Length │
00:01:48 #4093 [Verbose] > │ let v24 : Mut0 = {l0 = 0} : Mut0 │
00:01:48 #4094 [Verbose] > │ while method7(v23, v24) do │
00:01:48 #4095 [Verbose] > │ let v26 : int32 = v24.l0 │
00:01:48 #4096 [Verbose] > │ let v27 : num_complex_Complex<float> = v22.[int v26] │
00:01:48 #4097 [Verbose] > │ let v28 : string = $" s = mpmath.zeta(s)" │
00:01:48 #4098 [Verbose] > │ let v29 : num_complex_Complex<float> = method8(v27) │
00:01:48 #4099 [Verbose] > │ let v30 : Result<num_complex_Complex<float>, std_string_String> = │
00:01:48 #4100 [Verbose] > │ method9(v0, v28, v29) │
00:01:48 #4101 [Verbose] > │ let v31 : num_complex_Complex<float> = method33(v0, v27) │
00:01:48 #4102 [Verbose] > │ let v32 : string = "v30.ok()" │
00:01:48 #4103 [Verbose] > │ let v33 : num_complex_Complex<float> option = │
00:01:48 #4104 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v32 │
00:01:48 #4105 [Verbose] > │ let v34 : (num_complex_Complex<float> -> US0) = closure5() │
00:01:48 #4106 [Verbose] > │ let v35 : US0 = US0_0 │
00:01:48 #4107 [Verbose] > │ let v36 : US0 = v33 |> Option.map v34 |> Option.defaultValue v35 │
00:01:48 #4108 [Verbose] > │ let v37 : string = "f64::NAN" │
00:01:48 #4109 [Verbose] > │ let v38 : float = Fable.Core.RustInterop.emitRustExpr () v37 │
00:01:48 #4110 [Verbose] > │ let v39 : string = "f64::NAN" │
00:01:48 #4111 [Verbose] > │ let v40 : float = Fable.Core.RustInterop.emitRustExpr () v39 │
00:01:48 #4112 [Verbose] > │ let v41 : float = method31(v38) │
00:01:48 #4113 [Verbose] > │ let v42 : float = method3(v41) │
00:01:48 #4114 [Verbose] > │ let v43 : float = method32(v40) │
00:01:48 #4115 [Verbose] > │ let v44 : string = "num_complex::Complex::new(v42, v43)" │
00:01:48 #4116 [Verbose] > │ let v45 : num_complex_Complex<float> = │
00:01:48 #4117 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v44 │
00:01:48 #4118 [Verbose] > │ let v48 : num_complex_Complex<float> = │
00:01:48 #4119 [Verbose] > │ match v36 with │
00:01:48 #4120 [Verbose] > │ | US0_0 -> (* None *) │
00:01:48 #4121 [Verbose] > │ v45 │
00:01:48 #4122 [Verbose] > │ | US0_1(v46) -> (* Some *) │
00:01:48 #4123 [Verbose] > │ v46 │
00:01:48 #4124 [Verbose] > │ let v49 : float = method2() │
00:01:48 #4125 [Verbose] > │ let v50 : float = method3(v49) │
00:01:48 #4126 [Verbose] > │ let v51 : float = method4() │
00:01:48 #4127 [Verbose] > │ let v52 : string = "num_complex::Complex::new(v50, v51)" │
00:01:48 #4128 [Verbose] > │ let v53 : num_complex_Complex<float> = │
00:01:48 #4129 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v52 │
00:01:48 #4130 [Verbose] > │ let v54 : num_complex_Complex<float> = method39(v53) │
00:01:48 #4131 [Verbose] > │ let v55 : num_complex_Complex<float> = method40(v27) │
00:01:48 #4132 [Verbose] > │ let v56 : string = "num_complex::Complex::powc(v54, v55)" │
00:01:48 #4133 [Verbose] > │ let v57 : num_complex_Complex<float> = │
00:01:48 #4134 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v56 │
00:01:48 #4135 [Verbose] > │ let v58 : float = method42() │
00:01:48 #4136 [Verbose] > │ let v59 : float = method3(v58) │
00:01:48 #4137 [Verbose] > │ let v60 : float = method4() │
00:01:48 #4138 [Verbose] > │ let v61 : string = "num_complex::Complex::new(v59, v60)" │
00:01:48 #4139 [Verbose] > │ let v62 : num_complex_Complex<float> = │
00:01:48 #4140 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v61 │
00:01:48 #4141 [Verbose] > │ let v63 : float = method38() │
00:01:48 #4142 [Verbose] > │ let v64 : float = method3(v63) │
00:01:48 #4143 [Verbose] > │ let v65 : float = method4() │
00:01:48 #4144 [Verbose] > │ let v66 : string = "num_complex::Complex::new(v64, v65)" │
00:01:48 #4145 [Verbose] > │ let v67 : num_complex_Complex<float> = │
00:01:48 #4146 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v66 │
00:01:48 #4147 [Verbose] > │ let v68 : string = "v27 - v67" │
00:01:48 #4148 [Verbose] > │ let v69 : num_complex_Complex<float> = │
00:01:48 #4149 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v68 │
00:01:48 #4150 [Verbose] > │ let v70 : num_complex_Complex<float> = method39(v62) │
00:01:48 #4151 [Verbose] > │ let v71 : num_complex_Complex<float> = method40(v69) │
00:01:48 #4152 [Verbose] > │ let v72 : string = "num_complex::Complex::powc(v70, v71)" │
00:01:48 #4153 [Verbose] > │ let v73 : num_complex_Complex<float> = │
00:01:48 #4154 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v72 │
00:01:48 #4155 [Verbose] > │ let v74 : string = "v57 * v73" │
00:01:48 #4156 [Verbose] > │ let v75 : num_complex_Complex<float> = │
00:01:49 #4157 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v74 │
00:01:49 #4158 [Verbose] > │ let v76 : float = method42() │
00:01:49 #4159 [Verbose] > │ let v77 : float = method3(v76) │
00:01:49 #4160 [Verbose] > │ let v78 : float = method4() │
00:01:49 #4161 [Verbose] > │ let v79 : string = "num_complex::Complex::new(v77, v78)" │
00:01:49 #4162 [Verbose] > │ let v80 : num_complex_Complex<float> = │
00:01:49 #4163 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v79 │
00:01:49 #4164 [Verbose] > │ let v81 : string = "v80 * v27" │
00:01:49 #4165 [Verbose] > │ let v82 : num_complex_Complex<float> = │
00:01:49 #4166 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v81 │
00:01:49 #4167 [Verbose] > │ let v83 : float = method2() │
00:01:49 #4168 [Verbose] > │ let v84 : float = method3(v83) │
00:01:49 #4169 [Verbose] > │ let v85 : float = method4() │
00:01:49 #4170 [Verbose] > │ let v86 : string = "num_complex::Complex::new(v84, v85)" │
00:01:49 #4171 [Verbose] > │ let v87 : num_complex_Complex<float> = │
00:01:49 #4172 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v86 │
00:01:49 #4173 [Verbose] > │ let v88 : string = "v82 / v87" │
00:01:49 #4174 [Verbose] > │ let v89 : num_complex_Complex<float> = │
00:01:49 #4175 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v88 │
00:01:49 #4176 [Verbose] > │ let v90 : string = "v89.sin()" │
00:01:49 #4177 [Verbose] > │ let v91 : num_complex_Complex<float> = │
00:01:49 #4178 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v90 │
00:01:49 #4179 [Verbose] > │ let v92 : string = "v75 * v91" │
00:01:49 #4180 [Verbose] > │ let v93 : num_complex_Complex<float> = │
00:01:49 #4181 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v92 │
00:01:49 #4182 [Verbose] > │ let v94 : float = method38() │
00:01:49 #4183 [Verbose] > │ let v95 : float = method3(v94) │
00:01:49 #4184 [Verbose] > │ let v96 : float = method4() │
00:01:49 #4185 [Verbose] > │ let v97 : string = "num_complex::Complex::new(v95, v96)" │
00:01:49 #4186 [Verbose] > │ let v98 : num_complex_Complex<float> = │
00:01:49 #4187 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v97 │
00:01:49 #4188 [Verbose] > │ let v99 : string = "v98 - v27" │
00:01:49 #4189 [Verbose] > │ let v100 : num_complex_Complex<float> = │
00:01:49 #4190 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v99 │
00:01:49 #4191 [Verbose] > │ let v101 : string = $" s = mpmath.gamma(s)" │
00:01:49 #4192 [Verbose] > │ let v102 : num_complex_Complex<float> = method8(v100) │
00:01:49 #4193 [Verbose] > │ let v103 : Result<num_complex_Complex<float>, std_string_String> = │
00:01:49 #4194 [Verbose] > │ method41(v0, v101, v102) │
00:01:49 #4195 [Verbose] > │ let v104 : string = "v103.ok()" │
00:01:49 #4196 [Verbose] > │ let v105 : num_complex_Complex<float> option = │
00:01:49 #4197 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v104 │
00:01:49 #4198 [Verbose] > │ let v106 : US0 = US0_0 │
00:01:49 #4199 [Verbose] > │ let v107 : US0 = v105 |> Option.map v34 |> Option.defaultValue v106 │
00:01:49 #4200 [Verbose] > │ let v108 : string = "f64::NAN" │
00:01:49 #4201 [Verbose] > │ let v109 : float = Fable.Core.RustInterop.emitRustExpr () v108 │
00:01:49 #4202 [Verbose] > │ let v110 : string = "f64::NAN" │
00:01:49 #4203 [Verbose] > │ let v111 : float = Fable.Core.RustInterop.emitRustExpr () v110 │
00:01:49 #4204 [Verbose] > │ let v112 : float = method31(v109) │
00:01:49 #4205 [Verbose] > │ let v113 : float = method3(v112) │
00:01:49 #4206 [Verbose] > │ let v114 : float = method32(v111) │
00:01:49 #4207 [Verbose] > │ let v115 : string = "num_complex::Complex::new(v113, v114)" │
00:01:49 #4208 [Verbose] > │ let v116 : num_complex_Complex<float> = │
00:01:49 #4209 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v115 │
00:01:49 #4210 [Verbose] > │ let v119 : num_complex_Complex<float> = │
00:01:49 #4211 [Verbose] > │ match v107 with │
00:01:49 #4212 [Verbose] > │ | US0_0 -> (* None *) │
00:01:49 #4213 [Verbose] > │ v116 │
00:01:49 #4214 [Verbose] > │ | US0_1(v117) -> (* Some *) │
00:01:49 #4215 [Verbose] > │ v117 │
00:01:49 #4216 [Verbose] > │ let v120 : string = "v93 * v119" │
00:01:49 #4217 [Verbose] > │ let v121 : num_complex_Complex<float> = │
00:01:49 #4218 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v120 │
00:01:49 #4219 [Verbose] > │ let v122 : num_complex_Complex<float> = method13(v27) │
00:01:49 #4220 [Verbose] > │ let v123 : string = "v122.re" │
00:01:49 #4221 [Verbose] > │ let v124 : float = Fable.Core.RustInterop.emitRustExpr () v123 │
00:01:49 #4222 [Verbose] > │ let v125 : float = 1.0 - v124 │
00:01:49 #4223 [Verbose] > │ let v126 : num_complex_Complex<float> = method14(v27) │
00:01:49 #4224 [Verbose] > │ let v127 : string = "v126.im" │
00:01:49 #4225 [Verbose] > │ let v128 : float = Fable.Core.RustInterop.emitRustExpr () v127 │
00:01:49 #4226 [Verbose] > │ let v129 : float = -v128 │
00:01:49 #4227 [Verbose] > │ let v130 : float = method31(v125) │
00:01:49 #4228 [Verbose] > │ let v131 : float = method3(v130) │
00:01:49 #4229 [Verbose] > │ let v132 : float = method32(v129) │
00:01:49 #4230 [Verbose] > │ let v133 : string = "num_complex::Complex::new(v131, v132)" │
00:01:49 #4231 [Verbose] > │ let v134 : num_complex_Complex<float> = │
00:01:49 #4232 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v133 │
00:01:49 #4233 [Verbose] > │ let v135 : string = $" s = mpmath.zeta(s)" │
00:01:49 #4234 [Verbose] > │ let v136 : num_complex_Complex<float> = method8(v134) │
00:01:49 #4235 [Verbose] > │ let v137 : Result<num_complex_Complex<float>, std_string_String> = │
00:01:49 #4236 [Verbose] > │ method9(v0, v135, v136) │
00:01:49 #4237 [Verbose] > │ let v138 : num_complex_Complex<float> = method33(v0, v134) │
00:01:49 #4238 [Verbose] > │ let v139 : string = "v137.ok()" │
00:01:49 #4239 [Verbose] > │ let v140 : num_complex_Complex<float> option = │
00:01:49 #4240 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v139 │
00:01:49 #4241 [Verbose] > │ let v141 : US0 = US0_0 │
00:01:49 #4242 [Verbose] > │ let v142 : US0 = v140 |> Option.map v34 |> Option.defaultValue v141 │
00:01:49 #4243 [Verbose] > │ let v143 : string = "f64::NAN" │
00:01:49 #4244 [Verbose] > │ let v144 : float = Fable.Core.RustInterop.emitRustExpr () v143 │
00:01:49 #4245 [Verbose] > │ let v145 : string = "f64::NAN" │
00:01:49 #4246 [Verbose] > │ let v146 : float = Fable.Core.RustInterop.emitRustExpr () v145 │
00:01:49 #4247 [Verbose] > │ let v147 : float = method31(v144) │
00:01:49 #4248 [Verbose] > │ let v148 : float = method3(v147) │
00:01:49 #4249 [Verbose] > │ let v149 : float = method32(v146) │
00:01:49 #4250 [Verbose] > │ let v150 : string = "num_complex::Complex::new(v148, v149)" │
00:01:49 #4251 [Verbose] > │ let v151 : num_complex_Complex<float> = │
00:01:49 #4252 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v150 │
00:01:49 #4253 [Verbose] > │ let v154 : num_complex_Complex<float> = │
00:01:49 #4254 [Verbose] > │ match v142 with │
00:01:49 #4255 [Verbose] > │ | US0_0 -> (* None *) │
00:01:49 #4256 [Verbose] > │ v151 │
00:01:49 #4257 [Verbose] > │ | US0_1(v152) -> (* Some *) │
00:01:49 #4258 [Verbose] > │ v152 │
00:01:49 #4259 [Verbose] > │ let v155 : string = "v121 * v154" │
00:01:49 #4260 [Verbose] > │ let v156 : num_complex_Complex<float> = │
00:01:49 #4261 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v155 │
00:01:49 #4262 [Verbose] > │ let v157 : num_complex_Complex<float> = method13(v48) │
00:01:49 #4263 [Verbose] > │ let v158 : string = "v157.re" │
00:01:49 #4264 [Verbose] > │ let v159 : float = Fable.Core.RustInterop.emitRustExpr () v158 │
00:01:49 #4265 [Verbose] > │ let v160 : num_complex_Complex<float> = method13(v156) │
00:01:49 #4266 [Verbose] > │ let v161 : string = "v160.re" │
00:01:49 #4267 [Verbose] > │ let v162 : float = Fable.Core.RustInterop.emitRustExpr () v161 │
00:01:49 #4268 [Verbose] > │ let v163 : float = v159 - v162 │
00:01:49 #4269 [Verbose] > │ let v164 : float = -v163 │
00:01:49 #4270 [Verbose] > │ let v165 : bool = v163 >= v164 │
00:01:49 #4271 [Verbose] > │ let v166 : float = │
00:01:49 #4272 [Verbose] > │ if v165 then │
00:01:49 #4273 [Verbose] > │ v163 │
00:01:49 #4274 [Verbose] > │ else │
00:01:49 #4275 [Verbose] > │ v164 │
00:01:49 #4276 [Verbose] > │ let v167 : string = $"%A{v166}" │
00:01:49 #4277 [Verbose] > │ System.Console.WriteLine v167 │
00:01:49 #4278 [Verbose] > │ let v168 : bool = v166 < 0.0001 │
00:01:49 #4279 [Verbose] > │ let v170 : bool = │
00:01:49 #4280 [Verbose] > │ if v168 then │
00:01:49 #4281 [Verbose] > │ true │
00:01:49 #4282 [Verbose] > │ else │
00:01:49 #4283 [Verbose] > │ method43(v168) │
00:01:49 #4284 [Verbose] > │ let v171 : string = $"__expect / actual: %A{v166} / expected: │
00:01:49 #4285 [Verbose] > │ %A{0.0001}" │
00:01:49 #4286 [Verbose] > │ let v172 : bool = v170 = false │
00:01:49 #4287 [Verbose] > │ if v172 then │
00:01:49 #4288 [Verbose] > │ failwith<unit> v171 │
00:01:49 #4289 [Verbose] > │ let v173 : num_complex_Complex<float> = method14(v48) │
00:01:49 #4290 [Verbose] > │ let v174 : string = "v173.im" │
00:01:49 #4291 [Verbose] > │ let v175 : float = Fable.Core.RustInterop.emitRustExpr () v174 │
00:01:49 #4292 [Verbose] > │ let v176 : num_complex_Complex<float> = method14(v156) │
00:01:49 #4293 [Verbose] > │ let v177 : string = "v176.im" │
00:01:49 #4294 [Verbose] > │ let v178 : float = Fable.Core.RustInterop.emitRustExpr () v177 │
00:01:49 #4295 [Verbose] > │ let v179 : float = v175 - v178 │
00:01:49 #4296 [Verbose] > │ let v180 : float = -v179 │
00:01:49 #4297 [Verbose] > │ let v181 : bool = v179 >= v180 │
00:01:49 #4298 [Verbose] > │ let v182 : float = │
00:01:49 #4299 [Verbose] > │ if v181 then │
00:01:49 #4300 [Verbose] > │ v179 │
00:01:49 #4301 [Verbose] > │ else │
00:01:49 #4302 [Verbose] > │ v180 │
00:01:49 #4303 [Verbose] > │ let v183 : string = $"%A{v182}" │
00:01:49 #4304 [Verbose] > │ System.Console.WriteLine v183 │
00:01:49 #4305 [Verbose] > │ let v184 : bool = v182 < 0.0001 │
00:01:49 #4306 [Verbose] > │ let v186 : bool = │
00:01:49 #4307 [Verbose] > │ if v184 then │
00:01:49 #4308 [Verbose] > │ true │
00:01:49 #4309 [Verbose] > │ else │
00:01:49 #4310 [Verbose] > │ method43(v184) │
00:01:49 #4311 [Verbose] > │ let v187 : string = $"__expect / actual: %A{v182} / expected: │
00:01:49 #4312 [Verbose] > │ %A{0.0001}" │
00:01:49 #4313 [Verbose] > │ let v188 : bool = v186 = false │
00:01:49 #4314 [Verbose] > │ if v188 then │
00:01:49 #4315 [Verbose] > │ failwith<unit> v187 │
00:01:49 #4316 [Verbose] > │ let v189 : int32 = v26 + 1 │
00:01:49 #4317 [Verbose] > │ v24.l0 <- v189 │
00:01:49 #4318 [Verbose] > │ () │
00:01:49 #4319 [Verbose] > │ () │
00:01:49 #4320 [Verbose] > │ and method88 () : unit = │
00:01:49 #4321 [Verbose] > │ let v0 : string = "pyo3::prepare_freethreaded_python()" │
00:01:49 #4322 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v0 │
00:01:49 #4323 [Verbose] > │ let v1 : string = "let __result = pyo3::Python::with_gil(|py| -> │
00:01:49 #4324 [Verbose] > │ pyo3::PyResult<()> { //" │
00:01:49 #4325 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v1 │
00:01:49 #4326 [Verbose] > │ let v2 : string = "py" │
00:01:49 #4327 [Verbose] > │ let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2 │
00:01:49 #4328 [Verbose] > │ method89(v3) │
00:01:49 #4329 [Verbose] > │ let v4 : Result<unit, pyo3_PyErr> = Ok () │
00:01:49 #4330 [Verbose] > │ let v5 : Result<unit, pyo3_PyErr> = method44(v4) │
00:01:49 #4331 [Verbose] > │ let v6 : string = "v5 }})" │
00:01:49 #4332 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v6 │
00:01:49 #4333 [Verbose] > │ let v7 : string = "{ //" │
00:01:49 #4334 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:01:49 #4335 [Verbose] > │ let v8 : string = "__result" │
00:01:49 #4336 [Verbose] > │ let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr │
00:01:49 #4337 [Verbose] > │ () v8 │
00:01:49 #4338 [Verbose] > │ let v10 : Result<unit, pyo3_PyErr> = method45(v9) │
00:01:49 #4339 [Verbose] > │ let v11 : string = "v10.unwrap()" │
00:01:49 #4340 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11 │
00:01:49 #4341 [Verbose] > │ () │
00:01:49 #4342 [Verbose] > │ and method98 (v0 : int32, v1 : Mut3) : bool = │
00:01:49 #4343 [Verbose] > │ let v2 : int32 = v1.l0 │
00:01:49 #4344 [Verbose] > │ let v3 : bool = v2 < v0 │
00:01:49 #4345 [Verbose] > │ v3 │
00:01:49 #4346 [Verbose] > │ and method97 (v0 : pyo3_Python) : unit = │
00:01:49 #4347 [Verbose] > │ let v1 : (float []) = [|2.0; 2.5; 3.0; 3.5; 4.0; 4.5; 5.0|] │
00:01:49 #4348 [Verbose] > │ let v2 : (float []) = method65(v1) │
00:01:49 #4349 [Verbose] > │ let v3 : (float []) = [|2.0; 3.0; 5.0; 7.0; 11.0; 13.0; 17.0; 19.0; │
00:01:49 #4350 [Verbose] > │ 23.0; 29.0; 31.0; 37.0; 41.0; 43.0; 47.0; 53.0; 59.0; 61.0; 67.0; 71.0|] │
00:01:49 #4351 [Verbose] > │ let v4 : (float []) = method65(v3) │
00:01:49 #4352 [Verbose] > │ let v5 : int32 = v2.Length │
00:01:49 #4353 [Verbose] > │ let v6 : Mut0 = {l0 = 0} : Mut0 │
00:01:49 #4354 [Verbose] > │ while method7(v5, v6) do │
00:01:49 #4355 [Verbose] > │ let v8 : int32 = v6.l0 │
00:01:49 #4356 [Verbose] > │ let v9 : float = v2.[int v8] │
00:01:49 #4357 [Verbose] > │ let v10 : float = method31(v9) │
00:01:49 #4358 [Verbose] > │ let v11 : float = method3(v10) │
00:01:49 #4359 [Verbose] > │ let v12 : float = method4() │
00:01:49 #4360 [Verbose] > │ let v13 : string = "num_complex::Complex::new(v11, v12)" │
00:01:49 #4361 [Verbose] > │ let v14 : num_complex_Complex<float> = │
00:01:49 #4362 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v13 │
00:01:49 #4363 [Verbose] > │ let v15 : int32 = v4.Length │
00:01:49 #4364 [Verbose] > │ let v16 : Mut3 = {l0 = 0; l1 = 1.0} : Mut3 │
00:01:49 #4365 [Verbose] > │ while method98(v15, v16) do │
00:01:49 #4366 [Verbose] > │ let v18 : int32 = v16.l0 │
00:01:49 #4367 [Verbose] > │ let v19 : float = v16.l1 │
00:01:49 #4368 [Verbose] > │ let v20 : float = v4.[int v18] │
00:01:49 #4369 [Verbose] > │ let v21 : float = -v9 │
00:01:49 #4370 [Verbose] > │ let v22 : float = v20 ** v21 │
00:01:49 #4371 [Verbose] > │ let v23 : float = 1.0 - v22 │
00:01:49 #4372 [Verbose] > │ let v24 : float = v19 / v23 │
00:01:49 #4373 [Verbose] > │ let v25 : int32 = v18 + 1 │
00:01:49 #4374 [Verbose] > │ v16.l0 <- v25 │
00:01:49 #4375 [Verbose] > │ v16.l1 <- v24 │
00:01:49 #4376 [Verbose] > │ () │
00:01:49 #4377 [Verbose] > │ let v26 : float = v16.l1 │
00:01:49 #4378 [Verbose] > │ let v27 : string = $" s = mpmath.zeta(s)" │
00:01:49 #4379 [Verbose] > │ let v28 : num_complex_Complex<float> = method8(v14) │
00:01:49 #4380 [Verbose] > │ let v29 : Result<num_complex_Complex<float>, std_string_String> = │
00:01:49 #4381 [Verbose] > │ method9(v0, v27, v28) │
00:01:49 #4382 [Verbose] > │ let v30 : num_complex_Complex<float> = method33(v0, v14) │
00:01:49 #4383 [Verbose] > │ let v31 : string = "v29.ok()" │
00:01:49 #4384 [Verbose] > │ let v32 : num_complex_Complex<float> option = │
00:01:49 #4385 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v31 │
00:01:49 #4386 [Verbose] > │ let v33 : (num_complex_Complex<float> -> US0) = closure5() │
00:01:49 #4387 [Verbose] > │ let v34 : US0 = US0_0 │
00:01:49 #4388 [Verbose] > │ let v35 : US0 = v32 |> Option.map v33 |> Option.defaultValue v34 │
00:01:49 #4389 [Verbose] > │ let v36 : string = "f64::NAN" │
00:01:49 #4390 [Verbose] > │ let v37 : float = Fable.Core.RustInterop.emitRustExpr () v36 │
00:01:49 #4391 [Verbose] > │ let v38 : string = "f64::NAN" │
00:01:49 #4392 [Verbose] > │ let v39 : float = Fable.Core.RustInterop.emitRustExpr () v38 │
00:01:49 #4393 [Verbose] > │ let v40 : float = method31(v37) │
00:01:49 #4394 [Verbose] > │ let v41 : float = method3(v40) │
00:01:49 #4395 [Verbose] > │ let v42 : float = method32(v39) │
00:01:49 #4396 [Verbose] > │ let v43 : string = "num_complex::Complex::new(v41, v42)" │
00:01:49 #4397 [Verbose] > │ let v44 : num_complex_Complex<float> = │
00:01:49 #4398 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v43 │
00:01:49 #4399 [Verbose] > │ let v47 : num_complex_Complex<float> = │
00:01:49 #4400 [Verbose] > │ match v35 with │
00:01:49 #4401 [Verbose] > │ | US0_0 -> (* None *) │
00:01:49 #4402 [Verbose] > │ v44 │
00:01:49 #4403 [Verbose] > │ | US0_1(v45) -> (* Some *) │
00:01:49 #4404 [Verbose] > │ v45 │
00:01:49 #4405 [Verbose] > │ let v48 : num_complex_Complex<float> = method13(v47) │
00:01:49 #4406 [Verbose] > │ let v49 : string = "v48.re" │
00:01:49 #4407 [Verbose] > │ let v50 : float = Fable.Core.RustInterop.emitRustExpr () v49 │
00:01:49 #4408 [Verbose] > │ let v51 : float = v50 - v26 │
00:01:49 #4409 [Verbose] > │ let v52 : float = -v51 │
00:01:49 #4410 [Verbose] > │ let v53 : bool = v51 >= v52 │
00:01:49 #4411 [Verbose] > │ let v54 : float = │
00:01:49 #4412 [Verbose] > │ if v53 then │
00:01:49 #4413 [Verbose] > │ v51 │
00:01:49 #4414 [Verbose] > │ else │
00:01:49 #4415 [Verbose] > │ v52 │
00:01:49 #4416 [Verbose] > │ let v55 : string = $"%A{v54}" │
00:01:49 #4417 [Verbose] > │ System.Console.WriteLine v55 │
00:01:49 #4418 [Verbose] > │ let v56 : bool = v54 < 0.01 │
00:01:49 #4419 [Verbose] > │ let v58 : bool = │
00:01:49 #4420 [Verbose] > │ if v56 then │
00:01:49 #4421 [Verbose] > │ true │
00:01:49 #4422 [Verbose] > │ else │
00:01:49 #4423 [Verbose] > │ method43(v56) │
00:01:49 #4424 [Verbose] > │ let v59 : string = $"__expect / actual: %A{v54} / expected: │
00:01:49 #4425 [Verbose] > │ %A{0.01}" │
00:01:49 #4426 [Verbose] > │ let v60 : bool = v58 = false │
00:01:49 #4427 [Verbose] > │ if v60 then │
00:01:49 #4428 [Verbose] > │ failwith<unit> v59 │
00:01:49 #4429 [Verbose] > │ let v61 : num_complex_Complex<float> = method14(v47) │
00:01:49 #4430 [Verbose] > │ let v62 : string = "v61.im" │
00:01:49 #4431 [Verbose] > │ let v63 : float = Fable.Core.RustInterop.emitRustExpr () v62 │
00:01:49 #4432 [Verbose] > │ let v64 : string = $"%A{v63}" │
00:01:49 #4433 [Verbose] > │ System.Console.WriteLine v64 │
00:01:49 #4434 [Verbose] > │ let v65 : bool = v63 < 0.01 │
00:01:49 #4435 [Verbose] > │ let v67 : bool = │
00:01:49 #4436 [Verbose] > │ if v65 then │
00:01:49 #4437 [Verbose] > │ true │
00:01:49 #4438 [Verbose] > │ else │
00:01:49 #4439 [Verbose] > │ method43(v65) │
00:01:49 #4440 [Verbose] > │ let v68 : string = $"__expect / actual: %A{v63} / expected: │
00:01:49 #4441 [Verbose] > │ %A{0.01}" │
00:01:49 #4442 [Verbose] > │ let v69 : bool = v67 = false │
00:01:49 #4443 [Verbose] > │ if v69 then │
00:01:49 #4444 [Verbose] > │ failwith<unit> v68 │
00:01:49 #4445 [Verbose] > │ let v70 : int32 = v8 + 1 │
00:01:49 #4446 [Verbose] > │ v6.l0 <- v70 │
00:01:49 #4447 [Verbose] > │ () │
00:01:49 #4448 [Verbose] > │ () │
00:01:49 #4449 [Verbose] > │ and method96 () : unit = │
00:01:49 #4450 [Verbose] > │ let v0 : string = "pyo3::prepare_freethreaded_python()" │
00:01:49 #4451 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v0 │
00:01:49 #4452 [Verbose] > │ let v1 : string = "let __result = pyo3::Python::with_gil(|py| -> │
00:01:49 #4453 [Verbose] > │ pyo3::PyResult<()> { //" │
00:01:49 #4454 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v1 │
00:01:49 #4455 [Verbose] > │ let v2 : string = "py" │
00:01:49 #4456 [Verbose] > │ let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2 │
00:01:49 #4457 [Verbose] > │ method97(v3) │
00:01:49 #4458 [Verbose] > │ let v4 : Result<unit, pyo3_PyErr> = Ok () │
00:01:49 #4459 [Verbose] > │ let v5 : Result<unit, pyo3_PyErr> = method44(v4) │
00:01:49 #4460 [Verbose] > │ let v6 : string = "v5 }})" │
00:01:49 #4461 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v6 │
00:01:49 #4462 [Verbose] > │ let v7 : string = "{ //" │
00:01:49 #4463 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:01:49 #4464 [Verbose] > │ let v8 : string = "__result" │
00:01:49 #4465 [Verbose] > │ let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr │
00:01:49 #4466 [Verbose] > │ () v8 │
00:01:49 #4467 [Verbose] > │ let v10 : Result<unit, pyo3_PyErr> = method45(v9) │
00:01:49 #4468 [Verbose] > │ let v11 : string = "v10.unwrap()" │
00:01:49 #4469 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11 │
00:01:49 #4470 [Verbose] > │ () │
00:01:49 #4471 [Verbose] > │ and closure0 () () : unit = │
00:01:49 #4472 [Verbose] > │ let v0 : string = "}//" │
00:01:49 #4473 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v0 │
00:01:49 #4474 [Verbose] > │ let v1 : string = "#[test] fn test_zeta_at_known_values_() { //" │
00:01:49 #4475 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v1 │
00:01:49 #4476 [Verbose] > │ method0() │
00:01:49 #4477 [Verbose] > │ let v2 : string = "} #[test] fn test_zeta_at_2_minus2() { //" │
00:01:49 #4478 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v2 │
00:01:49 #4479 [Verbose] > │ method46() │
00:01:49 #4480 [Verbose] > │ let v3 : string = "} #[test] fn test_trivial_zero_at_negative_even___() │
00:01:49 #4481 [Verbose] > │ { //" │
00:01:49 #4482 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v3 │
00:01:49 #4483 [Verbose] > │ method49() │
00:01:49 #4484 [Verbose] > │ let v4 : string = "} #[test] fn test_non_trivial_zero___() { //" │
00:01:49 #4485 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v4 │
00:01:49 #4486 [Verbose] > │ method53() │
00:01:49 #4487 [Verbose] > │ let v5 : string = "} #[test] fn test_real_part_greater_than_one___() { │
00:01:49 #4488 [Verbose] > │ //" │
00:01:49 #4489 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v5 │
00:01:49 #4490 [Verbose] > │ method63() │
00:01:49 #4491 [Verbose] > │ let v6 : string = "} #[test] fn test_zeta_at_1___() { //" │
00:01:49 #4492 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v6 │
00:01:49 #4493 [Verbose] > │ method66() │
00:01:49 #4494 [Verbose] > │ let v7 : string = "} #[test] fn test_symmetry_across_real_axis___() { │
00:01:49 #4495 [Verbose] > │ //" │
00:01:49 #4496 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:01:49 #4497 [Verbose] > │ method68() │
00:01:49 #4498 [Verbose] > │ let v8 : string = "} #[test] fn test_behavior_near_origin___() { //" │
00:01:49 #4499 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v8 │
00:01:49 #4500 [Verbose] > │ method71() │
00:01:49 #4501 [Verbose] > │ let v9 : string = "} #[test] fn test_imaginary_axis() { //" │
00:01:49 #4502 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v9 │
00:01:49 #4503 [Verbose] > │ method75() │
00:01:49 #4504 [Verbose] > │ let v10 : string = "} #[test] fn test_critical_strip() { //" │
00:01:49 #4505 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v10 │
00:01:49 #4506 [Verbose] > │ method79() │
00:01:49 #4507 [Verbose] > │ let v11 : string = "} #[test] fn │
00:01:49 #4508 [Verbose] > │ test_reflection_formula_for_specific_value() { //" │
00:01:49 #4509 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11 │
00:01:49 #4510 [Verbose] > │ method88() │
00:01:49 #4511 [Verbose] > │ let v12 : string = "} #[test] fn test_euler_product_formula() { //" │
00:01:49 #4512 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v12 │
00:01:49 #4513 [Verbose] > │ method96() │
00:01:49 #4514 [Verbose] > │ and closure6 () (v0 : (string [])) : int32 = │
00:01:49 #4515 [Verbose] > │ let v1 : string = $"value: {1}" │
00:01:49 #4516 [Verbose] > │ System.Console.WriteLine v1 │
00:01:49 #4517 [Verbose] > │ 0 │
00:01:49 #4518 [Verbose] > │ let v0 : (unit -> unit) = closure0() │
00:01:49 #4519 [Verbose] > │ let tests () = v0 () │
00:01:49 #4520 [Verbose] > │ let v1 : ((string []) -> int32) = closure6() │
00:01:49 #4521 [Verbose] > │ let main args = v1 args │
00:01:49 #4522 [Verbose] > │ () │
00:01:49 #4523 [Verbose] > │ │
00:01:49 #4524 [Verbose] > │ │
00:01:49 #4525 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:51 #4526 [Verbose] > [NbConvertApp] Converting notebook math.dib.ipynb to html
00:01:51 #4527 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:01:51 #4528 [Verbose] > validate(nb)
00:01:51 #4529 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:01:51 #4530 [Verbose] > return _pygments_highlight(
00:01:52 #4531 [Verbose] > [NbConvertApp] Writing 7437215 bytes to math.dib.html
00:01:53 #4532 [Debug] executeAsync / exitCode: 0 / output.Length: 333791
00:01:53 #4533 [Debug] main / executeCommand / exitCode: 0
00:00:00 #1 [Debug] writeDibCode / output: Spi / path: math.dib
00:00:00 #2 [Debug] parseDibCode / output: Spi / file: math.dib
00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60
00:00:00 #2 [Debug] runWithTimeoutChildAsync / timeout: 60
00:00:00 #3 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: [] / typeErrorCount: 0
00:00:00 #4 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: [] / typeErrorCount: 0
00:00:00 #5 [Debug] sendJson / port: 13805 / json: {"FileOpen":{"spiText":"// // # math\n\nopen testing\nopen rust_operators\n\ninl types () =\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022num_complex::Complex\u003C$0\u003E\\\u0022)\u003E] type num_complex_Complex\u003C\u0027T\u003E = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022pyo3::types::PyModule\\\u0022)\u003E] type pyo3_types_PyModule = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022pyo3::Bound\u003C$0\u003E\\\u0022)\u003E] type pyo3_Bound\u003C\u0027T\u003E = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022pyo3::Python\\\u0022)\u003E] type pyo3_Python = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022pyo3::PyAny\\\u0022)\u003E] type pyo3_PyAny = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022pyo3::PyErr\\\u0022)\u003E] type pyo3_PyErr = class end\u0022\n\ninl types () =\n rust.types ()\n sm\u0027.types ()\n types ()\n\n// // ## complex\n\nnominal complex t = $\u0022num_complex_Complex\u003C\u0060t\u003E\u0022\nnominal bound t = $\u0022pyo3_Bound\u003C\u0060t\u003E\u0022\nnominal python = $\u0022pyo3_Python\u0022\nnominal pymodule = $\u0022pyo3_types_PyModule\u0022\nnominal pyany = $\u0022pyo3_PyAny\u0022\nnominal pyerr = $\u0022pyo3_PyErr\u0022\n\ninl complex forall t. ((re : t), (im : t)) : complex t =\n inl re = join re\n inl re = join re\n inl im = join im\n !\\($\u0027\u0022num_complex::Complex::new(!re, !im)\u0022\u0027)\n\n// // ## complex_sin\n\ninl re forall t. (c : complex t) : t =\n inl c = join c\n !\\($\u0027\u0022!c.re\u0022\u0027)\n\ninl im forall t. (c : complex t) : t =\n inl c = join c\n !\\($\u0027\u0022!c.im\u0022\u0027)\n\ninl complex_unbox forall t. (c : complex t) =\n re c, im c\n\ninl (~.^) c = complex c\n\ninl complex_eq forall t. (a : complex t) (b : complex t) : bool =\n !\\($\u0027\u0022!a == !b\u0022\u0027)\n\ninl (.=) a b = complex_eq a b\n\ninstance equable complex t = complex_eq\n\ninl complex_add forall t. (a : complex t) (b : complex t) : complex t =\n !\\($\u0027\u0022!a \u002B !b\u0022\u0027)\n\ninl (.\u002B) a b = complex_add a b\n\ninl complex_sub forall t. (a : complex t) (b : complex t) : complex t =\n !\\($\u0027\u0022!a - !b\u0022\u0027)\n\ninl (.-) a b = complex_sub a b\n\ninl complex_mult forall t. (a : complex t) (b : complex t) : complex t =\n !\\($\u0027\u0022!a * !b\u0022\u0027)\n\ninl (.*) a b = complex_mult a b\n\ninl complex_div forall t. (a : complex t) (b : complex t) : complex t =\n !\\($\u0027\u0022!a / !b\u0022\u0027)\n\ninl (./) a b = complex_div a b\n\ninl powc forall t. (s : complex t) (c : complex t) : complex t =\n inl c = join c\n inl s = join s\n !\\($\u0027\u0022num_complex::Complex::powc(!c, !s)\u0022\u0027)\n\ninl (.**) a b = powc b a\n\ninl complex_sin forall t. (c : complex t) : complex t =\n !\\($\u0027\u0022!c.sin()\u0022\u0027)\n\ninl conj forall t. (c : complex t) : complex t =\n !\\($\u0027\u0022!c.conj()\u0022\u0027)\n\n// // ## zeta\n\ninl zeta log (gamma : complex f64 -\u003E complex f64) (s : complex f64) : complex f64 =\n inl rec zeta count gamma s =\n inl s = join s\n if log then\n !\\($\u0027\u0022println\\!(\\\\\\\u0022zeta / count: {:?} / s: {:?}\\\\\\\u0022, !count, !s)\u0022\u0027)\n if re s \u003E 1 then\n (.^(0, 0), (am.init 10000i32 id : a i32 _))\n ||\u003E am.fold fun acc n =\u003E\n acc .\u002B (.^(1, 0) ./ (.^(f64 n, 0) .** s))\n else\n inl gamma_term = gamma (.^(1, 0) .- s)\n inl sin_term = .^(pi, 0) .* s ./ .^(2, 0) |\u003E complex_sin\n inl one_minus_s = .^(1 - re s, -(im s))\n inl mirror_term =\n if re one_minus_s \u003C= 1\n then .^(0, 0)\n else\n if count \u003C= 3\n then zeta (count \u002B 1) gamma one_minus_s\n else one_minus_s\n inl reflection_formula =\n .^(2, 0) .* (.^(pi, 0) .** s) .* sin_term .* gamma_term .* mirror_term\n reflection_formula\n join zeta 0i32 gamma s\n\n// // ## eval\n\ninl module_from_code (py : python) (code : string) : _ (bound pymodule) _ =\n inl py = join py\n inl code = code |\u003E sm\u0027.as_str\n !\\($\u0027\u0022pyo3::types::PyModule::from_code_bound(!py, !code, \\\\\u0022\\\\\u0022, \\\\\u0022\\\\\u0022)\u0022\u0027)\n |\u003E resultm.map_error\u0027 fun (x : pyerr) =\u003E x |\u003E sm\u0027.format\u0027\n\ninl use_pyanymethods () =\n global \u0022Fable.Core.RustInterop.emitRustExpr () \\\u0022);\\nuse pyo3::prelude::PyAnyMethods;\\n//\\\u0022\u0022\n\ninl getattr (attr : string) (module : bound pymodule) : _ (bound pyany) _ =\n inl attr = attr |\u003E sm\u0027.as_str\n inl module = join module\n use_pyanymethods ()\n !\\($\u0027\u0022!module.getattr(!attr)\u0022\u0027)\n |\u003E resultm.map_error\u0027 fun (x : pyerr) =\u003E x |\u003E sm\u0027.format\u0027\n\ninl call forall t. (args : t) (module : bound pyany) : _ (bound pyany) _ =\n inl args = join args\n inl module = join module\n !\\($\u0027\u0022pyo3::prelude::PyAnyMethods::call(\u0026!module, ((*!args).0, *(*!args).1), None)\u0022\u0027)\n |\u003E resultm.map_error\u0027 fun (x : pyerr) =\u003E x |\u003E sm\u0027.format\u0027\n\ninl extract forall t. (result : bound pyany) : _ t _ =\n inl result = join result\n use_pyanymethods ()\n !\\($\u0027\u0022!result.extract()\u0022\u0027)\n |\u003E resultm.map_error\u0027 fun (x : pyerr) =\u003E x |\u003E sm\u0027.format\u0027\n\ninl eval py code (args : pair bool (pair f64 f64)) : _ (_ f64) sm\u0027.std_string =\n inl code =\n code\n |\u003E module_from_code py\n |\u003E resultm.unwrap\u0027\n inl fn =\n code\n |\u003E getattr \u0022fn\u0022\n |\u003E resultm.unwrap\u0027\n\n fn\n |\u003E call args\n |\u003E resultm.try\u0027\n |\u003E extract\n |\u003E resultm.try\u0027\n |\u003E complex\n |\u003E Ok\n |\u003E resultm.box\n\ninl call1_ log py s code =\n inl code = join (a code : _ i32 _) |\u003E sm\u0027.concat_array_trailing \u0022\\n\u0022\n \n inl s = new_pair (re s) (im s)\n inl args = new_pair log s\n\n eval py code args\n\ninl call1_ log name py s line =\n inl s = join s\n join\n ;[\n $\u0027$\u0022import sys\u0022\u0027\n $\u0027$\u0022import traceback\u0022\u0027\n $\u0027$\u0022import re\u0022\u0027\n $\u0027$\u0022count = 0\u0022\u0027\n $\u0027$\u0022memory_address_pattern = re.compile(r\\\u0027 at 0x[0-9a-fA-F]\u002B\\\u0027)\u0022\u0027\n $\u0027$\u0022def trace_calls(frame, event, arg):\u0022\u0027\n $\u0027$\u0022 global count\u0022\u0027\n $\u0027$\u0022 count \u002B= 1\u0022\u0027\n $\u0027$\u0022 if count \u003C 200:\u0022\u0027\n $\u0027$\u0022 try:\u0022\u0027\n $\u0027$\u0022 args = {{ k: v for k, v in frame.f_locals.items() if frame.f_code.co_name \\!= \\\u0027make_mpc\\\u0027 and k not in [\\\u0027ctx\\\u0027] and not callable(v) }}\u0022\u0027\n $\u0027$\u0022 args_str = \\\u0027, \\\u0027.join([ f\\\\\\\u0022{{k}}={{re.sub(memory_address_pattern, \\\u0027 at 0x\u003C?\u003E\\\u0027, repr(v))}}\\\\\\\u0022 for k, v in args.items() ])\u0022\u0027\n $\u0027$\u0022 print(f\\\\\\\u0022{{event}}({!name}) / f_code.co_name: {{frame.f_code.co_name}} / f_locals: {{args_str}} / f_lineno: {{frame.f_lineno}} / f_code.co_filename: {{frame.f_code.co_filename.split(\\\u0027site-packages\\\u0027)[-1]}} / f_back.f_lineno: {{ \\\u0027\\\u0027 if frame.f_back is None else frame.f_back.f_lineno }} / f_back.f_code.co_filename: {{ \\\u0027\\\u0027 if frame.f_back is None else frame.f_back.f_code.co_filename.split(\\\u0027site-packages\\\u0027)[-1] }} / arg: {{re.sub(memory_address_pattern, \\\u0027 at 0x\u003C?\u003E\\\u0027, repr(arg))}}\\\\\\\u0022, flush=True)\u0022\u0027\n $\u0027$\u0022 except ValueError as e:\u0022\u0027\n $\u0027$\u0022 print(f\\\u0027{!name} / e: {{e}}\\\u0027, flush=True)\u0022\u0027\n $\u0027$\u0022 return trace_calls\u0022\u0027\n $\u0027$\u0022import mpmath\u0022\u0027\n $\u0027$\u0022def fn(log, s):\u0022\u0027\n $\u0027$\u0022 global count\u0022\u0027\n $\u0027$\u0022 if log:\u0022\u0027\n $\u0027$\u0022 print(f\\\u0027{!name} / s: {{s}} / count: {{count}}\\\u0027, flush=True)\u0022\u0027\n $\u0027$\u0022 s = complex(*s)\u0022\u0027\n $\u0027$\u0022 try:\u0022\u0027\n $\u0027$\u0022 if log: sys.settrace(trace_calls)\u0022\u0027\n line\n $\u0027$\u0022 if log:\u0022\u0027\n $\u0027$\u0022 sys.settrace(None)\u0022\u0027\n $\u0027$\u0022 print(f\\\u0027{!name} / result: {{s}} / count: {{count}}\\\u0027, flush=True)\u0022\u0027\n $\u0027$\u0022 except ValueError as e:\u0022\u0027\n $\u0027$\u0022 if s.real == 1:\u0022\u0027\n $\u0027$\u0022 s = complex(float(\\\u0027inf\\\u0027), 0)\u0022\u0027\n $\u0027$\u0022 return (s.real, s.imag)\u0022\u0027\n ]\n |\u003E call1_ log py s\n\ninl gamma_ log py s =\n call1_ log \u0022gamma_\u0022 py s $\u0027$\u0022 s = mpmath.gamma(s)\u0022\u0027\n\ninl zeta_ log py s =\n call1_ log \u0022zeta_\u0022 py s $\u0027$\u0022 s = mpmath.zeta(s)\u0022\u0027\n\n// // ## run_test\n\ninl run_test log closure_fix (fn : (complex f64 -\u003E complex f64) * (complex f64 -\u003E complex f64) -\u003E ()) =\n inl fn_ (py : python) : resultm.result\u0027 () pyerr =\n inl nan () =\n !\\($\u0027\u0022f64::NAN\u0022\u0027)\n inl gamma__ = fun (s : complex f64) =\u003E\n inl result = gamma_ log py s\n if log then\n inl s = join s\n !\\($\u0027\u0022println\\!(\\\\\\\u0022gamma__ / s: {:?} / result: {:?}\\\\\\\u0022, !s, !result)\u0022\u0027)\n result |\u003E resultm.ok\u0027 |\u003E optionm\u0027.unbox |\u003E optionm\u0027.default_value .^(nan (), nan ())\n inl zeta__ = fun (s : complex f64) =\u003E\n inl result = zeta_ log py s\n\n inl z = zeta true gamma__ s\n\n if log then\n inl s = join s\n !\\($\u0027\u0022println\\!(\\\\\\\u0022zeta__ / s: {:?} / result: {:?} / z: {:?}\\\\\\\u0022, !s, !result, !z)\u0022\u0027)\n\n // re result - re x |\u003E abs\n // |\u003E _assert_lt 0.001\n\n // im result - im x |\u003E abs\n // |\u003E _assert_lt 0.001\n\n result |\u003E resultm.ok\u0027 |\u003E optionm\u0027.unbox |\u003E optionm\u0027.default_value .^(nan (), nan ())\n join fn (zeta__, gamma__)\n\n Ok ()\n |\u003E resultm.box\n \n join\n !\\($\u0027\u0022pyo3::prepare_freethreaded_python()\u0022\u0027) : ()\n\n !\\($\u0027\u0022let __result = pyo3::Python::with_gil(|py| -\u003E pyo3::PyResult\u003C()\u003E { //\u0022\u0027)\n\n let x\u0027 = fn_ (!\\($\u0027\u0022py\u0022\u0027) : python)\n inl x\u0027 = join x\u0027\n \n inl closure_fix = 2u8, 1u8\n x\u0027 |\u003E rust.fix_closure closure_fix\n\n (!\\($\u0027\u0022__result\u0022\u0027) : _ () pyerr)\n |\u003E resultm.unwrap\u0027\n\n// // ## test_zeta_at_known_values_\n\ninl test_zeta_at_known_values_ log = run_test log (3u8, 2u8) fun zeta, gamma =\u003E\n ;[\n .^(2, 0), pi ** 2 / 6\n .^(-1, 0), -1 / 12\n ]\n |\u003E fun x =\u003E a x : _ i32 _\n |\u003E am.iter fun s, e =\u003E\n inl result = zeta s\n\n result |\u003E im |\u003E _assert_eq 0\n re result - e |\u003E abs |\u003E _assert_lt 0.0001\n\n// // ## test_zeta_at_2_minus2\n\ninl test_zeta_at_2_minus2 log = run_test log (6u8, 5u8) fun zeta, gamma =\u003E\n inl s = .^(2, -2)\n inl result = zeta s\n\n (re result - 0.8673) |\u003E abs |\u003E _assert_lt 0.001\n (im result - 0.2750) |\u003E abs |\u003E _assert_lt 0.001\n\n// // ## test_trivial_zero_at_negative_even___\n\ninl test_trivial_zero_at_negative_even___ log = run_test log (2u8, 1u8) fun zeta, gamma =\u003E\n (join listm\u0027.init_series -2f64 -40 -2)\n |\u003E listm.iter fun n =\u003E\n inl s = .^(n, 0)\n inl result = zeta s\n\n result |\u003E re |\u003E _assert_eq 0\n result |\u003E im |\u003E _assert_eq 0\n\n// // ## test_non_trivial_zero___\n\ninl test_non_trivial_zero___ log = run_test log (3u8, 2u8) fun zeta, gamma =\u003E\n ;[\n .^(0.5, 14.134725)\n .^(0.5, 21.022040)\n .^(0.5, 25.010857)\n .^(0.5, 30.424876)\n .^(0.5, 32.935062)\n .^(0.5, 37.586178)\n ]\n |\u003E fun x =\u003E a x : _ i32 _\n |\u003E am.iter fun x =\u003E\n inl result = zeta x\n result |\u003E re |\u003E abs |\u003E _assert_lt 0.0001\n result |\u003E im |\u003E abs |\u003E _assert_lt 0.0001\n\n// // ## test_real_part_greater_than_one___\n\ninl test_real_part_greater_than_one___ log = run_test log (3u8, 2u8) fun zeta, gamma =\u003E\n inl points = ;[2; 3; 4; 5; 10; 20; 50]\n (a points : _ i32 _)\n |\u003E am.iter fun point =\u003E\n inl s = .^(point, 0)\n inl result = zeta s\n result |\u003E re |\u003E _assert_gt 0\n result |\u003E im |\u003E _assert_eq 0\n\n// // ## test_zeta_at_1___\n\ninl test_zeta_at_1___ log = run_test log (6u8, 5u8) fun zeta, gamma =\u003E\n inl s = .^(1, 0)\n inl result = zeta s\n result |\u003E re |\u003E _assert_eq limit.max\n result |\u003E im |\u003E _assert_eq 0\n\n// // ## test_symmetry_across_real_axis___\n\ninl test_symmetry_across_real_axis___ log = run_test log (8u8, 7u8) fun zeta, gamma =\u003E\n inl s = .^(2, 10)\n inl result_positive_im = zeta s\n inl result_negative_im = zeta .^(re s, -(im s))\n inl conj = result_negative_im |\u003E conj\n result_positive_im |\u003E re |\u003E _assert_eq (conj |\u003E re)\n result_positive_im |\u003E im |\u003E _assert_eq (conj |\u003E im)\n\n// // ## test_behavior_near_origin___\n\ninl test_behavior_near_origin___ log = run_test log (6u8, 5u8) fun zeta, gamma =\u003E\n inl s = .^(0.01, 0.01)\n inl result = zeta s\n result |\u003E re |\u003E _assert_lt limit.max\n result |\u003E im |\u003E _assert_lt limit.max\n\n// // ## test_imaginary_axis\n\ninl test_imaginary_axis log = run_test log (3u8, 2u8) fun zeta, gamma =\u003E\n (join a ;[10; 20; 30; 40; 50; 60; 70; 80; 90; 100] : _ i32 _)\n |\u003E am.iter fun s =\u003E\n inl s = .^(0, s)\n inl result = zeta s\n result |\u003E re |\u003E _assert_ne 0\n result |\u003E im |\u003E _assert_ne 0\n\n// // ## test_critical_strip\n\ninl test_critical_strip log = run_test log (3u8, 2u8) fun zeta, gamma =\u003E\n ;[\n .^(0.5, 14.134725)\n .^(0.75, 20.5)\n .^(1.25, 30.1)\n .^(0.25, 40.0)\n .^(1.0, 50.0)\n ]\n |\u003E fun x =\u003E a x : _ i32 _\n |\u003E am.iter fun s =\u003E\n inl result = zeta s\n result |\u003E re |\u003E _assert_ne 0\n result |\u003E im |\u003E _assert_ne 0\n\n// // ## test_reflection_formula_for_specific_value\n\ninl test_reflection_formula_for_specific_value log = run_test log (3u8, 2u8) fun zeta, gamma =\u003E\n ;[\n .^(3, 4)\n .^(2.5, -3.5)\n .^(1.5, 2.5)\n .^(0.5, 14.134725)\n ]\n |\u003E fun x =\u003E a x : _ i32 _\n |\u003E am.iter fun s =\u003E\n inl lhs = zeta s\n inl reflection_coefficient =\n (.^(2, 0) .** s)\n .* (.^(pi, 0) .** (s .- .^(1, 0)))\n .* (.^(pi, 0) .* s ./ .^(2, 0) |\u003E complex_sin)\n .* gamma (.^(1, 0) .- s)\n\n inl one_minus_s = .^(1 - re s, -(im s))\n inl rhs = reflection_coefficient .* zeta one_minus_s\n\n re lhs - re rhs |\u003E abs |\u003E _assert_lt 0.0001\n im lhs - im rhs |\u003E abs |\u003E _assert_lt 0.0001\n\n// // ## test_euler_product_formula\n\ninl test_euler_product_formula log = run_test log (3u8, 2u8) fun zeta, gamma =\u003E\n inl s_values = ;[2; 2.5; 3; 3.5; 4; 4.5; 5]\n inl primes = ;[2; 3; 5; 7; 11; 13; 17; 19; 23; 29; 31; 37; 41; 43; 47; 53; 59; 61; 67; 71]\n (a s_values : _ i32 _)\n |\u003E am.iter fun s_re =\u003E\n inl s = .^(s_re, 0)\n inl product =\n (1, (a primes : _ i32 _))\n ||\u003E am.fold fun acc x =\u003E\n acc * 1 / (1 - x ** -s_re)\n\n inl result = zeta s\n re result - product |\u003E abs |\u003E _assert_lt 0.01\n result |\u003E im |\u003E _assert_lt 0.01\n\n// // ## graph\n\n// // ## tests\n\ninl tests () =\n !\\($\u0027\u0022}//\u0022\u0027) : ()\n\n !\\($\u0027\u0022#[test] fn test_zeta_at_known_values_() { //\u0022\u0027) : ()\n test_zeta_at_known_values_ false\n !\\($\u0027\u0022} #[test] fn test_zeta_at_2_minus2() { //\u0022\u0027) : ()\n test_zeta_at_2_minus2 false\n !\\($\u0027\u0022} #[test] fn test_trivial_zero_at_negative_even___() { //\u0022\u0027) : ()\n test_trivial_zero_at_negative_even___ false\n !\\($\u0027\u0022} #[test] fn test_non_trivial_zero___() { //\u0022\u0027) : ()\n test_non_trivial_zero___ false\n !\\($\u0027\u0022} #[test] fn test_real_part_greater_than_one___() { //\u0022\u0027) : ()\n test_real_part_greater_than_one___ false\n !\\($\u0027\u0022} #[test] fn test_zeta_at_1___() { //\u0022\u0027) : ()\n test_zeta_at_1___ false\n !\\($\u0027\u0022} #[test] fn test_symmetry_across_real_axis___() { //\u0022\u0027) : ()\n test_symmetry_across_real_axis___ false\n !\\($\u0027\u0022} #[test] fn test_behavior_near_origin___() { //\u0022\u0027) : ()\n test_behavior_near_origin___ false\n !\\($\u0027\u0022} #[test] fn test_imaginary_axis() { //\u0022\u0027) : ()\n test_imaginary_axis false\n !\\($\u0027\u0022} #[test] fn test_critical_strip() { //\u0022\u0027) : ()\n test_critical_strip false\n !\\($\u0027\u0022} #[test] fn test_reflection_formula_for_specific_value() { //\u0022\u0027) : ()\n test_reflection_formula_for_specific_value false\n !\\($\u0027\u0022} #[test] fn test_euler_product_formula() { //\u0022\u0027) : ()\n test_euler_product_formula false\n\n// // rust=\n\ninl main (_args : array_base string) =\n inl value = 1i32\n console.write_line ($\u0022$\\\u0022value: {!value}\\\u0022\u0022 : string)\n 0i32\n\ninl main () =\n types ()\n $\u0022let tests () = !tests ()\u0022 : ()\n $\u0022let main args = !main args\u0022 : ()\n","uri":"file:///c:/home/git/polyglot/lib/math/math.spi"}} / result.Length:
00:00:00 #6 [Debug] sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/math/math.spi"}} / result.Length:
00:00:00 #7 [Debug] buildFile / takeWhileInclusive / fsxContent: [<Fable.Core.Erase; Fable.Core.Emit("Func0<$0>")>] type Func0<'T> = class end
[<Fable.Core.Erase; Fable.Core.Emit("Func1<$0, $1>")>] type Func0<'T, 'U> = class end
[<Fable.Core.Erase; Fable.Core.Emit("Box<$0>")>] type Box<'T> = class end
[<Fable.Core.Erase; Fable.Core.Emit("dyn $0")>] type Dyn<'T> = class end
[<Fable.Core.Erase; Fable.Core.Emit("Fn() -> $0")>] type Fn<'T> = class end
[<Fable.Core.Erase; Fable.Core.Emit("Fn()")>] type FnUnit = class end
[<Fable.Core.Erase; Fable.Core.Emit("FnOnce() -> $0")>] type FnOnce<'T> = class end
[<Fable.Core.Erase; Fable.Core.Emit("Fn($0, $1)")>] type ActionFn2<'T, 'U> = class end
[<Fable.Core.Erase; Fable.Core.Emit("impl $0")>] type Impl<'T> = class end
[<Fable.Core.Erase; Fable.Core.Emit("mut $0")>]... / errors: [] / typeErrorCount: 0
00:00:00 #8 [Debug] watchWithFilter / Disposing watch stream / filter: FileName, LastWrite
00:00:00 #1 [Debug] persistCodeProject / packages: [Fable.Core] / modules: [lib/spiral/common.fsx; lib/spiral/sm.fsx; lib/spiral/date_time.fsx; ... ] / name: math / code.Length: 141585
00:00:00 #2 [Debug] buildProject / fullPath: C:\home\git\polyglot\target\polyglot\builder\math\math.fsproj
00:00:00 #3 [Debug] executeAsync / options: { Command =
"dotnet publish "C:\home\git\polyglot\target/polyglot/builder\math\math.fsproj" --configuration Release --output "C:\home\git\polyglot\lib\math\dist" --runtime linux-x64"
WorkingDirectory = Some "C:\home\git\polyglot\target\polyglot\builder\math"
CancellationToken = None
OnLine = None }
00:00:00 #4 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f for .NET
00:00:01 #5 [Verbose] > Determining projects to restore...
00:00:01 #6 [Verbose] > Restored C:\home\git\polyglot\target\polyglot\builder\math\math.fsproj (in 370 ms).
00:00:01 #7 [Verbose] > C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.24101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\home\git\polyglot\target\polyglot\builder\math\math.fsproj]
00:00:07 #8 [Verbose] > math -> C:\home\git\polyglot\target\polyglot\builder\math\bin\Release\net9.0\linux-x64\math.dll
00:00:09 #9 [Verbose] > math -> C:\home\git\polyglot\lib\math\dist\
00:00:09 #10 [Debug] executeAsync / exitCode: 0 / output.Length: 664
00:00:09 #11 [Debug] executeAsync / options: { Command =
"dotnet publish "C:\home\git\polyglot\target/polyglot/builder\math\math.fsproj" --configuration Release --output "C:\home\git\polyglot\lib\math\dist" --runtime win-x64"
WorkingDirectory = Some "C:\home\git\polyglot\target\polyglot\builder\math"
CancellationToken = None
OnLine = None }
00:00:09 #12 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f for .NET
00:00:10 #13 [Verbose] > Determining projects to restore...
00:00:10 #14 [Verbose] > Restored C:\home\git\polyglot\target\polyglot\builder\math\math.fsproj (in 381 ms).
00:00:10 #15 [Verbose] > C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.24101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\home\git\polyglot\target\polyglot\builder\math\math.fsproj]
00:00:16 #16 [Verbose] > math -> C:\home\git\polyglot\target\polyglot\builder\math\bin\Release\net9.0\win-x64\math.dll
00:00:19 #17 [Verbose] > math -> C:\home\git\polyglot\lib\math\dist\
00:00:19 #18 [Debug] executeAsync / exitCode: 0 / output.Length: 662
Fable 4.14.0: F# to Rust compiler (status: alpha)
Thanks to the contributor! @cboudereau
Stand with Ukraine! https://standwithukraine.com.ua/
Parsing ..\..\target\polyglot\builder\math\math.fsproj...
Retrieving project options from cache, in case of issues run `dotnet fable clean` or try `--noCache` option.
Project and references (7 source files) parsed in 249ms
Started Fable compilation...
Fable compilation finished in 4057ms
.\..\spiral\file_system.fsx(60,0): (60,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\..\spiral\date_time.fsx(89,0): (89,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\..\spiral\common.fsx(95,0): (95,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\..\spiral\sm.fsx(280,0): (280,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\..\..\target\polyglot\builder\math\math.fs(35,0): (37,3) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
Compiling math v0.0.1 (C:\home\git\polyglot\lib\math)
Finished `release` profile [optimized] target(s) in 18.45s
Running unittests math.rs (C:\home\git\polyglot\target\release\deps\math-f2a6a71a99de57aa.exe)
running 12 tests
test module_b7a9935b::Math::test_symmetry_across_real_axis___ ... ok
test module_b7a9935b::Math::test_non_trivial_zero___ ... ok
test module_b7a9935b::Math::test_reflection_formula_for_specific_value ... ok
test module_b7a9935b::Math::test_euler_product_formula ... ok
test module_b7a9935b::Math::test_zeta_at_known_values_ ... ok
test module_b7a9935b::Math::test_zeta_at_1___ ... ok
test module_b7a9935b::Math::test_critical_strip ... ok
test module_b7a9935b::Math::test_behavior_near_origin___ ... ok
test module_b7a9935b::Math::test_real_part_greater_than_one___ ... ok
test module_b7a9935b::Math::test_zeta_at_2_minus2 ... ok
test module_b7a9935b::Math::test_imaginary_axis ... ok
test module_b7a9935b::Math::test_trivial_zero_at_negative_even___ ... ok
test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.47s
In [ ]:
{ . "$ScriptDir/../apps/scheduler/build.ps1" } | Invoke-Block
00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60
00:00:00 #2 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 Tasks.dib -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:00:02 #3 [Verbose] >
00:00:02 #4 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:02 #5 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:02 #6 [Verbose] > │ ## Tasks (Polyglot) │
00:00:02 #7 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:02 #8 [Verbose] >
00:00:02 #9 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:02 #10 [Verbose] > // // test
00:00:02 #11 [Verbose] >
00:00:02 #12 [Verbose] > open testing
00:00:06 #13 [Verbose] >
00:00:06 #14 [Verbose] > ╭─[ 3.71s - stdout ]───────────────────────────────────────────────────────────╮
00:00:06 #15 [Verbose] > │ () │
00:00:06 #16 [Verbose] > │ │
00:00:06 #17 [Verbose] > │ │
00:00:06 #18 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:06 #19 [Verbose] >
00:00:06 #20 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:06 #21 [Verbose] > inl types () =
00:00:06 #22 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::string::String\")>]]
00:00:06 #23 [Verbose] > type std_string_String = class end"
00:00:06 #24 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"&$0\")>]] type Ref<'T> =
00:00:06 #25 [Verbose] > class end"
00:00:06 #26 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"str\")>]] type Str = class
00:00:06 #27 [Verbose] > end"
00:00:06 #28 [Verbose] >
00:00:06 #29 [Verbose] > inl emit_expr forall a t. (args : a) (code : string) : t =
00:00:06 #30 [Verbose] > real
00:00:06 #31 [Verbose] > $"Fable.Core.RustInterop.emitRustExpr !args !code" : t
00:00:06 #32 [Verbose] >
00:00:06 #33 [Verbose] >
00:00:06 #34 [Verbose] > nominal std_string = $"std_string_String"
00:00:06 #35 [Verbose] > nominal ref' t = $"Ref<`t>"
00:00:06 #36 [Verbose] > nominal str = $"Str"
00:00:06 #37 [Verbose] >
00:00:06 #38 [Verbose] > inl format_debug forall t. (x : t) : std_string =
00:00:06 #39 [Verbose] > real
00:00:06 #40 [Verbose] > emit_expr `t `std_string x "format!(\"{:?}\", $0)"
00:00:06 #41 [Verbose] >
00:00:06 #42 [Verbose] > inl format_pretty forall t. (x : t) : std_string =
00:00:06 #43 [Verbose] > real
00:00:06 #44 [Verbose] > emit_expr `t `std_string x "format!(\"{:#?}\", $0)"
00:00:06 #45 [Verbose] >
00:00:06 #46 [Verbose] > inl to_std_string (str : ref' str) : std_string =
00:00:06 #47 [Verbose] > // inl str = join str
00:00:06 #48 [Verbose] > // // emit_expr () $"\"!str.to_string()\""
00:00:06 #49 [Verbose] > // // emit_expr () $"\"alloc::string::to_string(!str)\""
00:00:06 #50 [Verbose] > // emit_expr str "($0).to_string()"
00:00:06 #51 [Verbose] > emit_expr str $"\"String::from(core::ops::Deref::deref($0))\""
00:00:06 #52 [Verbose] > // emit_expr str $"\"String::from(*$0)\""
00:00:06 #53 [Verbose] > // emit_expr () $"\"String::from(!str)\""
00:00:06 #54 [Verbose] >
00:00:06 #55 [Verbose] > inl format forall t. (x : t) : std_string =
00:00:06 #56 [Verbose] > real
00:00:06 #57 [Verbose] > inl result : std_string =
00:00:06 #58 [Verbose] > typecase t with
00:00:06 #59 [Verbose] > | string => to_std_string x
00:00:06 #60 [Verbose] > | std_string => x
00:00:06 #61 [Verbose] > | _ => format_pretty `t x
00:00:06 #62 [Verbose] > result
00:00:06 #63 [Verbose] >
00:00:06 #64 [Verbose] > inl raw_string_literal (s : string) : ref' str =
00:00:06 #65 [Verbose] > emit_expr () $"\"r#\\\"\" + !s + \"\\\"#\""
00:00:06 #66 [Verbose] >
00:00:06 #67 [Verbose] > inl (~#) (s : string) : ref' str =
00:00:06 #68 [Verbose] > raw_string_literal s
00:00:06 #69 [Verbose] >
00:00:06 #70 [Verbose] > ╭─[ 303.98ms - stdout ]────────────────────────────────────────────────────────╮
00:00:06 #71 [Verbose] > │ () │
00:00:06 #72 [Verbose] > │ │
00:00:06 #73 [Verbose] > │ │
00:00:06 #74 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:06 #75 [Verbose] >
00:00:06 #76 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:06 #77 [Verbose] > nominal task_name = string
00:00:06 #78 [Verbose] >
00:00:06 #79 [Verbose] > union manual_scheduling =
00:00:06 #80 [Verbose] > | WithSuggestion
00:00:06 #81 [Verbose] > | WithoutSuggestion
00:00:06 #82 [Verbose] >
00:00:06 #83 [Verbose] > union recurrency_offset =
00:00:06 #84 [Verbose] > | Days : i32
00:00:06 #85 [Verbose] > | Weeks : i32
00:00:06 #86 [Verbose] > | Months : i32
00:00:06 #87 [Verbose] >
00:00:06 #88 [Verbose] > union day_of_week =
00:00:06 #89 [Verbose] > | Sunday
00:00:06 #90 [Verbose] > | Monday
00:00:06 #91 [Verbose] > | Tuesday
00:00:06 #92 [Verbose] > | Wednesday
00:00:06 #93 [Verbose] > | Thursday
00:00:06 #94 [Verbose] > | Friday
00:00:06 #95 [Verbose] > | Saturday
00:00:06 #96 [Verbose] >
00:00:06 #97 [Verbose] > union month =
00:00:06 #98 [Verbose] > | January
00:00:06 #99 [Verbose] > | February
00:00:06 #100 [Verbose] > | March
00:00:06 #101 [Verbose] > | April
00:00:06 #102 [Verbose] > | May
00:00:06 #103 [Verbose] > | June
00:00:06 #104 [Verbose] > | July
00:00:06 #105 [Verbose] > | August
00:00:06 #106 [Verbose] > | September
00:00:06 #107 [Verbose] > | October
00:00:06 #108 [Verbose] > | November
00:00:06 #109 [Verbose] > | December
00:00:06 #110 [Verbose] >
00:00:06 #111 [Verbose] > nominal day = i32
00:00:06 #112 [Verbose] > nominal year = i32
00:00:06 #113 [Verbose] >
00:00:06 #114 [Verbose] > union fixed_recurrency =
00:00:06 #115 [Verbose] > | Weekly : day_of_week
00:00:06 #116 [Verbose] > | Monthly : day
00:00:06 #117 [Verbose] > | Yearly : day * month
00:00:06 #118 [Verbose] >
00:00:06 #119 [Verbose] > union recurrency =
00:00:06 #120 [Verbose] > | Offset : recurrency_offset
00:00:06 #121 [Verbose] > | Fixed : list fixed_recurrency
00:00:06 #122 [Verbose] >
00:00:06 #123 [Verbose] > union scheduling =
00:00:06 #124 [Verbose] > | Manual : manual_scheduling
00:00:06 #125 [Verbose] > | Recurrent : recurrency
00:00:06 #126 [Verbose] >
00:00:06 #127 [Verbose] > type task =
00:00:06 #128 [Verbose] > {
00:00:06 #129 [Verbose] > name : task_name
00:00:06 #130 [Verbose] > scheduling : scheduling
00:00:06 #131 [Verbose] > }
00:00:06 #132 [Verbose] >
00:00:06 #133 [Verbose] > type date =
00:00:06 #134 [Verbose] > {
00:00:06 #135 [Verbose] > year : year
00:00:06 #136 [Verbose] > month : month
00:00:06 #137 [Verbose] > day : day
00:00:06 #138 [Verbose] > }
00:00:06 #139 [Verbose] >
00:00:06 #140 [Verbose] > union status =
00:00:06 #141 [Verbose] > | Postponed : option ()
00:00:06 #142 [Verbose] >
00:00:06 #143 [Verbose] > type event =
00:00:06 #144 [Verbose] > {
00:00:06 #145 [Verbose] > date : date
00:00:06 #146 [Verbose] > status : status
00:00:06 #147 [Verbose] > }
00:00:06 #148 [Verbose] >
00:00:06 #149 [Verbose] > type task_template =
00:00:06 #150 [Verbose] > {
00:00:06 #151 [Verbose] > task : task
00:00:06 #152 [Verbose] > events : list event
00:00:06 #153 [Verbose] > }
00:00:06 #154 [Verbose] >
00:00:06 #155 [Verbose] > ╭─[ 259.65ms - stdout ]────────────────────────────────────────────────────────╮
00:00:06 #156 [Verbose] > │ () │
00:00:06 #157 [Verbose] > │ │
00:00:06 #158 [Verbose] > │ │
00:00:06 #159 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:06 #160 [Verbose] >
00:00:06 #161 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:06 #162 [Verbose] > // // test
00:00:06 #163 [Verbose] > // // rust=
00:00:06 #164 [Verbose] >
00:00:06 #165 [Verbose] > types ()
00:00:11 #166 [Verbose] >
00:00:11 #167 [Verbose] > ╭─[ 4.30s - return value ]─────────────────────────────────────────────────────╮
00:00:11 #168 [Verbose] > │ .rs output: │
00:00:11 #169 [Verbose] > │ │
00:00:11 #170 [Verbose] > │ │
00:00:11 #171 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:11 #172 [Verbose] >
00:00:11 #173 [Verbose] > ╭─[ 4.31s - stdout ]───────────────────────────────────────────────────────────╮
00:00:11 #174 [Verbose] > │ │
00:00:11 #175 [Verbose] > │ .fsx: │
00:00:11 #176 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type │
00:00:11 #177 [Verbose] > │ std_string_String = class end │
00:00:11 #178 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&$0")>] type Ref<'T> = class end │
00:00:11 #179 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("str")>] type Str = class end │
00:00:11 #180 [Verbose] > │ let rec method0 () : unit = │
00:00:11 #181 [Verbose] > │ () │
00:00:11 #182 [Verbose] > │ method0() │
00:00:11 #183 [Verbose] > │ │
00:00:11 #184 [Verbose] > │ │
00:00:11 #185 [Verbose] > │ .rs: │
00:00:11 #186 [Verbose] > │ #![allow(dead_code,)] │
00:00:11 #187 [Verbose] > │ #![allow(non_camel_case_types,)] │
00:00:11 #188 [Verbose] > │ #![allow(non_snake_case,)] │
00:00:11 #189 [Verbose] > │ #![allow(non_upper_case_globals,)] │
00:00:11 #190 [Verbose] > │ #![allow(unreachable_code,)] │
00:00:11 #191 [Verbose] > │ #![allow(unused_attributes,)] │
00:00:11 #192 [Verbose] > │ #![allow(unused_imports,)] │
00:00:11 #193 [Verbose] > │ #![allow(unused_macros,)] │
00:00:11 #194 [Verbose] > │ #![allow(unused_parens,)] │
00:00:11 #195 [Verbose] > │ #![allow(unused_variables,)] │
00:00:11 #196 [Verbose] > │ mod module_ccfa04bf { │
00:00:11 #197 [Verbose] > │ pub mod Spiral_eval { │
00:00:11 #198 [Verbose] > │ use super::*; │
00:00:11 #199 [Verbose] > │ use fable_library_rust::Native_::on_startup; │
00:00:11 #200 [Verbose] > │ pub fn method0() { (); } │
00:00:11 #201 [Verbose] > │ on_startup!(Spiral_eval::method0()); │
00:00:11 #202 [Verbose] > │ } │
00:00:11 #203 [Verbose] > │ } │
00:00:11 #204 [Verbose] > │ pub use module_ccfa04bf::*; │
00:00:11 #205 [Verbose] > │ │
00:00:11 #206 [Verbose] > │ │
00:00:11 #207 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:11 #208 [Verbose] >
00:00:11 #209 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:11 #210 [Verbose] > // // test
00:00:11 #211 [Verbose] > // // rust=
00:00:11 #212 [Verbose] >
00:00:11 #213 [Verbose] > inl get_tasks () : list task_template =
00:00:11 #214 [Verbose] > [[
00:00:11 #215 [Verbose] > {
00:00:11 #216 [Verbose] > task =
00:00:11 #217 [Verbose] > {
00:00:11 #218 [Verbose] > name = task_name "01"
00:00:11 #219 [Verbose] > scheduling = Manual WithSuggestion
00:00:11 #220 [Verbose] > }
00:00:11 #221 [Verbose] > events = [[]]
00:00:11 #222 [Verbose] > }
00:00:11 #223 [Verbose] > {
00:00:11 #224 [Verbose] > task =
00:00:11 #225 [Verbose] > {
00:00:11 #226 [Verbose] > name = task_name "02"
00:00:11 #227 [Verbose] > scheduling = Manual WithSuggestion
00:00:11 #228 [Verbose] > }
00:00:11 #229 [Verbose] > events = [[]]
00:00:11 #230 [Verbose] > }
00:00:11 #231 [Verbose] > {
00:00:11 #232 [Verbose] > task =
00:00:11 #233 [Verbose] > {
00:00:11 #234 [Verbose] > name = task_name "03"
00:00:11 #235 [Verbose] > scheduling = Manual WithSuggestion
00:00:11 #236 [Verbose] > }
00:00:11 #237 [Verbose] > events = [[]]
00:00:11 #238 [Verbose] > }
00:00:11 #239 [Verbose] > ]]
00:00:11 #240 [Verbose] >
00:00:11 #241 [Verbose] > types ()
00:00:11 #242 [Verbose] > get_tasks () |> format_pretty |> console.write_line
00:00:16 #243 [Verbose] >
00:00:16 #244 [Verbose] > ╭─[ 5.10s - return value ]─────────────────────────────────────────────────────╮
00:00:16 #245 [Verbose] > │ .rs output: │
00:00:16 #246 [Verbose] > │ UH2_0( │
00:00:16 #247 [Verbose] > │ UH0_1, │
00:00:16 #248 [Verbose] > │ "01", │
00:00:16 #249 [Verbose] > │ US4_0( │
00:00:16 #250 [Verbose] > │ US3_0, │
00:00:16 #251 [Verbose] > │ ), │
00:00:16 #252 [Verbose] > │ UH2_0( │
00:00:16 #253 [Verbose] > │ UH0_1, │
00:00:16 #254 [Verbose] > │ "02", │
00:00:16 #255 [Verbose] > │ US4_0( │
00:00:16 #256 [Verbose] > │ US3_0, │
00:00:16 #257 [Verbose] > │ ), │
00:00:16 #258 [Verbose] > │ UH2_0( │
00:00:16 #259 [Verbose] > │ UH0_1, │
00:00:16 #260 [Verbose] > │ "03", │
00:00:16 #261 [Verbose] > │ US4_0( │
00:00:16 #262 [Verbose] > │ US3_0, │
00:00:16 #263 [Verbose] > │ ), │
00:00:16 #264 [Verbose] > │ UH2_1, │
00:00:16 #265 [Verbose] > │ ), │
00:00:16 #266 [Verbose] > │ ), │
00:00:16 #267 [Verbose] > │ ) │
00:00:16 #268 [Verbose] > │ │
00:00:16 #269 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:16 #270 [Verbose] >
00:00:16 #271 [Verbose] > ╭─[ 5.13s - stdout ]───────────────────────────────────────────────────────────╮
00:00:16 #272 [Verbose] > │ │
00:00:16 #273 [Verbose] > │ .fsx: │
00:00:16 #274 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type │
00:00:16 #275 [Verbose] > │ std_string_String = class end │
00:00:16 #276 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&$0")>] type Ref<'T> = class end │
00:00:16 #277 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("str")>] type Str = class end │
00:00:16 #278 [Verbose] > │ type [<Struct>] US0 = │
00:00:16 #279 [Verbose] > │ | US0_0 │
00:00:16 #280 [Verbose] > │ | US0_1 │
00:00:16 #281 [Verbose] > │ | US0_2 │
00:00:16 #282 [Verbose] > │ | US0_3 │
00:00:16 #283 [Verbose] > │ | US0_4 │
00:00:16 #284 [Verbose] > │ | US0_5 │
00:00:16 #285 [Verbose] > │ | US0_6 │
00:00:16 #286 [Verbose] > │ | US0_7 │
00:00:16 #287 [Verbose] > │ | US0_8 │
00:00:16 #288 [Verbose] > │ | US0_9 │
00:00:16 #289 [Verbose] > │ | US0_10 │
00:00:16 #290 [Verbose] > │ | US0_11 │
00:00:16 #291 [Verbose] > │ and [<Struct>] US2 = │
00:00:16 #292 [Verbose] > │ | US2_0 │
00:00:16 #293 [Verbose] > │ | US2_1 │
00:00:16 #294 [Verbose] > │ and [<Struct>] US1 = │
00:00:16 #295 [Verbose] > │ | US1_0 of f0_0 : US2 │
00:00:16 #296 [Verbose] > │ and UH0 = │
00:00:16 #297 [Verbose] > │ | UH0_0 of int32 * US0 * int32 * US1 * UH0 │
00:00:16 #298 [Verbose] > │ | UH0_1 │
00:00:16 #299 [Verbose] > │ and [<Struct>] US3 = │
00:00:16 #300 [Verbose] > │ | US3_0 │
00:00:16 #301 [Verbose] > │ | US3_1 │
00:00:16 #302 [Verbose] > │ and [<Struct>] US7 = │
00:00:16 #303 [Verbose] > │ | US7_0 │
00:00:16 #304 [Verbose] > │ | US7_1 │
00:00:16 #305 [Verbose] > │ | US7_2 │
00:00:16 #306 [Verbose] > │ | US7_3 │
00:00:16 #307 [Verbose] > │ | US7_4 │
00:00:16 #308 [Verbose] > │ | US7_5 │
00:00:16 #309 [Verbose] > │ | US7_6 │
00:00:16 #310 [Verbose] > │ and [<Struct>] US6 = │
00:00:16 #311 [Verbose] > │ | US6_0 of f0_0 : int32 │
00:00:16 #312 [Verbose] > │ | US6_1 of f1_0 : US7 │
00:00:16 #313 [Verbose] > │ | US6_2 of f2_0 : int32 * f2_1 : US0 │
00:00:16 #314 [Verbose] > │ and UH1 = │
00:00:16 #315 [Verbose] > │ | UH1_0 of US6 * UH1 │
00:00:16 #316 [Verbose] > │ | UH1_1 │
00:00:16 #317 [Verbose] > │ and [<Struct>] US8 = │
00:00:16 #318 [Verbose] > │ | US8_0 of f0_0 : int32 │
00:00:16 #319 [Verbose] > │ | US8_1 of f1_0 : int32 │
00:00:16 #320 [Verbose] > │ | US8_2 of f2_0 : int32 │
00:00:16 #321 [Verbose] > │ and [<Struct>] US5 = │
00:00:16 #322 [Verbose] > │ | US5_0 of f0_0 : UH1 │
00:00:16 #323 [Verbose] > │ | US5_1 of f1_0 : US8 │
00:00:16 #324 [Verbose] > │ and [<Struct>] US4 = │
00:00:16 #325 [Verbose] > │ | US4_0 of f0_0 : US3 │
00:00:16 #326 [Verbose] > │ | US4_1 of f1_0 : US5 │
00:00:16 #327 [Verbose] > │ and UH2 = │
00:00:16 #328 [Verbose] > │ | UH2_0 of UH0 * string * US4 * UH2 │
00:00:16 #329 [Verbose] > │ | UH2_1 │
00:00:16 #330 [Verbose] > │ let rec method0 () : unit = │
00:00:16 #331 [Verbose] > │ let v0 : UH0 = UH0_1 │
00:00:16 #332 [Verbose] > │ let v1 : string = "01" │
00:00:16 #333 [Verbose] > │ let v2 : US3 = US3_0 │
00:00:16 #334 [Verbose] > │ let v3 : US4 = US4_0(v2) │
00:00:16 #335 [Verbose] > │ let v4 : UH0 = UH0_1 │
00:00:16 #336 [Verbose] > │ let v5 : string = "02" │
00:00:16 #337 [Verbose] > │ let v6 : US3 = US3_0 │
00:00:16 #338 [Verbose] > │ let v7 : US4 = US4_0(v6) │
00:00:16 #339 [Verbose] > │ let v8 : UH0 = UH0_1 │
00:00:16 #340 [Verbose] > │ let v9 : string = "03" │
00:00:16 #341 [Verbose] > │ let v10 : US3 = US3_0 │
00:00:16 #342 [Verbose] > │ let v11 : US4 = US4_0(v10) │
00:00:16 #343 [Verbose] > │ let v12 : UH2 = UH2_1 │
00:00:16 #344 [Verbose] > │ let v13 : UH2 = UH2_0(v8, v9, v11, v12) │
00:00:16 #345 [Verbose] > │ let v14 : UH2 = UH2_0(v4, v5, v7, v13) │
00:00:16 #346 [Verbose] > │ let v15 : UH2 = UH2_0(v0, v1, v3, v14) │
00:00:16 #347 [Verbose] > │ let v16 : string = "format!(\"{:#?}\", $0)" │
00:00:16 #348 [Verbose] > │ let v17 : std_string_String = Fable.Core.RustInterop.emitRustExpr v15 │
00:00:16 #349 [Verbose] > │ v16 │
00:00:16 #350 [Verbose] > │ System.Console.WriteLine v17 │
00:00:16 #351 [Verbose] > │ () │
00:00:16 #352 [Verbose] > │ method0() │
00:00:16 #353 [Verbose] > │ │
00:00:16 #354 [Verbose] > │ │
00:00:16 #355 [Verbose] > │ .rs: │
00:00:16 #356 [Verbose] > │ #![allow(dead_code,)] │
00:00:16 #357 [Verbose] > │ #![allow(non_camel_case_types,)] │
00:00:16 #358 [Verbose] > │ #![allow(non_snake_case,)] │
00:00:16 #359 [Verbose] > │ #![allow(non_upper_case_globals,)] │
00:00:16 #360 [Verbose] > │ #![allow(unreachable_code,)] │
00:00:16 #361 [Verbose] > │ #![allow(unused_attributes,)] │
00:00:16 #362 [Verbose] > │ #![allow(unused_imports,)] │
00:00:16 #363 [Verbose] > │ #![allow(unused_macros,)] │
00:00:16 #364 [Verbose] > │ #![allow(unused_parens,)] │
00:00:16 #365 [Verbose] > │ #![allow(unused_variables,)] │
00:00:16 #366 [Verbose] > │ mod module_ccfa04bf { │
00:00:16 #367 [Verbose] > │ pub mod Spiral_eval { │
00:00:16 #368 [Verbose] > │ use super::*; │
00:00:16 #369 [Verbose] > │ use fable_library_rust::Native_::LrcPtr; │
00:00:16 #370 [Verbose] > │ use fable_library_rust::Native_::MutCell; │
00:00:16 #371 [Verbose] > │ use fable_library_rust::Native_::on_startup; │
00:00:16 #372 [Verbose] > │ use fable_library_rust::String_::printfn; │
00:00:16 #373 [Verbose] > │ use fable_library_rust::String_::string; │
00:00:16 #374 [Verbose] > │ #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Hash, Eq,)] │
00:00:16 #375 [Verbose] > │ pub enum US0 { │
00:00:16 #376 [Verbose] > │ US0_0, │
00:00:16 #377 [Verbose] > │ US0_1, │
00:00:16 #378 [Verbose] > │ US0_2, │
00:00:16 #379 [Verbose] > │ US0_3, │
00:00:16 #380 [Verbose] > │ US0_4, │
00:00:16 #381 [Verbose] > │ US0_5, │
00:00:16 #382 [Verbose] > │ US0_6, │
00:00:16 #383 [Verbose] > │ US0_7, │
00:00:16 #384 [Verbose] > │ US0_8, │
00:00:16 #385 [Verbose] > │ US0_9, │
00:00:16 #386 [Verbose] > │ US0_10, │
00:00:16 #387 [Verbose] > │ US0_11, │
00:00:16 #388 [Verbose] > │ } │
00:00:16 #389 [Verbose] > │ impl Spiral_eval::US0 { │
00:00:16 #390 [Verbose] > │ pub fn get_IsUS0_0(this_: &MutCell<Spiral_eval::US0>, unitArg: │
00:00:16 #391 [Verbose] > │ ()) │
00:00:16 #392 [Verbose] > │ -> bool { │
00:00:16 #393 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #394 [Verbose] > │ } │
00:00:16 #395 [Verbose] > │ pub fn get_IsUS0_1(this_: &MutCell<Spiral_eval::US0>, unitArg: │
00:00:16 #396 [Verbose] > │ ()) │
00:00:16 #397 [Verbose] > │ -> bool { │
00:00:16 #398 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #399 [Verbose] > │ } │
00:00:16 #400 [Verbose] > │ pub fn get_IsUS0_2(this_: &MutCell<Spiral_eval::US0>, unitArg: │
00:00:16 #401 [Verbose] > │ ()) │
00:00:16 #402 [Verbose] > │ -> bool { │
00:00:16 #403 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #404 [Verbose] > │ } │
00:00:16 #405 [Verbose] > │ pub fn get_IsUS0_3(this_: &MutCell<Spiral_eval::US0>, unitArg: │
00:00:16 #406 [Verbose] > │ ()) │
00:00:16 #407 [Verbose] > │ -> bool { │
00:00:16 #408 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #409 [Verbose] > │ } │
00:00:16 #410 [Verbose] > │ pub fn get_IsUS0_4(this_: &MutCell<Spiral_eval::US0>, unitArg: │
00:00:16 #411 [Verbose] > │ ()) │
00:00:16 #412 [Verbose] > │ -> bool { │
00:00:16 #413 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #414 [Verbose] > │ } │
00:00:16 #415 [Verbose] > │ pub fn get_IsUS0_5(this_: &MutCell<Spiral_eval::US0>, unitArg: │
00:00:16 #416 [Verbose] > │ ()) │
00:00:16 #417 [Verbose] > │ -> bool { │
00:00:16 #418 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #419 [Verbose] > │ } │
00:00:16 #420 [Verbose] > │ pub fn get_IsUS0_6(this_: &MutCell<Spiral_eval::US0>, unitArg: │
00:00:16 #421 [Verbose] > │ ()) │
00:00:16 #422 [Verbose] > │ -> bool { │
00:00:16 #423 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #424 [Verbose] > │ } │
00:00:16 #425 [Verbose] > │ pub fn get_IsUS0_7(this_: &MutCell<Spiral_eval::US0>, unitArg: │
00:00:16 #426 [Verbose] > │ ()) │
00:00:16 #427 [Verbose] > │ -> bool { │
00:00:16 #428 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #429 [Verbose] > │ } │
00:00:16 #430 [Verbose] > │ pub fn get_IsUS0_8(this_: &MutCell<Spiral_eval::US0>, unitArg: │
00:00:16 #431 [Verbose] > │ ()) │
00:00:16 #432 [Verbose] > │ -> bool { │
00:00:16 #433 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #434 [Verbose] > │ } │
00:00:16 #435 [Verbose] > │ pub fn get_IsUS0_9(this_: &MutCell<Spiral_eval::US0>, unitArg: │
00:00:16 #436 [Verbose] > │ ()) │
00:00:16 #437 [Verbose] > │ -> bool { │
00:00:16 #438 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #439 [Verbose] > │ } │
00:00:16 #440 [Verbose] > │ pub fn get_IsUS0_10(this_: &MutCell<Spiral_eval::US0>, │
00:00:16 #441 [Verbose] > │ unitArg: ()) -> bool { │
00:00:16 #442 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #443 [Verbose] > │ } │
00:00:16 #444 [Verbose] > │ pub fn get_IsUS0_11(this_: &MutCell<Spiral_eval::US0>, │
00:00:16 #445 [Verbose] > │ unitArg: ()) -> bool { │
00:00:16 #446 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #447 [Verbose] > │ } │
00:00:16 #448 [Verbose] > │ } │
00:00:16 #449 [Verbose] > │ impl core::fmt::Display for Spiral_eval::US0 { │
00:00:16 #450 [Verbose] > │ fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:16 #451 [Verbose] > │ { │
00:00:16 #452 [Verbose] > │ write!(f, "{}", core::any::type_name::<Self>()) │
00:00:16 #453 [Verbose] > │ } │
00:00:16 #454 [Verbose] > │ } │
00:00:16 #455 [Verbose] > │ #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Hash, Eq,)] │
00:00:16 #456 [Verbose] > │ pub enum US2 { US2_0, US2_1, } │
00:00:16 #457 [Verbose] > │ impl Spiral_eval::US2 { │
00:00:16 #458 [Verbose] > │ pub fn get_IsUS2_0(this_: &MutCell<Spiral_eval::US2>, unitArg: │
00:00:16 #459 [Verbose] > │ ()) │
00:00:16 #460 [Verbose] > │ -> bool { │
00:00:16 #461 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #462 [Verbose] > │ } │
00:00:16 #463 [Verbose] > │ pub fn get_IsUS2_1(this_: &MutCell<Spiral_eval::US2>, unitArg: │
00:00:16 #464 [Verbose] > │ ()) │
00:00:16 #465 [Verbose] > │ -> bool { │
00:00:16 #466 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #467 [Verbose] > │ } │
00:00:16 #468 [Verbose] > │ } │
00:00:16 #469 [Verbose] > │ impl core::fmt::Display for Spiral_eval::US2 { │
00:00:16 #470 [Verbose] > │ fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:16 #471 [Verbose] > │ { │
00:00:16 #472 [Verbose] > │ write!(f, "{}", core::any::type_name::<Self>()) │
00:00:16 #473 [Verbose] > │ } │
00:00:16 #474 [Verbose] > │ } │
00:00:16 #475 [Verbose] > │ #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Hash, Eq,)] │
00:00:16 #476 [Verbose] > │ pub enum US1 { US1_0(Spiral_eval::US2), } │
00:00:16 #477 [Verbose] > │ impl Spiral_eval::US1 { │
00:00:16 #478 [Verbose] > │ pub fn get_IsUS1_0(this_: &MutCell<Spiral_eval::US1>, unitArg: │
00:00:16 #479 [Verbose] > │ ()) │
00:00:16 #480 [Verbose] > │ -> bool { │
00:00:16 #481 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #482 [Verbose] > │ } │
00:00:16 #483 [Verbose] > │ } │
00:00:16 #484 [Verbose] > │ impl core::fmt::Display for Spiral_eval::US1 { │
00:00:16 #485 [Verbose] > │ fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:16 #486 [Verbose] > │ { │
00:00:16 #487 [Verbose] > │ write!(f, "{}", core::any::type_name::<Self>()) │
00:00:16 #488 [Verbose] > │ } │
00:00:16 #489 [Verbose] > │ } │
00:00:16 #490 [Verbose] > │ #[derive(Clone, Debug, PartialEq, PartialOrd, Hash, Eq,)] │
00:00:16 #491 [Verbose] > │ pub enum UH0 { │
00:00:16 #492 [Verbose] > │ UH0_0(i32, Spiral_eval::US0, i32, Spiral_eval::US1, │
00:00:16 #493 [Verbose] > │ LrcPtr<Spiral_eval::UH0>), │
00:00:16 #494 [Verbose] > │ UH0_1, │
00:00:16 #495 [Verbose] > │ } │
00:00:16 #496 [Verbose] > │ impl Spiral_eval::UH0 { │
00:00:16 #497 [Verbose] > │ pub fn get_IsUH0_0(this_: LrcPtr<Spiral_eval::UH0>, unitArg: ()) │
00:00:16 #498 [Verbose] > │ -> bool { │
00:00:16 #499 [Verbose] > │ if let Spiral_eval::UH0::UH0_0(this__0_0, this__0_1, │
00:00:16 #500 [Verbose] > │ this__0_2, this__0_3, │
00:00:16 #501 [Verbose] > │ this__0_4) = this_.as_ref() { │
00:00:16 #502 [Verbose] > │ true │
00:00:16 #503 [Verbose] > │ } else { false } │
00:00:16 #504 [Verbose] > │ } │
00:00:16 #505 [Verbose] > │ pub fn get_IsUH0_1(this_: LrcPtr<Spiral_eval::UH0>, unitArg: ()) │
00:00:16 #506 [Verbose] > │ -> bool { │
00:00:16 #507 [Verbose] > │ if let Spiral_eval::UH0::UH0_1 = this_.as_ref() { │
00:00:16 #508 [Verbose] > │ true │
00:00:16 #509 [Verbose] > │ } else { false } │
00:00:16 #510 [Verbose] > │ } │
00:00:16 #511 [Verbose] > │ } │
00:00:16 #512 [Verbose] > │ impl core::fmt::Display for Spiral_eval::UH0 { │
00:00:16 #513 [Verbose] > │ fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:16 #514 [Verbose] > │ { │
00:00:16 #515 [Verbose] > │ write!(f, "{}", core::any::type_name::<Self>()) │
00:00:16 #516 [Verbose] > │ } │
00:00:16 #517 [Verbose] > │ } │
00:00:16 #518 [Verbose] > │ #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Hash, Eq,)] │
00:00:16 #519 [Verbose] > │ pub enum US3 { US3_0, US3_1, } │
00:00:16 #520 [Verbose] > │ impl Spiral_eval::US3 { │
00:00:16 #521 [Verbose] > │ pub fn get_IsUS3_0(this_: &MutCell<Spiral_eval::US3>, unitArg: │
00:00:16 #522 [Verbose] > │ ()) │
00:00:16 #523 [Verbose] > │ -> bool { │
00:00:16 #524 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #525 [Verbose] > │ } │
00:00:16 #526 [Verbose] > │ pub fn get_IsUS3_1(this_: &MutCell<Spiral_eval::US3>, unitArg: │
00:00:16 #527 [Verbose] > │ ()) │
00:00:16 #528 [Verbose] > │ -> bool { │
00:00:16 #529 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #530 [Verbose] > │ } │
00:00:16 #531 [Verbose] > │ } │
00:00:16 #532 [Verbose] > │ impl core::fmt::Display for Spiral_eval::US3 { │
00:00:16 #533 [Verbose] > │ fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:16 #534 [Verbose] > │ { │
00:00:16 #535 [Verbose] > │ write!(f, "{}", core::any::type_name::<Self>()) │
00:00:16 #536 [Verbose] > │ } │
00:00:16 #537 [Verbose] > │ } │
00:00:16 #538 [Verbose] > │ #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Hash, Eq,)] │
00:00:16 #539 [Verbose] > │ pub enum US7 { US7_0, US7_1, US7_2, US7_3, US7_4, US7_5, US7_6, } │
00:00:16 #540 [Verbose] > │ impl Spiral_eval::US7 { │
00:00:16 #541 [Verbose] > │ pub fn get_IsUS7_0(this_: &MutCell<Spiral_eval::US7>, unitArg: │
00:00:16 #542 [Verbose] > │ ()) │
00:00:16 #543 [Verbose] > │ -> bool { │
00:00:16 #544 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #545 [Verbose] > │ } │
00:00:16 #546 [Verbose] > │ pub fn get_IsUS7_1(this_: &MutCell<Spiral_eval::US7>, unitArg: │
00:00:16 #547 [Verbose] > │ ()) │
00:00:16 #548 [Verbose] > │ -> bool { │
00:00:16 #549 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #550 [Verbose] > │ } │
00:00:16 #551 [Verbose] > │ pub fn get_IsUS7_2(this_: &MutCell<Spiral_eval::US7>, unitArg: │
00:00:16 #552 [Verbose] > │ ()) │
00:00:16 #553 [Verbose] > │ -> bool { │
00:00:16 #554 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #555 [Verbose] > │ } │
00:00:16 #556 [Verbose] > │ pub fn get_IsUS7_3(this_: &MutCell<Spiral_eval::US7>, unitArg: │
00:00:16 #557 [Verbose] > │ ()) │
00:00:16 #558 [Verbose] > │ -> bool { │
00:00:16 #559 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #560 [Verbose] > │ } │
00:00:16 #561 [Verbose] > │ pub fn get_IsUS7_4(this_: &MutCell<Spiral_eval::US7>, unitArg: │
00:00:16 #562 [Verbose] > │ ()) │
00:00:16 #563 [Verbose] > │ -> bool { │
00:00:16 #564 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #565 [Verbose] > │ } │
00:00:16 #566 [Verbose] > │ pub fn get_IsUS7_5(this_: &MutCell<Spiral_eval::US7>, unitArg: │
00:00:16 #567 [Verbose] > │ ()) │
00:00:16 #568 [Verbose] > │ -> bool { │
00:00:16 #569 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #570 [Verbose] > │ } │
00:00:16 #571 [Verbose] > │ pub fn get_IsUS7_6(this_: &MutCell<Spiral_eval::US7>, unitArg: │
00:00:16 #572 [Verbose] > │ ()) │
00:00:16 #573 [Verbose] > │ -> bool { │
00:00:16 #574 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #575 [Verbose] > │ } │
00:00:16 #576 [Verbose] > │ } │
00:00:16 #577 [Verbose] > │ impl core::fmt::Display for Spiral_eval::US7 { │
00:00:16 #578 [Verbose] > │ fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:16 #579 [Verbose] > │ { │
00:00:16 #580 [Verbose] > │ write!(f, "{}", core::any::type_name::<Self>()) │
00:00:16 #581 [Verbose] > │ } │
00:00:16 #582 [Verbose] > │ } │
00:00:16 #583 [Verbose] > │ #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Hash, Eq,)] │
00:00:16 #584 [Verbose] > │ pub enum US6 { │
00:00:16 #585 [Verbose] > │ US6_0(i32), │
00:00:16 #586 [Verbose] > │ US6_1(Spiral_eval::US7), │
00:00:16 #587 [Verbose] > │ US6_2(i32, Spiral_eval::US0), │
00:00:16 #588 [Verbose] > │ } │
00:00:16 #589 [Verbose] > │ impl Spiral_eval::US6 { │
00:00:16 #590 [Verbose] > │ pub fn get_IsUS6_0(this_: &MutCell<Spiral_eval::US6>, unitArg: │
00:00:16 #591 [Verbose] > │ ()) │
00:00:16 #592 [Verbose] > │ -> bool { │
00:00:16 #593 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #594 [Verbose] > │ } │
00:00:16 #595 [Verbose] > │ pub fn get_IsUS6_1(this_: &MutCell<Spiral_eval::US6>, unitArg: │
00:00:16 #596 [Verbose] > │ ()) │
00:00:16 #597 [Verbose] > │ -> bool { │
00:00:16 #598 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #599 [Verbose] > │ } │
00:00:16 #600 [Verbose] > │ pub fn get_IsUS6_2(this_: &MutCell<Spiral_eval::US6>, unitArg: │
00:00:16 #601 [Verbose] > │ ()) │
00:00:16 #602 [Verbose] > │ -> bool { │
00:00:16 #603 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #604 [Verbose] > │ } │
00:00:16 #605 [Verbose] > │ } │
00:00:16 #606 [Verbose] > │ impl core::fmt::Display for Spiral_eval::US6 { │
00:00:16 #607 [Verbose] > │ fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:16 #608 [Verbose] > │ { │
00:00:16 #609 [Verbose] > │ write!(f, "{}", core::any::type_name::<Self>()) │
00:00:16 #610 [Verbose] > │ } │
00:00:16 #611 [Verbose] > │ } │
00:00:16 #612 [Verbose] > │ #[derive(Clone, Debug, PartialEq, PartialOrd, Hash, Eq,)] │
00:00:16 #613 [Verbose] > │ pub enum UH1 { │
00:00:16 #614 [Verbose] > │ UH1_0(Spiral_eval::US6, LrcPtr<Spiral_eval::UH1>), │
00:00:16 #615 [Verbose] > │ UH1_1, │
00:00:16 #616 [Verbose] > │ } │
00:00:16 #617 [Verbose] > │ impl Spiral_eval::UH1 { │
00:00:16 #618 [Verbose] > │ pub fn get_IsUH1_0(this_: LrcPtr<Spiral_eval::UH1>, unitArg: ()) │
00:00:16 #619 [Verbose] > │ -> bool { │
00:00:16 #620 [Verbose] > │ if let Spiral_eval::UH1::UH1_0(this__0_0, this__0_1) = │
00:00:16 #621 [Verbose] > │ this_.as_ref() { │
00:00:16 #622 [Verbose] > │ true │
00:00:16 #623 [Verbose] > │ } else { false } │
00:00:16 #624 [Verbose] > │ } │
00:00:16 #625 [Verbose] > │ pub fn get_IsUH1_1(this_: LrcPtr<Spiral_eval::UH1>, unitArg: ()) │
00:00:16 #626 [Verbose] > │ -> bool { │
00:00:16 #627 [Verbose] > │ if let Spiral_eval::UH1::UH1_1 = this_.as_ref() { │
00:00:16 #628 [Verbose] > │ true │
00:00:16 #629 [Verbose] > │ } else { false } │
00:00:16 #630 [Verbose] > │ } │
00:00:16 #631 [Verbose] > │ } │
00:00:16 #632 [Verbose] > │ impl core::fmt::Display for Spiral_eval::UH1 { │
00:00:16 #633 [Verbose] > │ fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:16 #634 [Verbose] > │ { │
00:00:16 #635 [Verbose] > │ write!(f, "{}", core::any::type_name::<Self>()) │
00:00:16 #636 [Verbose] > │ } │
00:00:16 #637 [Verbose] > │ } │
00:00:16 #638 [Verbose] > │ #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Hash, Eq,)] │
00:00:16 #639 [Verbose] > │ pub enum US8 { US8_0(i32), US8_1(i32), US8_2(i32), } │
00:00:16 #640 [Verbose] > │ impl Spiral_eval::US8 { │
00:00:16 #641 [Verbose] > │ pub fn get_IsUS8_0(this_: &MutCell<Spiral_eval::US8>, unitArg: │
00:00:16 #642 [Verbose] > │ ()) │
00:00:16 #643 [Verbose] > │ -> bool { │
00:00:16 #644 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #645 [Verbose] > │ } │
00:00:16 #646 [Verbose] > │ pub fn get_IsUS8_1(this_: &MutCell<Spiral_eval::US8>, unitArg: │
00:00:16 #647 [Verbose] > │ ()) │
00:00:16 #648 [Verbose] > │ -> bool { │
00:00:16 #649 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #650 [Verbose] > │ } │
00:00:16 #651 [Verbose] > │ pub fn get_IsUS8_2(this_: &MutCell<Spiral_eval::US8>, unitArg: │
00:00:16 #652 [Verbose] > │ ()) │
00:00:16 #653 [Verbose] > │ -> bool { │
00:00:16 #654 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #655 [Verbose] > │ } │
00:00:16 #656 [Verbose] > │ } │
00:00:16 #657 [Verbose] > │ impl core::fmt::Display for Spiral_eval::US8 { │
00:00:16 #658 [Verbose] > │ fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:16 #659 [Verbose] > │ { │
00:00:16 #660 [Verbose] > │ write!(f, "{}", core::any::type_name::<Self>()) │
00:00:16 #661 [Verbose] > │ } │
00:00:16 #662 [Verbose] > │ } │
00:00:16 #663 [Verbose] > │ #[derive(Clone, Debug, PartialEq, PartialOrd, Hash, Eq,)] │
00:00:16 #664 [Verbose] > │ pub enum US5 { │
00:00:16 #665 [Verbose] > │ US5_0(LrcPtr<Spiral_eval::UH1>), │
00:00:16 #666 [Verbose] > │ US5_1(Spiral_eval::US8), │
00:00:16 #667 [Verbose] > │ } │
00:00:16 #668 [Verbose] > │ impl Spiral_eval::US5 { │
00:00:16 #669 [Verbose] > │ pub fn get_IsUS5_0(this_: &MutCell<Spiral_eval::US5>, unitArg: │
00:00:16 #670 [Verbose] > │ ()) │
00:00:16 #671 [Verbose] > │ -> bool { │
00:00:16 #672 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #673 [Verbose] > │ } │
00:00:16 #674 [Verbose] > │ pub fn get_IsUS5_1(this_: &MutCell<Spiral_eval::US5>, unitArg: │
00:00:16 #675 [Verbose] > │ ()) │
00:00:16 #676 [Verbose] > │ -> bool { │
00:00:16 #677 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #678 [Verbose] > │ } │
00:00:16 #679 [Verbose] > │ } │
00:00:16 #680 [Verbose] > │ impl core::fmt::Display for Spiral_eval::US5 { │
00:00:16 #681 [Verbose] > │ fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:16 #682 [Verbose] > │ { │
00:00:16 #683 [Verbose] > │ write!(f, "{}", core::any::type_name::<Self>()) │
00:00:16 #684 [Verbose] > │ } │
00:00:16 #685 [Verbose] > │ } │
00:00:16 #686 [Verbose] > │ #[derive(Clone, Debug, PartialEq, PartialOrd, Hash, Eq,)] │
00:00:16 #687 [Verbose] > │ pub enum US4 { US4_0(Spiral_eval::US3), US4_1(Spiral_eval::US5), } │
00:00:16 #688 [Verbose] > │ impl Spiral_eval::US4 { │
00:00:16 #689 [Verbose] > │ pub fn get_IsUS4_0(this_: &MutCell<Spiral_eval::US4>, unitArg: │
00:00:16 #690 [Verbose] > │ ()) │
00:00:16 #691 [Verbose] > │ -> bool { │
00:00:16 #692 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #693 [Verbose] > │ } │
00:00:16 #694 [Verbose] > │ pub fn get_IsUS4_1(this_: &MutCell<Spiral_eval::US4>, unitArg: │
00:00:16 #695 [Verbose] > │ ()) │
00:00:16 #696 [Verbose] > │ -> bool { │
00:00:16 #697 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:16 #698 [Verbose] > │ } │
00:00:16 #699 [Verbose] > │ } │
00:00:16 #700 [Verbose] > │ impl core::fmt::Display for Spiral_eval::US4 { │
00:00:16 #701 [Verbose] > │ fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:16 #702 [Verbose] > │ { │
00:00:16 #703 [Verbose] > │ write!(f, "{}", core::any::type_name::<Self>()) │
00:00:16 #704 [Verbose] > │ } │
00:00:16 #705 [Verbose] > │ } │
00:00:16 #706 [Verbose] > │ #[derive(Clone, Debug, PartialEq, PartialOrd, Hash, Eq,)] │
00:00:16 #707 [Verbose] > │ pub enum UH2 { │
00:00:16 #708 [Verbose] > │ UH2_0(LrcPtr<Spiral_eval::UH0>, string, Spiral_eval::US4, │
00:00:16 #709 [Verbose] > │ LrcPtr<Spiral_eval::UH2>), │
00:00:16 #710 [Verbose] > │ UH2_1, │
00:00:16 #711 [Verbose] > │ } │
00:00:16 #712 [Verbose] > │ impl Spiral_eval::UH2 { │
00:00:16 #713 [Verbose] > │ pub fn get_IsUH2_0(this_: LrcPtr<Spiral_eval::UH2>, unitArg: ()) │
00:00:16 #714 [Verbose] > │ -> bool { │
00:00:16 #715 [Verbose] > │ if let Spiral_eval::UH2::UH2_0(this__0_0, this__0_1, │
00:00:16 #716 [Verbose] > │ this__0_2, this__0_3) = │
00:00:16 #717 [Verbose] > │ this_.as_ref() { │
00:00:16 #718 [Verbose] > │ true │
00:00:16 #719 [Verbose] > │ } else { false } │
00:00:16 #720 [Verbose] > │ } │
00:00:16 #721 [Verbose] > │ pub fn get_IsUH2_1(this_: LrcPtr<Spiral_eval::UH2>, unitArg: ()) │
00:00:16 #722 [Verbose] > │ -> bool { │
00:00:16 #723 [Verbose] > │ if let Spiral_eval::UH2::UH2_1 = this_.as_ref() { │
00:00:16 #724 [Verbose] > │ true │
00:00:16 #725 [Verbose] > │ } else { false } │
00:00:16 #726 [Verbose] > │ } │
00:00:16 #727 [Verbose] > │ } │
00:00:16 #728 [Verbose] > │ impl core::fmt::Display for Spiral_eval::UH2 { │
00:00:16 #729 [Verbose] > │ fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:16 #730 [Verbose] > │ { │
00:00:16 #731 [Verbose] > │ write!(f, "{}", core::any::type_name::<Self>()) │
00:00:16 #732 [Verbose] > │ } │
00:00:16 #733 [Verbose] > │ } │
00:00:16 #734 [Verbose] > │ pub fn method0() { │
00:00:16 #735 [Verbose] > │ let v17: std::string::String = │
00:00:16 #736 [Verbose] > │ format!("{:#?}", │
00:00:16 #737 [Verbose] > │ LrcPtr::new(Spiral_eval::UH2::UH2_0(LrcPtr::new(Spiral_eval::UH0::UH0_1), │
00:00:16 #738 [Verbose] > │ │
00:00:16 #739 [Verbose] > │ string("01"), │
00:00:16 #740 [Verbose] > │ │
00:00:16 #741 [Verbose] > │ Spiral_eval::US4::US4_0(Spiral_eval::US3::US3_0), │
00:00:16 #742 [Verbose] > │ │
00:00:16 #743 [Verbose] > │ LrcPtr::new(Spiral_eval::UH2::UH2_0(LrcPtr::new(Spiral_eval::UH0::UH0_1), │
00:00:16 #744 [Verbose] > │ │
00:00:16 #745 [Verbose] > │ string("02"), │
00:00:16 #746 [Verbose] > │ │
00:00:16 #747 [Verbose] > │ Spiral_eval::US4::US4_0(Spiral_eval::US3::US3_0), │
00:00:16 #748 [Verbose] > │ │
00:00:16 #749 [Verbose] > │ LrcPtr::new(Spiral_eval::UH2::UH2_0(LrcPtr::new(Spiral_eval::UH0::UH0_1), │
00:00:16 #750 [Verbose] > │ │
00:00:16 #751 [Verbose] > │ string("03"), │
00:00:16 #752 [Verbose] > │ │
00:00:16 #753 [Verbose] > │ Spiral_eval::US4::US4_0(Spiral_eval::US3::US3_0), │
00:00:16 #754 [Verbose] > │ │
00:00:16 #755 [Verbose] > │ LrcPtr::new(Spiral_eval::UH2::UH2_1)))))))); │
00:00:16 #756 [Verbose] > │ printfn!("{0}", v17); │
00:00:16 #757 [Verbose] > │ () │
00:00:16 #758 [Verbose] > │ } │
00:00:16 #759 [Verbose] > │ on_startup!(Spiral_eval::method0()); │
00:00:16 #760 [Verbose] > │ } │
00:00:16 #761 [Verbose] > │ } │
00:00:16 #762 [Verbose] > │ pub use module_ccfa04bf::*; │
00:00:16 #763 [Verbose] > │ │
00:00:16 #764 [Verbose] > │ │
00:00:16 #765 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:16 #766 [Verbose] >
00:00:16 #767 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:16 #768 [Verbose] > // // test
00:00:16 #769 [Verbose] > // // rust=
00:00:16 #770 [Verbose] >
00:00:16 #771 [Verbose] > get_tasks ()
00:00:16 #772 [Verbose] > |> listm'.try_item 0i32
00:00:16 #773 [Verbose] > |> fun (Some task) => task.task.name
00:00:16 #774 [Verbose] > |> _assert_eq (task_name "01")
00:00:20 #775 [Verbose] >
00:00:20 #776 [Verbose] > ╭─[ 3.99s - return value ]─────────────────────────────────────────────────────╮
00:00:20 #777 [Verbose] > │ .rs output: │
00:00:20 #778 [Verbose] > │ "01" │
00:00:20 #779 [Verbose] > │ │
00:00:20 #780 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:20 #781 [Verbose] >
00:00:20 #782 [Verbose] > ╭─[ 4.00s - stdout ]───────────────────────────────────────────────────────────╮
00:00:20 #783 [Verbose] > │ │
00:00:20 #784 [Verbose] > │ .fsx: │
00:00:20 #785 [Verbose] > │ let rec method0 () : unit = │
00:00:20 #786 [Verbose] > │ let v0 : string = "01" │
00:00:20 #787 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:00:20 #788 [Verbose] > │ System.Console.WriteLine v1 │
00:00:20 #789 [Verbose] > │ let v2 : string = $"__expect / actual: %A{v0} / expected: %A{v0}" │
00:00:20 #790 [Verbose] > │ () │
00:00:20 #791 [Verbose] > │ method0() │
00:00:20 #792 [Verbose] > │ │
00:00:20 #793 [Verbose] > │ │
00:00:20 #794 [Verbose] > │ .rs: │
00:00:20 #795 [Verbose] > │ #![allow(dead_code,)] │
00:00:20 #796 [Verbose] > │ #![allow(non_camel_case_types,)] │
00:00:20 #797 [Verbose] > │ #![allow(non_snake_case,)] │
00:00:20 #798 [Verbose] > │ #![allow(non_upper_case_globals,)] │
00:00:20 #799 [Verbose] > │ #![allow(unreachable_code,)] │
00:00:20 #800 [Verbose] > │ #![allow(unused_attributes,)] │
00:00:20 #801 [Verbose] > │ #![allow(unused_imports,)] │
00:00:20 #802 [Verbose] > │ #![allow(unused_macros,)] │
00:00:20 #803 [Verbose] > │ #![allow(unused_parens,)] │
00:00:20 #804 [Verbose] > │ #![allow(unused_variables,)] │
00:00:20 #805 [Verbose] > │ mod module_ccfa04bf { │
00:00:20 #806 [Verbose] > │ pub mod Spiral_eval { │
00:00:20 #807 [Verbose] > │ use super::*; │
00:00:20 #808 [Verbose] > │ use fable_library_rust::Native_::on_startup; │
00:00:20 #809 [Verbose] > │ use fable_library_rust::String_::printfn; │
00:00:20 #810 [Verbose] > │ use fable_library_rust::String_::sprintf; │
00:00:20 #811 [Verbose] > │ use fable_library_rust::String_::string; │
00:00:20 #812 [Verbose] > │ pub fn method0() { │
00:00:20 #813 [Verbose] > │ let v1: string = sprintf!("{:?}", string("01")); │
00:00:20 #814 [Verbose] > │ printfn!("{0}", v1); │
00:00:20 #815 [Verbose] > │ { │
00:00:20 #816 [Verbose] > │ let v2: string = │
00:00:20 #817 [Verbose] > │ sprintf!("__expect / actual: {:?} / expected: {:?}", │
00:00:20 #818 [Verbose] > │ string("01"), string("01")); │
00:00:20 #819 [Verbose] > │ () │
00:00:20 #820 [Verbose] > │ } │
00:00:20 #821 [Verbose] > │ } │
00:00:20 #822 [Verbose] > │ on_startup!(Spiral_eval::method0()); │
00:00:20 #823 [Verbose] > │ } │
00:00:20 #824 [Verbose] > │ } │
00:00:20 #825 [Verbose] > │ pub use module_ccfa04bf::*; │
00:00:20 #826 [Verbose] > │ │
00:00:20 #827 [Verbose] > │ │
00:00:20 #828 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:20 #829 [Verbose] >
00:00:20 #830 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:20 #831 [Verbose] > // // test
00:00:20 #832 [Verbose] >
00:00:20 #833 [Verbose] > ()
00:00:20 #834 [Verbose] >
00:00:20 #835 [Verbose] > ╭─[ 453.81ms - stdout ]────────────────────────────────────────────────────────╮
00:00:20 #836 [Verbose] > │ let rec method0 () : unit = │
00:00:20 #837 [Verbose] > │ () │
00:00:20 #838 [Verbose] > │ method0() │
00:00:20 #839 [Verbose] > │ │
00:00:20 #840 [Verbose] > │ │
00:00:20 #841 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:22 #842 [Verbose] > [NbConvertApp] Converting notebook Tasks.dib.ipynb to html
00:00:22 #843 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:22 #844 [Verbose] > validate(nb)
00:00:23 #845 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:23 #846 [Verbose] > return _pygments_highlight(
00:00:23 #847 [Verbose] > [NbConvertApp] Writing 313974 bytes to Tasks.dib.html
00:00:23 #848 [Debug] executeAsync / exitCode: 0 / output.Length: 56712
00:00:23 #849 [Debug] main / executeCommand / exitCode: 0
00:00:00 #1 [Debug] writeDibCode / output: Spi / path: Tasks.dib
00:00:00 #2 [Debug] parseDibCode / output: Spi / file: Tasks.dib
In [ ]:
{ . "$ScriptDir/../apps/chat/build.ps1" } | Invoke-Block
Finished `release` profile [optimized] target(s) in 1.81s Compiling near-workspaces v0.10.0 Compiling chat_contract_tests v0.0.1 (/mnt/c/home/git/polyglot/apps/chat/contract/tests) Finished `release` profile [optimized] target(s) in 5m 57s Running `/mnt/c/home/git/polyglot/target/release/chat_contract_tests` Updated the logging layer according to `log_config.json` new: ExecutionFinalResult { total_gas_burnt: NearGas { inner: 5283539589786, }, transaction: ExecutionOutcome { transaction_hash: 6QUWRRux991bUYWhBMy7tXnrWMTqcbbWbTHUQYo71t3U, block_hash: 5qmHztbdeWC34acYdZydbToFi2qsWRn9BcMsTDNHsAdQ, logs: [], receipt_ids: [ 5yvYJghHVmHkmRX5QNCQQQjJ2MwZbHm8yRYUJMyJ5Wyv, ], gas_burnt: NearGas { inner: 2427927707802, }, tokens_burnt: NearToken { inner: 242792770780200000000, }, executor_id: AccountId( "dev-20240330212825-99229589556680", ), status: SuccessReceiptId(5yvYJghHVmHkmRX5QNCQQQjJ2MwZbHm8yRYUJMyJ5Wyv), }, receipts: [ ExecutionOutcome { transaction_hash: 5yvYJghHVmHkmRX5QNCQQQjJ2MwZbHm8yRYUJMyJ5Wyv, block_hash: 5qmHztbdeWC34acYdZydbToFi2qsWRn9BcMsTDNHsAdQ, logs: [], receipt_ids: [ HKH5NMz6rmgUy1uqhiVBfw4A6mhy93n5wEdnADpRnQ5w, ], gas_burnt: NearGas { inner: 2632429319484, }, tokens_burnt: NearToken { inner: 263242931948400000000, }, executor_id: AccountId( "dev-20240330212825-99229589556680", ), status: SuccessValue(''), }, ExecutionOutcome { transaction_hash: HKH5NMz6rmgUy1uqhiVBfw4A6mhy93n5wEdnADpRnQ5w, block_hash: CSkrvme1QEKAgsM9RqUNoNjmTwLkb5qFYtgSnNqYGsGh, logs: [], receipt_ids: [], gas_burnt: NearGas { inner: 223182562500, }, tokens_burnt: NearToken { inner: 0, }, executor_id: AccountId( "dev-20240330212825-99229589556680", ), status: SuccessValue(''), }, ], status: SuccessValue(''), } total_gas_burnt_usd: 0.003529404445977048 outcome (success: true): outcome_gas_burnt_usd: 0.001621855708811736 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.0017584627854153117 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.00014908595175 outcome_tokens_burnt_usd: 0.0 claim_alias(contract, ''): ExecutionFinalResult { total_gas_burnt: NearGas { inner: 5288261263708, }, transaction: ExecutionOutcome { transaction_hash: 6jWhsKtNJBYKjY5fnwr84UUYnxwFduRGiHvdD1cvBqSE, block_hash: Gh743ehPzRTxELR7YyohaPS2K3pvpQky5nBpcX8RUawJ, logs: [], receipt_ids: [ 85jS3Puikeim7x5DwcY33EnXF9ffyPhhPsWPz4aMx2LQ, ], gas_burnt: NearGas { inner: 2427972426482, }, tokens_burnt: NearToken { inner: 242797242648200000000, }, executor_id: AccountId( "dev-20240330212825-99229589556680", ), status: SuccessReceiptId(85jS3Puikeim7x5DwcY33EnXF9ffyPhhPsWPz4aMx2LQ), }, receipts: [ ExecutionOutcome { transaction_hash: 85jS3Puikeim7x5DwcY33EnXF9ffyPhhPsWPz4aMx2LQ, block_hash: Gh743ehPzRTxELR7YyohaPS2K3pvpQky5nBpcX8RUawJ, logs: [ "claim_alias / alias: \"\" / account_id: AccountId(\n \"dev-20240330212825-99229589556680\",\n) / timestamp: 1711834107074936332", ], receipt_ids: [ 9MhBFRN2mLzEL4XSnGoVLxxDyL4xNZNsxDmWupSZRWNs, ], gas_burnt: NearGas { inner: 2637106274726, }, tokens_burnt: NearToken { inner: 263710627472600000000, }, executor_id: AccountId( "dev-20240330212825-99229589556680", ), status: Failure(ActionError(ActionError { index: Some(0), kind: FunctionCallError(ExecutionError("Smart contract panicked: Invalid alias")) })), }, ExecutionOutcome { transaction_hash: 9MhBFRN2mLzEL4XSnGoVLxxDyL4xNZNsxDmWupSZRWNs, block_hash: HVQ2qLKGjwHfjap8DhZ3D5TsxWSoS7WGBgUEQyadzuyC, logs: [], receipt_ids: [], gas_burnt: NearGas { inner: 223182562500, }, tokens_burnt: NearToken { inner: 0, }, executor_id: AccountId( "dev-20240330212825-99229589556680", ), status: SuccessValue(''), }, ], status: Failure(ActionError(ActionError { index: Some(0), kind: FunctionCallError(ExecutionError("Smart contract panicked: Invalid alias")) })), } total_gas_burnt_usd: 0.0035325585241569443 outcome (success: true): outcome_gas_burnt_usd: 0.001621885580889976 outcome_tokens_burnt_usd: 0.0 outcome (success: false): outcome_gas_burnt_usd: 0.0017615869915169678 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.00014908595175 outcome_tokens_burnt_usd: 0.0 dev_create_account(account1): Account { id: AccountId( "dev-20240330212827-55636038544896", ), } generate_cid_borsh(account1): ViewResultDetails { result: [ 59, 0, 0, 0, 98, 97, 102, 107, 114, 101, 105, 104, 100, 119, 100, 99, 101, 102, 103, 104, 52, 100, 113, 107, 106, 118, 54, 55, 117, 122, 99, 109, 119, 55, 111, 106, 101, 101, 54, 120, 101, 100, 122, 100, 101, 116, 111, 106, 117, 122, 106, 101, 118, 116, 101, 110, 120, 113, 117, 118, 121, 107, 117, ], logs: [], } claim_alias(account1, alias1): ExecutionFinalResult { total_gas_burnt: NearGas { inner: 5710187837269, }, transaction: ExecutionOutcome { transaction_hash: EZu15uv4fAApnMgmaHmTPurAkvDrb1EAJJ7S4iRYdM66, block_hash: B2vgfyQuMB1M3yFAAwUrVtLUGaGH4kkLm7evHjgeagYp, logs: [], receipt_ids: [ 5LYEXqEhjt7kkHBHx54MAJJWCRsz69dyCSyBsPx4nia7, ], gas_burnt: NearGas { inner: 2427985842086, }, tokens_burnt: NearToken { inner: 242798584208600000000, }, executor_id: AccountId( "dev-20240330212827-55636038544896", ), status: SuccessReceiptId(5LYEXqEhjt7kkHBHx54MAJJWCRsz69dyCSyBsPx4nia7), }, receipts: [ ExecutionOutcome { transaction_hash: 5LYEXqEhjt7kkHBHx54MAJJWCRsz69dyCSyBsPx4nia7, block_hash: GuToYDoP5DHAArBbUkhYxQN5c2WNDU4giBREKvzEpWSY, logs: [ "claim_alias / alias: \"alias1\" / account_id: AccountId(\n \"dev-20240330212827-55636038544896\",\n) / timestamp: 1711834109316423931", ], receipt_ids: [ 6K2ZNDLTvygFN9bZbLdoY4PARPkW1ragEonvkgivSSAK, ], gas_burnt: NearGas { inner: 3059019432683, }, tokens_burnt: NearToken { inner: 305901943268300000000, }, executor_id: AccountId( "dev-20240330212825-99229589556680", ), status: SuccessValue(''), }, ExecutionOutcome { transaction_hash: 6K2ZNDLTvygFN9bZbLdoY4PARPkW1ragEonvkgivSSAK, block_hash: 4uTBppEoxhFh48u3caZNtJNeLhPpznePxfAEnKysAeZY, logs: [], receipt_ids: [], gas_burnt: NearGas { inner: 223182562500, }, tokens_burnt: NearToken { inner: 0, }, executor_id: AccountId( "dev-20240330212827-55636038544896", ), status: SuccessValue(''), }, ], status: SuccessValue(''), } total_gas_burnt_usd: 0.0038144054752956916 outcome (success: true): outcome_gas_burnt_usd: 0.0016218945425134478 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.0020434249810322436 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.00014908595175 outcome_tokens_burnt_usd: 0.0 claim_alias(account1, alias1): ExecutionFinalResult { total_gas_burnt: NearGas { inner: 5534498445214, }, transaction: ExecutionOutcome { transaction_hash: 8AKR29v28x9ifTC1r2x2eHEgZs2QV5wN1RyqL33Dk8Zm, block_hash: 9kJPT5v2sZHJaky3bHYdP1dUTPvDuAxQ8CkxnCcjsLEV, logs: [], receipt_ids: [ JBVCxAmFSJYker15i7LAvzpUxvebFeDdTyRXipsQ5Wp1, ], gas_burnt: NearGas { inner: 2427985842086, }, tokens_burnt: NearToken { inner: 242798584208600000000, }, executor_id: AccountId( "dev-20240330212827-55636038544896", ), status: SuccessReceiptId(JBVCxAmFSJYker15i7LAvzpUxvebFeDdTyRXipsQ5Wp1), }, receipts: [ ExecutionOutcome { transaction_hash: JBVCxAmFSJYker15i7LAvzpUxvebFeDdTyRXipsQ5Wp1, block_hash: H2TLo3E8VWRUu1rp5JuWhaxGYKcFjZMjLveSbgMYPB8z, logs: [ "claim_alias / alias: \"alias1\" / account_id: AccountId(\n \"dev-20240330212827-55636038544896\",\n) / timestamp: 1711834110330307811", "Alias already claimed", ], receipt_ids: [ 7kgtTYBciaFKrE1WDZo53MZjr4taBc9PaXWPGyRb5jaA, ], gas_burnt: NearGas { inner: 2883330040628, }, tokens_burnt: NearToken { inner: 288333004062800000000, }, executor_id: AccountId( "dev-20240330212825-99229589556680", ), status: SuccessValue(''), }, ExecutionOutcome { transaction_hash: 7kgtTYBciaFKrE1WDZo53MZjr4taBc9PaXWPGyRb5jaA, block_hash: A6AnFd8F3JyGhUDNjS8QWiE8QLaWW4t4sGCiMg6KzJ93, logs: [], receipt_ids: [], gas_burnt: NearGas { inner: 223182562500, }, tokens_burnt: NearToken { inner: 0, }, executor_id: AccountId( "dev-20240330212827-55636038544896", ), status: SuccessValue(''), }, ], status: SuccessValue(''), } total_gas_burnt_usd: 0.0036970449614029516 outcome (success: true): outcome_gas_burnt_usd: 0.0016218945425134478 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.0019260644671395038 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.00014908595175 outcome_tokens_burnt_usd: 0.0 get_account_info(account1): Some( ( "alias1", ( 1711834109316423931, 0, ), ), ) get_alias_map(account1, alias1): Some( { AccountId( "dev-20240330212827-55636038544896", ): ( 1711834109316423931, 0, ), }, ) dev_create_account(account2): Account { id: AccountId( "dev-20240330212830-73853648313635", ), } claim_alias(alias2): ExecutionFinalResult { total_gas_burnt: NearGas { inner: 5797537616899, }, transaction: ExecutionOutcome { transaction_hash: 8E4n9zKVwcCCJRjNxd1QpoSqEzAqBMrXypFBu86db2VK, block_hash: DYyZK29vF1KCwwJs4qYvJxZGT3ocVS2BeUi93S5kjJyd, logs: [], receipt_ids: [ 6iGMFZKVBLjUhUsYfGLv1CGLv81tQRSdLNrCsQFbs4Mj, ], gas_burnt: NearGas { inner: 2427985842086, }, tokens_burnt: NearToken { inner: 242798584208600000000, }, executor_id: AccountId( "dev-20240330212830-73853648313635", ), status: SuccessReceiptId(6iGMFZKVBLjUhUsYfGLv1CGLv81tQRSdLNrCsQFbs4Mj), }, receipts: [ ExecutionOutcome { transaction_hash: 6iGMFZKVBLjUhUsYfGLv1CGLv81tQRSdLNrCsQFbs4Mj, block_hash: HH8EhAdivam8mR6AJMU4WbffB4o6LkGaGj86EkJ6PpFK, logs: [ "claim_alias / alias: \"alias2\" / account_id: AccountId(\n \"dev-20240330212830-73853648313635\",\n) / timestamp: 1711834112362475171", ], receipt_ids: [ Bd3M9iz8ZXehmZmbgcHQC7SCvJt3ga9akqH2roXAkP1r, ], gas_burnt: NearGas { inner: 3146369212313, }, tokens_burnt: NearToken { inner: 314636921231300000000, }, executor_id: AccountId( "dev-20240330212825-99229589556680", ), status: SuccessValue(''), }, ExecutionOutcome { transaction_hash: Bd3M9iz8ZXehmZmbgcHQC7SCvJt3ga9akqH2roXAkP1r, block_hash: 4j2p3TNJJt1iQVqkbYvnmNeZ5txwCHvR86fXSfKEzkyR, logs: [], receipt_ids: [], gas_burnt: NearGas { inner: 223182562500, }, tokens_burnt: NearToken { inner: 0, }, executor_id: AccountId( "dev-20240330212830-73853648313635", ), status: SuccessValue(''), }, ], status: SuccessValue(''), } total_gas_burnt_usd: 0.003872755128088532 outcome (success: true): outcome_gas_burnt_usd: 0.0016218945425134478 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.002101774633825084 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.00014908595175 outcome_tokens_burnt_usd: 0.0 get_account_info(account2): Some( ( "alias2", ( 1711834112362475171, 0, ), ), ) get_alias_map_borsh(alias2): Some( { AccountId( "dev-20240330212830-73853648313635", ): ( 1711834112362475171, 0, ), }, ) claim_alias(account2, alias1): ExecutionFinalResult { total_gas_burnt: NearGas { inner: 6101669438386, }, transaction: ExecutionOutcome { transaction_hash: 9yCfNfNqSApueYZPMdbRC3ihFSJ46eEyMtZ2RAN4fbSn, block_hash: DLJpdD3pHQL62UjBMiFqQ4ZD2rrgZ9UaTLtydj2VQskX, logs: [], receipt_ids: [ 8FG2bNqSxYby2u8CSy4s6PGQnpWCUPPY4mca4fgmAs8n, ], gas_burnt: NearGas { inner: 2427985842086, }, tokens_burnt: NearToken { inner: 242798584208600000000, }, executor_id: AccountId( "dev-20240330212830-73853648313635", ), status: SuccessReceiptId(8FG2bNqSxYby2u8CSy4s6PGQnpWCUPPY4mca4fgmAs8n), }, receipts: [ ExecutionOutcome { transaction_hash: 8FG2bNqSxYby2u8CSy4s6PGQnpWCUPPY4mca4fgmAs8n, block_hash: 89vjEkoBBs3JyN8wgsMYEsRd65VAJ9bc25pgcERPo9te, logs: [ "claim_alias / alias: \"alias1\" / account_id: AccountId(\n \"dev-20240330212830-73853648313635\",\n) / timestamp: 1711834113377178252", ], receipt_ids: [ GyhxbkQto4cSiQorxutswZPqHkaVMJWQWgwxaGxkwTLC, ], gas_burnt: NearGas { inner: 3450501033800, }, tokens_burnt: NearToken { inner: 345050103380000000000, }, executor_id: AccountId( "dev-20240330212825-99229589556680", ), status: SuccessValue(''), }, ExecutionOutcome { transaction_hash: GyhxbkQto4cSiQorxutswZPqHkaVMJWQWgwxaGxkwTLC, block_hash: 6ND4h6ACbrczYa7E8kA9XqhAC9wGhYrBzbT4JAQgKJ6q, logs: [], receipt_ids: [], gas_burnt: NearGas { inner: 223182562500, }, tokens_burnt: NearToken { inner: 0, }, executor_id: AccountId( "dev-20240330212830-73853648313635", ), status: SuccessValue(''), }, ], status: SuccessValue(''), } total_gas_burnt_usd: 0.004075915184841848 outcome (success: true): outcome_gas_burnt_usd: 0.0016218945425134478 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.0023049346905784 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.00014908595175 outcome_tokens_burnt_usd: 0.0 get_account_info(account2): Some( ( "alias1", ( 1711834113377178252, 1, ), ), ) get_alias_map(account2, alias1): Some( { AccountId( "dev-20240330212827-55636038544896", ): ( 1711834109316423931, 0, ), AccountId( "dev-20240330212830-73853648313635", ): ( 1711834113377178252, 1, ), }, ) get_alias_map(account2, alias2): Some( {}, ) claim_alias(account1, alias2): ExecutionFinalResult { total_gas_burnt: NearGas { inner: 6096363484942, }, transaction: ExecutionOutcome { transaction_hash: AtMwoqiug26HTYoLaW8sciheCSvtmQk5WvyMvSbwkeKd, block_hash: 52ysE2Ji894r9E829WrVfF5NEk3FUQdZrxQGNT5gCz7e, logs: [], receipt_ids: [ 9c5qW187tFGpxzKLTcegnnQh49WKDgRZhbNszZi8pzGa, ], gas_burnt: NearGas { inner: 2427985842086, }, tokens_burnt: NearToken { inner: 242798584208600000000, }, executor_id: AccountId( "dev-20240330212827-55636038544896", ), status: SuccessReceiptId(9c5qW187tFGpxzKLTcegnnQh49WKDgRZhbNszZi8pzGa), }, receipts: [ ExecutionOutcome { transaction_hash: 9c5qW187tFGpxzKLTcegnnQh49WKDgRZhbNszZi8pzGa, block_hash: 55P35aXZ3aXG2H7sHE1ExhUChL2zBT2C4PbaaCxNijR3, logs: [ "claim_alias / alias: \"alias2\" / account_id: AccountId(\n \"dev-20240330212827-55636038544896\",\n) / timestamp: 1711834114391577432", ], receipt_ids: [ FfezqkbRygTHo5MhHN3z5eNQsdRwG4SLkuAwHsYZA5y, ], gas_burnt: NearGas { inner: 3445195080356, }, tokens_burnt: NearToken { inner: 344519508035600000000, }, executor_id: AccountId( "dev-20240330212825-99229589556680", ), status: SuccessValue(''), }, ExecutionOutcome { transaction_hash: FfezqkbRygTHo5MhHN3z5eNQsdRwG4SLkuAwHsYZA5y, block_hash: 2nQ2y8kTe8q2Tj9BFqi8zhwUz7rpvFcSGCwKGGgZ9zAN, logs: [], receipt_ids: [], gas_burnt: NearGas { inner: 223182562500, }, tokens_burnt: NearToken { inner: 0, }, executor_id: AccountId( "dev-20240330212827-55636038544896", ), status: SuccessValue(''), }, ], status: SuccessValue(''), } total_gas_burnt_usd: 0.004072370807941255 outcome (success: true): outcome_gas_burnt_usd: 0.0016218945425134478 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.002301390313677808 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.00014908595175 outcome_tokens_burnt_usd: 0.0 get_account_info(account1): Some( ( "alias2", ( 1711834114391577432, 0, ), ), ) get_alias_map(account1, alias2): Some( { AccountId( "dev-20240330212827-55636038544896", ): ( 1711834114391577432, 0, ), }, ) get_alias_map(account1, alias1): Some( { AccountId( "dev-20240330212830-73853648313635", ): ( 1711834113377178252, 1, ), }, ) claim_alias(account1, alias1): ExecutionFinalResult { total_gas_burnt: NearGas { inner: 6101692475554, }, transaction: ExecutionOutcome { transaction_hash: 3Ck8VSvC9DV1mzAHuxGsWHJpPvVXDEkhHkQ4KZpDqYNr, block_hash: CciKebTZuBPqygHrdR6sj5gf5MHf92RHMRS7cVpc4PTx, logs: [], receipt_ids: [ EgS1aC7xx1fQpgKrBMSqG3k5tk8AuZZakxR8pWZ2esck, ], gas_burnt: NearGas { inner: 2427985842086, }, tokens_burnt: NearToken { inner: 242798584208600000000, }, executor_id: AccountId( "dev-20240330212827-55636038544896", ), status: SuccessReceiptId(EgS1aC7xx1fQpgKrBMSqG3k5tk8AuZZakxR8pWZ2esck), }, receipts: [ ExecutionOutcome { transaction_hash: EgS1aC7xx1fQpgKrBMSqG3k5tk8AuZZakxR8pWZ2esck, block_hash: 4ipg3AbPVvEWAjMqUFg97bLtMUaJ4jomG5y6hUtjkMrM, logs: [ "claim_alias / alias: \"alias1\" / account_id: AccountId(\n \"dev-20240330212827-55636038544896\",\n) / timestamp: 1711834115404610112", ], receipt_ids: [ BAXdUYrhiXXKFwmuk6H5AV2vx27n44Cd4rQNmURyoPkH, ], gas_burnt: NearGas { inner: 3450524070968, }, tokens_burnt: NearToken { inner: 345052407096800000000, }, executor_id: AccountId( "dev-20240330212825-99229589556680", ), status: SuccessValue(''), }, ExecutionOutcome { transaction_hash: BAXdUYrhiXXKFwmuk6H5AV2vx27n44Cd4rQNmURyoPkH, block_hash: ApYox5WxnwZaQq6TiWtgZMYeJneggCdZLeEfFmC5EqJi, logs: [], receipt_ids: [], gas_burnt: NearGas { inner: 223182562500, }, tokens_burnt: NearToken { inner: 0, }, executor_id: AccountId( "dev-20240330212827-55636038544896", ), status: SuccessValue(''), }, ], status: SuccessValue(''), } total_gas_burnt_usd: 0.004075930573670072 outcome (success: true): outcome_gas_burnt_usd: 0.0016218945425134478 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.0023049500794066237 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.00014908595175 outcome_tokens_burnt_usd: 0.0 get_account_info(account1): Some( ( "alias1", ( 1711834115404610112, 1, ), ), ) get_alias_map(account1, alias1): Some( { AccountId( "dev-20240330212827-55636038544896", ): ( 1711834115404610112, 1, ), AccountId( "dev-20240330212830-73853648313635", ): ( 1711834113377178252, 0, ), }, ) get_alias_map(account1, alias2): Some( {}, )
In [ ]:
{ . "$ScriptDir/../apps/spiral/temp/extension/build.ps1" } | Invoke-Block
Lockfile is up to date, resolution step is skipped Already up to date Done in 2.3s [INFO]: 🎯 Checking for the Wasm target... [INFO]: 🌀 Compiling to Wasm... Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.44s [INFO]: ⬇️ Installing wasm-bindgen... [INFO]: origin crate has no LICENSE [INFO]: ✨ Done in 4.94s [INFO]: 📦 Your wasm pkg is ready to publish at C:\home\git\polyglot\apps\spiral\temp\extension\pkg. ▲ [WARNING] "import.meta" is not available with the "iife" output format and will be empty [empty-import-meta] pkg/spiral_temp_extension.js:1486:57: 1486 │ ...put = new URL('spiral_temp_extension_bg.wasm', import.meta.url); ╵ ~~~~~~~~~~~ You need to set the output format to "esm" for "import.meta" to work correctly. 1 warning dist\spiral_temp_extension_bg-DKMN4MU6.wasm 4.5mb ⚠️ dist\devtools.js 29.0kb dist\content_script.js 26.9kb dist\service_worker.js 2.2kb ⚡ Done in 218ms > polyglot@ test:e2e C:\home\git\polyglot\apps\spiral\temp\extension > playwright test [WebServer] (node:31488) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead. (Use `node --trace-deprecation ...` to show where the warning was created) Running 3 tests using 3 workers [1/3] [Desktop Chrome] › extension.spec.ts:3:5 › popup localhost [2/3] [Desktop Chrome] › extension.spec.ts:8:5 › popup extension [3/3] [Desktop Chrome] › extension.spec.ts:13:5 › libgen 3 passed (20.2s) To open last HTML report run: pnpm exec playwright show-report
In [ ]:
{ . "$ScriptDir/../apps/spiral/temp/test/build.ps1" } | Invoke-Block
── pwsh ────────────────────────────────────────────────────────────────────────
. ../../../../scripts/nbs_header.ps1
. ../../../../scripts/core.ps1
── pwsh ────────────────────────────────────────────────────────────────────────
{ . ../../../../apps/spiral/dist/Supervisor$(GetExecutableSuffix)
--execute-command "pwsh -c `"../../../../scripts/invoke-dib.ps1 test.dib`"" } |
Invoke-Block -Retries 5
╭─[ 18.32s - stdout ]──────────────────────────────────────────────────────────╮
│ 00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:00 #2 [Debug] executeAsync / options: { Command = "pwsh -c │
│ "../../../../scripts/invoke-dib.ps1 test.dib"" │
│ WorkingDirectory = None │
│ CancellationToken = Some System.Threading.CancellationToken │
│ OnLine = None } │
│ 00:00:02 #3 [Verbose] > │
│ 00:00:02 #4 [Verbose] > ── markdown │
│ ──────────────────────────────────────────────────────────────────── │
│ 00:00:02 #5 [Verbose] > │
│ ╭─────────────────────────────────────────────────────────────────────────── │
│ ───╮ │
│ 00:00:02 #6 [Verbose] > │ # test (Polyglot) │
│ │ │
│ 00:00:02 #7 [Verbose] > │
│ ╰─────────────────────────────────────────────────────────────────────────── │
│ ───╯ │
│ 00:00:02 #8 [Verbose] > │
│ 00:00:02 #9 [Verbose] > ── spiral │
│ ────────────────────────────────────────────────────────────────────── │
│ 00:00:02 #10 [Verbose] > // // test │
│ 00:00:02 #11 [Verbose] > │
│ 00:00:02 #12 [Verbose] > open testing │
│ 00:00:06 #13 [Verbose] > │
│ 00:00:06 #14 [Verbose] > ╭─[ 4.18s - stdout │
│ ]───────────────────────────────────────────────────────────╮ │
│ 00:00:06 #15 [Verbose] > │ () │
│ │ │
│ 00:00:06 #16 [Verbose] > │ │
│ │
│ │ │
│ 00:00:06 #17 [Verbose] > │ │
│ │
│ │ │
│ 00:00:06 #18 [Verbose] > │
│ ╰─────────────────────────────────────────────────────────────────────────── │
│ ───╯ │
│ 00:00:06 #19 [Verbose] > │
│ 00:00:06 #20 [Verbose] > ── spiral │
│ ────────────────────────────────────────────────────────────────────── │
│ 00:00:06 #21 [Verbose] > nominal i = () │
│ 00:00:06 #22 [Verbose] > nominal e = () │
│ 00:00:06 #23 [Verbose] > nominal s = () │
│ 00:00:06 #24 [Verbose] > nominal n = () │
│ 00:00:06 #25 [Verbose] > nominal t = () │
│ 00:00:06 #26 [Verbose] > nominal f = () │
│ 00:00:06 #27 [Verbose] > nominal j = () │
│ 00:00:06 #28 [Verbose] > nominal p = () │
│ 00:00:06 #29 [Verbose] > │
│ 00:00:06 #30 [Verbose] > union sensing = │
│ 00:00:06 #31 [Verbose] > | Si : s * i │
│ 00:00:06 #32 [Verbose] > | Se : s * e │
│ 00:00:06 #33 [Verbose] > │
│ 00:00:06 #34 [Verbose] > union intuition = │
│ 00:00:06 #35 [Verbose] > | Ni : n * i │
│ 00:00:06 #36 [Verbose] > | Ne : n * e │
│ 00:00:06 #37 [Verbose] > │
│ 00:00:06 #38 [Verbose] > union thinking = │
│ 00:00:06 #39 [Verbose] > | Ti : t * i │
│ 00:00:06 #40 [Verbose] > | Te : t * e │
│ 00:00:06 #41 [Verbose] > │
│ 00:00:06 #42 [Verbose] > union feeling = │
│ 00:00:06 #43 [Verbose] > | Fi : f * i │
│ 00:00:06 #44 [Verbose] > | Fe : f * e │
│ 00:00:06 #45 [Verbose] > │
│ 00:00:06 #46 [Verbose] > union function_stack = │
│ 00:00:06 #47 [Verbose] > | FS : sensing * intuition * thinking * feeling │
│ 00:00:06 #48 [Verbose] > │
│ 00:00:06 #49 [Verbose] > union personality_type = │
│ 00:00:06 #50 [Verbose] > | ISTJ : i * s * t * j * function_stack │
│ 00:00:06 #51 [Verbose] > | ISFJ : i * s * f * j * function_stack │
│ 00:00:06 #52 [Verbose] > | INFJ : i * n * f * j * function_stack │
│ 00:00:06 #53 [Verbose] > | INTJ : i * n * t * j * function_stack │
│ 00:00:06 #54 [Verbose] > | ISTP : i * s * t * p * function_stack │
│ 00:00:06 #55 [Verbose] > | ISFP : i * s * f * p * function_stack │
│ 00:00:06 #56 [Verbose] > | INFP : i * n * f * p * function_stack │
│ 00:00:06 #57 [Verbose] > | INTP : i * n * t * p * function_stack │
│ 00:00:06 #58 [Verbose] > | ESTP : e * s * t * p * function_stack │
│ 00:00:06 #59 [Verbose] > | ESFP : e * s * f * p * function_stack │
│ 00:00:06 #60 [Verbose] > | ENFP : e * n * f * p * function_stack │
│ 00:00:06 #61 [Verbose] > | ENTP : e * n * t * p * function_stack │
│ 00:00:06 #62 [Verbose] > | ESTJ : e * s * t * j * function_stack │
│ 00:00:06 #63 [Verbose] > | ESFJ : e * s * f * j * function_stack │
│ 00:00:06 #64 [Verbose] > | ENFJ : e * n * f * j * function_stack │
│ 00:00:06 #65 [Verbose] > | ENTJ : e * n * t * j * function_stack │
│ 00:00:06 #66 [Verbose] > │
│ 00:00:06 #67 [Verbose] > │
│ 00:00:06 #68 [Verbose] > inl main () = │
│ 00:00:06 #69 [Verbose] > inl istj_stack = FS ((Si (s, i)), Ne (n, e), │
│ (Te (t, e)), (Fi (f, i))) │
│ 00:00:06 #70 [Verbose] > inl istj_personality = ISTJ (i, s, t, j, │
│ istj_stack) │
│ 00:00:06 #71 [Verbose] > // inl isfj_stack = FS ((Si (s, i)), Ne (n, e), │
│ (Fe (f, e)), (Ti (t, i))) │
│ 00:00:06 #72 [Verbose] > // inl isfj_personality = ISFJ (i, s, f, j, │
│ isfj_stack) │
│ 00:00:06 #73 [Verbose] > │
│ 00:00:06 #74 [Verbose] > ;[[ │
│ 00:00:06 #75 [Verbose] > istj_personality │
│ 00:00:06 #76 [Verbose] > ]] │
│ 00:00:06 #77 [Verbose] > |> fun x => $'$"%A{!x}"' : string │
│ 00:00:06 #78 [Verbose] > |> console.write_line │
│ 00:00:06 #79 [Verbose] > │
│ 00:00:06 #80 [Verbose] > inl main () = │
│ 00:00:06 #81 [Verbose] > $"!main ()" : () │
│ 00:00:08 #82 [Verbose] > │
│ 00:00:08 #83 [Verbose] > ╭─[ 1.70s - stdout │
│ ]───────────────────────────────────────────────────────────╮ │
│ 00:00:08 #84 [Verbose] > │ type [<Struct>] US0 = │
│ │ │
│ 00:00:08 #85 [Verbose] > │ | US0_0 │
│ │ │
│ 00:00:08 #86 [Verbose] > │ | US0_1 │
│ │ │
│ 00:00:08 #87 [Verbose] > │ and [<Struct>] US1 = │
│ │ │
│ 00:00:08 #88 [Verbose] > │ | US1_0 │
│ │ │
│ 00:00:08 #89 [Verbose] > │ | US1_1 │
│ │ │
│ 00:00:08 #90 [Verbose] > │ and [<Struct>] US2 = │
│ │ │
│ 00:00:08 #91 [Verbose] > │ | US2_0 │
│ │ │
│ 00:00:08 #92 [Verbose] > │ | US2_1 │
│ │ │
│ 00:00:08 #93 [Verbose] > │ and [<Struct>] US3 = │
│ │ │
│ 00:00:08 #94 [Verbose] > │ | US3_0 │
│ │ │
│ 00:00:08 #95 [Verbose] > │ | US3_1 │
│ │ │
│ 00:00:08 #96 [Verbose] > │ and [<Struct>] US4 = │
│ │ │
│ 00:00:08 #97 [Verbose] > │ | US4_0 of f0_0 : US0 * f0_1 : US1 * f0_2 : │
│ US2 * f0_3 : US3 │ │
│ 00:00:08 #98 [Verbose] > │ and [<Struct>] US5 = │
│ │ │
│ 00:00:08 #99 [Verbose] > │ | US5_0 of f0_0 : US4 │
│ │ │
│ 00:00:08 #100 [Verbose] > │ | US5_1 of f1_0 : US4 │
│ │ │
│ 00:00:08 #101 [Verbose] > │ | US5_2 of f2_0 : US4 │
│ │ │
│ 00:00:08 #102 [Verbose] > │ | US5_3 of f3_0 : US4 │
│ │ │
│ 00:00:08 #103 [Verbose] > │ | US5_4 of f4_0 : US4 │
│ │ │
│ 00:00:08 #104 [Verbose] > │ | US5_5 of f5_0 : US4 │
│ │ │
│ 00:00:08 #105 [Verbose] > │ | US5_6 of f6_0 : US4 │
│ │ │
│ 00:00:08 #106 [Verbose] > │ | US5_7 of f7_0 : US4 │
│ │ │
│ 00:00:08 #107 [Verbose] > │ | US5_8 of f8_0 : US4 │
│ │ │
│ 00:00:08 #108 [Verbose] > │ | US5_9 of f9_0 : US4 │
│ │ │
│ 00:00:08 #109 [Verbose] > │ | US5_10 of f10_0 : US4 │
│ │ │
│ 00:00:08 #110 [Verbose] > │ | US5_11 of f11_0 : US4 │
│ │ │
│ 00:00:08 #111 [Verbose] > │ | US5_12 of f12_0 : US4 │
│ │ │
│ 00:00:08 #112 [Verbose] > │ | US5_13 of f13_0 : US4 │
│ │ │
│ 00:00:08 #113 [Verbose] > │ | US5_14 of f14_0 : US4 │
│ │ │
│ 00:00:08 #114 [Verbose] > │ | US5_15 of f15_0 : US4 │
│ │ │
│ 00:00:08 #115 [Verbose] > │ let rec method0 (v0 : (US5 [])) : (US5 []) = │
│ │ │
│ 00:00:08 #116 [Verbose] > │ v0 │
│ │ │
│ 00:00:08 #117 [Verbose] > │ and closure0 () () : unit = │
│ │ │
│ 00:00:08 #118 [Verbose] > │ let v0 : US0 = US0_1 │
│ │ │
│ 00:00:08 #119 [Verbose] > │ let v1 : US1 = US1_0 │
│ │ │
│ 00:00:08 #120 [Verbose] > │ let v2 : US2 = US2_0 │
│ │ │
│ 00:00:08 #121 [Verbose] > │ let v3 : US3 = US3_1 │
│ │ │
│ 00:00:08 #122 [Verbose] > │ let v4 : US4 = US4_0(v0, v1, v2, v3) │
│ │ │
│ 00:00:08 #123 [Verbose] > │ let v5 : US5 = US5_14(v4) │
│ │ │
│ 00:00:08 #124 [Verbose] > │ let v6 : (US5 []) = [|v5|] │
│ │ │
│ 00:00:08 #125 [Verbose] > │ let v7 : (US5 []) = method0(v6) │
│ │ │
│ 00:00:08 #126 [Verbose] > │ let v8 : string = $"%A{v7}" │
│ │ │
│ 00:00:08 #127 [Verbose] > │ System.Console.WriteLine v8 │
│ │ │
│ 00:00:08 #128 [Verbose] > │ () │
│ │ │
│ 00:00:08 #129 [Verbose] > │ let v0 : (unit -> unit) = closure0() │
│ │ │
│ 00:00:08 #130 [Verbose] > │ v0 () │
│ │ │
│ 00:00:08 #131 [Verbose] > │ () │
│ │ │
│ 00:00:08 #132 [Verbose] > │ │
│ │
│ │ │
│ 00:00:08 #133 [Verbose] > │ [|US5_14 (US4_0 (US0_1, US1_0, US2_0, US3_1))|] │
│ │ │
│ 00:00:08 #134 [Verbose] > │ │
│ │
│ │ │
│ 00:00:08 #135 [Verbose] > │
│ ╰─────────────────────────────────────────────────────────────────────────── │
│ ───╯ │
│ 00:00:08 #136 [Verbose] > │
│ 00:00:08 #137 [Verbose] > ── fsharp │
│ ────────────────────────────────────────────────────────────────────── │
│ 00:00:08 #138 [Verbose] > type PhonologicalFeature = │
│ 00:00:08 #139 [Verbose] > | VowelFeature of │
│ 00:00:08 #140 [Verbose] > height: Height │
│ 00:00:08 #141 [Verbose] > * backness: Backness │
│ 00:00:08 #142 [Verbose] > * roundedness: Roundedness │
│ 00:00:08 #143 [Verbose] > * tone: Option<Tone> │
│ 00:00:08 #144 [Verbose] > * stress: Option<Stress> │
│ 00:00:08 #145 [Verbose] > * length: Option<Length> │
│ 00:00:08 #146 [Verbose] > | ConsonantFeature of │
│ 00:00:08 #147 [Verbose] > place: PlaceOfArticulation │
│ 00:00:08 #148 [Verbose] > * manner: MannerOfArticulation │
│ 00:00:08 #149 [Verbose] > * voicing: Voicing │
│ 00:00:08 #150 [Verbose] > * length: Option<Length> │
│ 00:00:08 #151 [Verbose] > | VowelHarmonyFeature │
│ 00:00:08 #152 [Verbose] > | PitchAccentFeature │
│ 00:00:08 #153 [Verbose] > │
│ 00:00:08 #154 [Verbose] > and Stress = Primary | Secondary │
│ 00:00:08 #155 [Verbose] > and Length = Long | Short | HalfLong │
│ 00:00:08 #156 [Verbose] > │
│ 00:00:08 #157 [Verbose] > and Height = │
│ 00:00:08 #158 [Verbose] > | High | NearHigh | HighMid │
│ 00:00:08 #159 [Verbose] > | Mid | LowMid | NearLow │
│ 00:00:08 #160 [Verbose] > | Low │
│ 00:00:08 #161 [Verbose] > │
│ 00:00:08 #162 [Verbose] > and Backness = Front | Central | Back │
│ 00:00:08 #163 [Verbose] > │
│ 00:00:08 #164 [Verbose] > and Roundedness = Rounded | Unrounded │
│ 00:00:08 #165 [Verbose] > │
│ 00:00:08 #166 [Verbose] > and PlaceOfArticulation = │
│ 00:00:08 #167 [Verbose] > | Bilabial | Labiodental | Dental │
│ 00:00:08 #168 [Verbose] > | Alveolar | Postalveolar | Retroflex │
│ 00:00:08 #169 [Verbose] > | Palatal | Velar | Uvular │
│ 00:00:08 #170 [Verbose] > | Pharyngeal | Epiglottal | Glottal │
│ 00:00:08 #171 [Verbose] > │
│ 00:00:08 #172 [Verbose] > and MannerOfArticulation = │
│ 00:00:08 #173 [Verbose] > | Plosive | Nasal | Trill │
│ 00:00:08 #174 [Verbose] > | TapOrFlap | Fricative | LateralFricative │
│ 00:00:08 #175 [Verbose] > | Approximant | LateralApproximant │
│ 00:00:08 #176 [Verbose] > │
│ 00:00:08 #177 [Verbose] > and Voicing = Voiced | Voiceless │
│ 00:00:08 #178 [Verbose] > │
│ 00:00:08 #179 [Verbose] > and SecondaryArticulation = │
│ 00:00:08 #180 [Verbose] > | Labialization | Palatalization | │
│ Velarization │
│ 00:00:08 #181 [Verbose] > | Pharyngealization | Aspiration │
│ 00:00:08 #182 [Verbose] > │
│ 00:00:08 #183 [Verbose] > and Tone = │
│ 00:00:08 #184 [Verbose] > | LevelTone of int │
│ 00:00:08 #185 [Verbose] > | ContourTone of int list │
│ 00:00:08 #186 [Verbose] > │
│ 00:00:08 #187 [Verbose] > and MorphologicalFeature = │
│ 00:00:08 #188 [Verbose] > | RootFeature of string │
│ 00:00:08 #189 [Verbose] > | AffixFeature of AffixType * string │
│ 00:00:08 #190 [Verbose] > | IncorporationFeature of string * │
│ MorphologicalFeature │
│ 00:00:08 #191 [Verbose] > | NonConcatenativePattern of string * string │
│ 00:00:08 #192 [Verbose] > | AgglutinativeAffixFeature of │
│ AgglutinativeAffixType * string │
│ 00:00:08 #193 [Verbose] > | HonorificFeature of HonorificType * string │
│ 00:00:08 #194 [Verbose] > │
│ 00:00:08 #195 [Verbose] > and AgglutinativeAffixType = Suffix | Prefix │
│ 00:00:08 #196 [Verbose] > │
│ 00:00:08 #197 [Verbose] > and HonorificType = VerbHonorific | NounHonorific │
│ 00:00:08 #198 [Verbose] > │
│ 00:00:08 #199 [Verbose] > and AffixType = │
│ 00:00:08 #200 [Verbose] > | Prefix | Suffix | Infix │
│ 00:00:08 #201 [Verbose] > | Circumfix │
│ 00:00:08 #202 [Verbose] > │
│ 00:00:08 #203 [Verbose] > type SyntacticFeature = │
│ 00:00:08 #204 [Verbose] > | WordFeature of MorphologicalFeature list * │
│ LexicalCategory │
│ 00:00:08 #205 [Verbose] > | PhraseFeature of PhraseType * │
│ SyntacticFeature list │
│ 00:00:08 #206 [Verbose] > | GrammaticalRelation of │
│ GrammaticalRelationType * SyntacticFeature list │
│ 00:00:08 #207 [Verbose] > | SOVOrderFeature │
│ 00:00:08 #208 [Verbose] > | TopicCommentFeature │
│ 00:00:08 #209 [Verbose] > │
│ 00:00:08 #210 [Verbose] > and GrammaticalRelationType = │
│ 00:00:08 #211 [Verbose] > | Ergative | Absolutive | Nominative │
│ 00:00:08 #212 [Verbose] > | Accusative │
│ 00:00:08 #213 [Verbose] > │
│ 00:00:08 #214 [Verbose] > and LexicalCategory = │
│ 00:00:08 #215 [Verbose] > | Noun | Verb | Adjective │
│ 00:00:08 #216 [Verbose] > | Adverb | Pronoun | Preposition │
│ 00:00:08 #217 [Verbose] > | Conjunction | Determiner | Interjection │
│ 00:00:08 #218 [Verbose] > │
│ 00:00:08 #219 [Verbose] > and PhraseType = │
│ 00:00:08 #220 [Verbose] > | NP | VP | AP │
│ 00:00:08 #221 [Verbose] > | PP | CP │
│ 00:00:08 #222 [Verbose] > │
│ 00:00:08 #223 [Verbose] > and SemanticFeature = │
│ 00:00:08 #224 [Verbose] > | Meaning of string │
│ 00:00:08 #225 [Verbose] > | SemanticRole of SemanticRoleType * │
│ SemanticFeature │
│ 00:00:08 #226 [Verbose] > │
│ 00:00:08 #227 [Verbose] > and SemanticRoleType = │
│ 00:00:08 #228 [Verbose] > | Agent | Patient | Instrument │
│ 00:00:08 #229 [Verbose] > | Location | Time | Cause │
│ 00:00:08 #230 [Verbose] > │
│ 00:00:08 #231 [Verbose] > and PragmaticFeature = │
│ 00:00:08 #232 [Verbose] > | UseContext of string │
│ 00:00:08 #233 [Verbose] > | PolitenessLevel of Politeness │
│ 00:00:08 #234 [Verbose] > | SpeechAct of SpeechActType │
│ 00:00:08 #235 [Verbose] > | SpeechLevel of SpeechLevelType │
│ 00:00:08 #236 [Verbose] > │
│ 00:00:08 #237 [Verbose] > and Politeness = Formal | Informal | Neutral │
│ 00:00:08 #238 [Verbose] > │
│ 00:00:08 #239 [Verbose] > and SpeechActType = │
│ 00:00:08 #240 [Verbose] > | Assertive | Directive | Commissive │
│ 00:00:08 #241 [Verbose] > | Expressive | Declarative │
│ 00:00:08 #242 [Verbose] > │
│ 00:00:08 #243 [Verbose] > and SpeechLevelType = │
│ 00:00:08 #244 [Verbose] > | FormalHigh | FormalLow | InformalHigh │
│ 00:00:08 #245 [Verbose] > | InformalLow | Neutral │
│ 00:00:08 #246 [Verbose] > │
│ 00:00:08 #247 [Verbose] > type LinguisticFeature = │
│ 00:00:08 #248 [Verbose] > | Phonological of PhonologicalFeature │
│ 00:00:08 #249 [Verbose] > | Morphological of MorphologicalFeature │
│ 00:00:08 #250 [Verbose] > | Syntactic of SyntacticFeature │
│ 00:00:08 #251 [Verbose] > | Semantic of SemanticFeature │
│ 00:00:08 #252 [Verbose] > | Pragmatic of PragmaticFeature │
│ 00:00:08 #253 [Verbose] > │
│ 00:00:08 #254 [Verbose] > type LanguageConstruct = │
│ 00:00:08 #255 [Verbose] > | LanguageElement of LinguisticFeature │
│ 00:00:08 #256 [Verbose] > | LanguageStructure of LanguageConstruct list │
│ 00:00:08 #257 [Verbose] > | TranslationElement of TranslationFeature │
│ 00:00:08 #258 [Verbose] > │
│ 00:00:08 #259 [Verbose] > and TranslationFeature = │
│ 00:00:08 #260 [Verbose] > | LinkedPhonological of PhonologicalFeature * │
│ PhonologicalFeature │
│ 00:00:08 #261 [Verbose] > | LinkedMorphological of MorphologicalFeature │
│ * MorphologicalFeature │
│ 00:00:08 #262 [Verbose] > | LinkedSyntactic of SyntacticFeature * │
│ SyntacticFeature │
│ 00:00:08 #263 [Verbose] > | LinkedSemantic of SemanticFeature * │
│ SemanticFeature │
│ 00:00:08 #264 [Verbose] > │
│ 00:00:08 #265 [Verbose] > type Discourse = DiscourseUnit of │
│ LanguageConstruct list │
│ 00:00:08 #266 [Verbose] > │
│ 00:00:08 #267 [Verbose] > type LanguageModel = │
│ 00:00:08 #268 [Verbose] > | Model of discourse: Discourse │
│ 00:00:08 #269 [Verbose] > │
│ 00:00:08 #270 [Verbose] > ── fsharp - import │
│ ───────────────────────────────────────────────────────────── │
│ 00:00:08 #271 [Verbose] > #r │
│ 00:00:08 #272 [Verbose] > │
│ "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microso │
│ ft.A │
│ 00:00:08 #273 [Verbose] > spNetCore.Html.Abstractions.dll" │
│ 00:00:08 #274 [Verbose] > #r │
│ 00:00:08 #275 [Verbose] > │
│ "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microso │
│ ft.D │
│ 00:00:08 #276 [Verbose] > otNet.Interactive.dll" │
│ 00:00:08 #277 [Verbose] > #r │
│ 00:00:08 #278 [Verbose] > │
│ "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microso │
│ ft.D │
│ 00:00:08 #279 [Verbose] > otNet.Interactive.FSharp.dll" │
│ 00:00:08 #280 [Verbose] > #r │
│ 00:00:08 #281 [Verbose] > │
│ "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microso │
│ ft.D │
│ 00:00:08 #282 [Verbose] > otNet.Interactive.Formatting.dll" │
│ 00:00:08 #283 [Verbose] > open System │
│ 00:00:08 #284 [Verbose] > open System.IO │
│ 00:00:08 #285 [Verbose] > open System.Text │
│ 00:00:08 #286 [Verbose] > open Microsoft.DotNet.Interactive.Formatting │
│ 00:00:09 #287 [Verbose] > │
│ 00:00:09 #288 [Verbose] > ── fsharp - import │
│ ───────────────────────────────────────────────────────────── │
│ 00:00:09 #289 [Verbose] > #r │
│ 00:00:09 #290 [Verbose] > │
│ "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microso │
│ ft.D │
│ 00:00:09 #291 [Verbose] > otNet.Interactive.FSharp.dll" │
│ 00:00:09 #292 [Verbose] > open │
│ Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers │
│ 00:00:09 #293 [Verbose] > #r │
│ 00:00:09 #294 [Verbose] > │
│ "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microso │
│ ft.D │
│ 00:00:09 #295 [Verbose] > otNet.Interactive.dll" │
│ 00:00:09 #296 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel │
│ 00:00:10 #297 [Verbose] > │
│ 00:00:10 #298 [Verbose] > ── fsharp - import │
│ ───────────────────────────────────────────────────────────── │
│ 00:00:10 #299 [Verbose] > type PhonologicalFeature = │
│ 00:00:10 #300 [Verbose] > | VowelFeature of │
│ 00:00:10 #301 [Verbose] > height: Height │
│ 00:00:10 #302 [Verbose] > * backness: Backness │
│ 00:00:10 #303 [Verbose] > * roundedness: Roundedness │
│ 00:00:10 #304 [Verbose] > * tone: Option<Tone> │
│ 00:00:10 #305 [Verbose] > * stress: Option<Stress> │
│ 00:00:10 #306 [Verbose] > * length: Option<Length> │
│ 00:00:10 #307 [Verbose] > | ConsonantFeature of │
│ 00:00:10 #308 [Verbose] > place: PlaceOfArticulation │
│ 00:00:10 #309 [Verbose] > * manner: MannerOfArticulation │
│ 00:00:10 #310 [Verbose] > * voicing: Voicing │
│ 00:00:10 #311 [Verbose] > * length: Option<Length> │
│ 00:00:10 #312 [Verbose] > | VowelHarmonyFeature │
│ 00:00:10 #313 [Verbose] > | PitchAccentFeature │
│ 00:00:10 #314 [Verbose] > │
│ 00:00:10 #315 [Verbose] > and Stress = Primary | Secondary │
│ 00:00:10 #316 [Verbose] > and Length = Long | Short | HalfLong │
│ 00:00:10 #317 [Verbose] > │
│ 00:00:10 #318 [Verbose] > and Height = │
│ 00:00:10 #319 [Verbose] > | High | NearHigh | HighMid │
│ 00:00:10 #320 [Verbose] > | Mid | LowMid | NearLow │
│ 00:00:10 #321 [Verbose] > | Low │
│ 00:00:10 #322 [Verbose] > │
│ 00:00:10 #323 [Verbose] > and Backness = Front | Central | Back │
│ 00:00:10 #324 [Verbose] > │
│ 00:00:10 #325 [Verbose] > and Roundedness = Rounded | Unrounded │
│ 00:00:10 #326 [Verbose] > │
│ 00:00:10 #327 [Verbose] > and PlaceOfArticulation = │
│ 00:00:10 #328 [Verbose] > | Bilabial | Labiodental | Dental │
│ 00:00:10 #329 [Verbose] > | Alv... │
│ 00:00:11 #330 [Verbose] > │
│ 00:00:11 #331 [Verbose] > ── fsharp │
│ ────────────────────────────────────────────────────────────────────── │
│ 00:00:11 #332 [Verbose] > let testEnglish = │
│ 00:00:11 #333 [Verbose] > Model( │
│ 00:00:11 #334 [Verbose] > DiscourseUnit [[ │
│ 00:00:11 #335 [Verbose] > LanguageElement (Phonological │
│ (ConsonantFeature (Alveolar, Nasal, │
│ 00:00:11 #336 [Verbose] > Voiced, Some(HalfLong)))); │
│ 00:00:11 #337 [Verbose] > LanguageElement (Phonological │
│ (VowelFeature (High, Front, Unrounded, │
│ 00:00:11 #338 [Verbose] > Some(LevelTone 1), Some(Primary), Some(Short)))); │
│ 00:00:11 #339 [Verbose] > LanguageElement (Phonological │
│ (VowelFeature (Low, Front, Unrounded, │
│ 00:00:11 #340 [Verbose] > Some(LevelTone 2), Some(Secondary), Some(Long)))); │
│ 00:00:11 #341 [Verbose] > LanguageElement (Phonological │
│ (ConsonantFeature (Velar, Plosive, │
│ 00:00:11 #342 [Verbose] > Voiceless, Some(HalfLong)))); │
│ 00:00:11 #343 [Verbose] > LanguageElement (Morphological │
│ (RootFeature "I")); │
│ 00:00:11 #344 [Verbose] > LanguageElement (Morphological │
│ (RootFeature "see")); │
│ 00:00:11 #345 [Verbose] > LanguageElement (Morphological │
│ (RootFeature "a")); │
│ 00:00:11 #346 [Verbose] > LanguageElement (Morphological │
│ (RootFeature "cat")); │
│ 00:00:11 #347 [Verbose] > LanguageElement (Syntactic │
│ (PhraseFeature (NP, [[WordFeature │
│ 00:00:11 #348 [Verbose] > ([[RootFeature "I"]], Pronoun)]]))); │
│ 00:00:11 #349 [Verbose] > LanguageElement (Syntactic │
│ (PhraseFeature (VP, [[WordFeature │
│ 00:00:11 #350 [Verbose] > ([[RootFeature "see"]], Verb)]]))); │
│ 00:00:11 #351 [Verbose] > LanguageElement (Syntactic │
│ (PhraseFeature (NP, [[WordFeature │
│ 00:00:11 #352 [Verbose] > ([[RootFeature "a"; RootFeature "cat"]], │
│ Noun)]]))); │
│ 00:00:11 #353 [Verbose] > LanguageElement (Semantic (Meaning │
│ "Perception act of a feline by │
│ 00:00:11 #354 [Verbose] > the speaker")); │
│ 00:00:11 #355 [Verbose] > LanguageElement (Pragmatic (UseContext │
│ "Statement of an action being │
│ 00:00:11 #356 [Verbose] > observed")) │
│ 00:00:11 #357 [Verbose] > ]] │
│ 00:00:11 #358 [Verbose] > ) │
│ 00:00:11 #359 [Verbose] > │
│ 00:00:11 #360 [Verbose] > let testPortuguese = │
│ 00:00:11 #361 [Verbose] > Model( │
│ 00:00:11 #362 [Verbose] > DiscourseUnit [[ │
│ 00:00:11 #363 [Verbose] > LanguageElement (Phonological │
│ (VowelFeature (High, Front, Unrounded, │
│ 00:00:11 #364 [Verbose] > Some(LevelTone 1), Some(Primary), Some(Short)))); │
│ 00:00:11 #365 [Verbose] > LanguageElement (Phonological │
│ (VowelFeature (Low, Front, Unrounded, │
│ 00:00:11 #366 [Verbose] > Some(LevelTone 2), Some(Secondary), Some(Long)))); │
│ 00:00:11 #367 [Verbose] > LanguageElement (Phonological │
│ (VowelFeature (Mid, Back, Rounded, │
│ 00:00:11 #368 [Verbose] > Some(LevelTone 3), Some(Primary), Some(Short)))); │
│ 00:00:11 #369 [Verbose] > LanguageElement (Phonological │
│ (ConsonantFeature (Velar, Plosive, │
│ 00:00:11 #370 [Verbose] > Voiceless, Some(HalfLong)))); │
│ 00:00:11 #371 [Verbose] > LanguageElement (Morphological │
│ (RootFeature "Eu")); │
│ 00:00:11 #372 [Verbose] > LanguageElement (Morphological │
│ (RootFeature "ver" |> ignore; │
│ 00:00:11 #373 [Verbose] > AffixFeature (Suffix, "o"))); │
│ 00:00:11 #374 [Verbose] > LanguageElement (Morphological │
│ (RootFeature "um")); │
│ 00:00:11 #375 [Verbose] > LanguageElement (Morphological │
│ (RootFeature "gato")); │
│ 00:00:11 #376 [Verbose] > LanguageElement (Syntactic │
│ (PhraseFeature (NP, [[WordFeature │
│ 00:00:11 #377 [Verbose] > ([[RootFeature "Eu"]], Pronoun)]]))); │
│ 00:00:11 #378 [Verbose] > LanguageElement (Syntactic │
│ (PhraseFeature (VP, [[WordFeature │
│ 00:00:11 #379 [Verbose] > ([[RootFeature "vejo"]], Verb)]]))); │
│ 00:00:11 #380 [Verbose] > LanguageElement (Syntactic │
│ (PhraseFeature (NP, [[WordFeature │
│ 00:00:11 #381 [Verbose] > ([[RootFeature "um"; RootFeature "gato"]], │
│ Noun)]]))); │
│ 00:00:11 #382 [Verbose] > LanguageElement (Semantic (Meaning │
│ "Ação de percepção de um felino │
│ 00:00:11 #383 [Verbose] > pelo falante")); │
│ 00:00:11 #384 [Verbose] > LanguageElement (Pragmatic (UseContext │
│ "Declaração de uma ação sendo │
│ 00:00:11 #385 [Verbose] > observada")) │
│ 00:00:11 #386 [Verbose] > ]] │
│ 00:00:11 #387 [Verbose] > ) │
│ 00:00:11 #388 [Verbose] > │
│ 00:00:11 #389 [Verbose] > let testKorean = │
│ 00:00:11 #390 [Verbose] > Model( │
│ 00:00:11 #391 [Verbose] > DiscourseUnit [[ │
│ 00:00:11 #392 [Verbose] > LanguageElement (Phonological │
│ (ConsonantFeature (Alveolar, Nasal, │
│ 00:00:11 #393 [Verbose] > Voiced, Some(Short)))); │
│ 00:00:11 #394 [Verbose] > LanguageElement (Phonological │
│ (VowelFeature (High, Back, Rounded, │
│ 00:00:11 #395 [Verbose] > None, None, Some(Short)))); │
│ 00:00:11 #396 [Verbose] > LanguageElement (Phonological │
│ (VowelFeature (Mid, Front, Unrounded, │
│ 00:00:11 #397 [Verbose] > None, None, Some(Long)))); │
│ 00:00:11 #398 [Verbose] > LanguageElement (Phonological │
│ (ConsonantFeature (Bilabial, Plosive, │
│ 00:00:11 #399 [Verbose] > Voiceless, Some(Short)))); │
│ 00:00:11 #400 [Verbose] > LanguageElement (Morphological │
│ (RootFeature "나")); │
│ 00:00:11 #401 [Verbose] > LanguageElement (Morphological │
│ (RootFeature "보다")); │
│ 00:00:11 #402 [Verbose] > LanguageElement (Morphological │
│ (AffixFeature (Suffix, "아"))); │
│ 00:00:11 #403 [Verbose] > LanguageElement (Morphological │
│ (RootFeature "고양이")); │
│ 00:00:11 #404 [Verbose] > LanguageElement (Syntactic │
│ (PhraseFeature (NP, [[WordFeature │
│ 00:00:11 #405 [Verbose] > ([[RootFeature "나"]], Pronoun)]]))); │
│ 00:00:11 #406 [Verbose] > LanguageElement (Syntactic │
│ (PhraseFeature (VP, [[WordFeature │
│ 00:00:11 #407 [Verbose] > ([[RootFeature "보다"; AffixFeature (Suffix, │
│ "아")]], Verb)]]))); │
│ 00:00:11 #408 [Verbose] > LanguageElement (Syntactic │
│ (PhraseFeature (NP, [[WordFeature │
│ 00:00:11 #409 [Verbose] > ([[RootFeature "고양이"]], Noun)]]))); │
│ 00:00:11 #410 [Verbose] > LanguageElement (Semantic (Meaning │
│ "화자에 의한 고양이의 관찰 │
│ 00:00:11 #411 [Verbose] > 행위")); │
│ 00:00:11 #412 [Verbose] > LanguageElement (Pragmatic (UseContext │
│ "관찰되고 있는 행동의 진술")) │
│ 00:00:11 #413 [Verbose] > ]] │
│ 00:00:11 #414 [Verbose] > ) │
│ 00:00:11 #415 [Verbose] > │
│ 00:00:11 #416 [Verbose] > ── markdown │
│ ──────────────────────────────────────────────────────────────────── │
│ 00:00:11 #417 [Verbose] > │
│ ╭─────────────────────────────────────────────────────────────────────────── │
│ ───╮ │
│ 00:00:11 #418 [Verbose] > │ ## main │
│ │ │
│ 00:00:11 #419 [Verbose] > │
│ ╰─────────────────────────────────────────────────────────────────────────── │
│ ───╯ │
│ 00:00:11 #420 [Verbose] > │
│ 00:00:11 #421 [Verbose] > ── spiral │
│ ────────────────────────────────────────────────────────────────────── │
│ 00:00:11 #422 [Verbose] > inl main (_args : array_base string) = │
│ 00:00:11 #423 [Verbose] > 0i32 │
│ 00:00:11 #424 [Verbose] > │
│ 00:00:11 #425 [Verbose] > inl main () = │
│ 00:00:11 #426 [Verbose] > $"let main args = !main args" : () │
│ 00:00:11 #427 [Verbose] > │
│ 00:00:11 #428 [Verbose] > ╭─[ 250.22ms - stdout │
│ ]────────────────────────────────────────────────────────╮ │
│ 00:00:11 #429 [Verbose] > │ let rec closure0 () (v0 : (string [])) : int32 = │
│ │ │
│ 00:00:11 #430 [Verbose] > │ 0 │
│ │ │
│ 00:00:11 #431 [Verbose] > │ let v0 : ((string []) -> int32) = closure0() │
│ │ │
│ 00:00:11 #432 [Verbose] > │ let main args = v0 args │
│ │ │
│ 00:00:11 #433 [Verbose] > │ () │
│ │ │
│ 00:00:11 #434 [Verbose] > │ │
│ │
│ │ │
│ 00:00:11 #435 [Verbose] > │ │
│ │
│ │ │
│ 00:00:11 #436 [Verbose] > │
│ ╰─────────────────────────────────────────────────────────────────────────── │
│ ───╯ │
│ 00:00:11 #437 [Verbose] > │
│ 00:00:11 #438 [Verbose] > ── spiral │
│ ────────────────────────────────────────────────────────────────────── │
│ 00:00:11 #439 [Verbose] > inl app () = │
│ 00:00:11 #440 [Verbose] > "test" |> console.write_line │
│ 00:00:11 #441 [Verbose] > 0i32 │
│ 00:00:11 #442 [Verbose] > │
│ 00:00:11 #443 [Verbose] > inl main () = │
│ 00:00:11 #444 [Verbose] > print_static "<test>" │
│ 00:00:11 #445 [Verbose] > │
│ 00:00:11 #446 [Verbose] > app │
│ 00:00:11 #447 [Verbose] > |> dyn │
│ 00:00:11 #448 [Verbose] > |> ignore │
│ 00:00:11 #449 [Verbose] > │
│ 00:00:11 #450 [Verbose] > print_static "</test>" │
│ 00:00:11 #451 [Verbose] > │
│ 00:00:11 #452 [Verbose] > ╭─[ 246.41ms - stdout │
│ ]────────────────────────────────────────────────────────╮ │
│ 00:00:11 #453 [Verbose] > │ let rec closure0 () () : int32 = │
│ │ │
│ 00:00:11 #454 [Verbose] > │ let v0 : string = "test" │
│ │ │
│ 00:00:11 #455 [Verbose] > │ System.Console.WriteLine v0 │
│ │ │
│ 00:00:11 #456 [Verbose] > │ 0 │
│ │ │
│ 00:00:11 #457 [Verbose] > │ let v0 : (unit -> int32) = closure0() │
│ │ │
│ 00:00:11 #458 [Verbose] > │ () │
│ │ │
│ 00:00:11 #459 [Verbose] > │ │
│ │
│ │ │
│ 00:00:11 #460 [Verbose] > │ │
│ │
│ │ │
│ 00:00:11 #461 [Verbose] > │
│ ╰─────────────────────────────────────────────────────────────────────────── │
│ ───╯ │
│ 00:00:14 #462 [Verbose] > [NbConvertApp] Converting notebook test.dib.ipynb │
│ to html │
│ 00:00:14 #463 [Verbose] > │
│ C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__ │
│ .py:93: MissingIDFieldWarning: Code cell is missing an id field, this will │
│ become a hard error in future nbformat versions. You may want to use │
│ `normalize()` on your notebooks before validations (available since nbformat │
│ 5.1.4). Previous versions of nbformat are fixing this issue transparently, │
│ and will stop doing so in the future. │
│ 00:00:14 #464 [Verbose] > validate(nb) │
│ 00:00:15 #465 [Verbose] > │
│ C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters │
│ \highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on │
│ Python 3 │
│ 00:00:15 #466 [Verbose] > return _pygments_highlight( │
│ 00:00:15 #467 [Verbose] > [NbConvertApp] Writing 321590 bytes to │
│ test.dib.html │
│ 00:00:16 #468 [Debug] executeAsync / exitCode: 0 / output.Length: 19479 │
│ 00:00:16 #469 [Debug] main / executeCommand / exitCode: 0 │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── pwsh ────────────────────────────────────────────────────────────────────────
{ . ../../../../apps/parser/dist/DibParser$(GetExecutableSuffix) test.dib spi }
| Invoke-Block
╭─[ 5.77s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:00 #1 [Debug] writeDibCode / output: Spi / path: test.dib │
│ 00:00:00 #2 [Debug] parseDibCode / output: Spi / file: test.dib │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── pwsh ────────────────────────────────────────────────────────────────────────
{ . ../../../../apps/spiral/dist/Supervisor$(GetExecutableSuffix) --build-file
test.spi test.fsx --timeout 10000 } | Invoke-Block
╭─[ 1.43s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:00 #2 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:00 #3 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:00 #4 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:00 #5 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"// // # test (Polyglot)\n\nnominal i = ()\nnominal e │
│ = ()\nnominal s = ()\nnominal n = ()\nnominal t = ()\nnominal f = │
│ ()\nnominal j = ()\nnominal p = ()\n\nunion sensing =\n | Si : s * i\n │
│ | Se : s * e\n\nunion intuition =\n | Ni : n * i\n | Ne : n * │
│ e\n\nunion thinking =\n | Ti : t * i\n | Te : t * e\n\nunion feeling │
│ =\n | Fi : f * i\n | Fe : f * e\n\nunion function_stack =\n | FS : │
│ sensing * intuition * thinking * feeling\n\nunion personality_type =\n | │
│ ISTJ : i * s * t * j * function_stack\n | ISFJ : i * s * f * j * │
│ function_stack\n | INFJ : i * n * f * j * function_stack\n | INTJ : i │
│ * n * t * j * function_stack\n | ISTP : i * s * t * p * function_stack\n │
│ | ISFP : i * s * f * p * function_stack\n | INFP : i * n * f * p * │
│ function_stack\n | INTP : i * n * t * p * function_stack\n | ESTP : e │
│ * s * t * p * function_stack\n | ESFP : e * s * f * p * function_stack\n │
│ | ENFP : e * n * f * p * function_stack\n | ENTP : e * n * t * p * │
│ function_stack\n | ESTJ : e * s * t * j * function_stack\n | ESFJ : e │
│ * s * f * j * function_stack\n | ENFJ : e * n * f * j * function_stack\n │
│ | ENTJ : e * n * t * j * function_stack\n\n\ninl main () =\n inl │
│ istj_stack = FS ((Si (s, i)), Ne (n, e), (Te (t, e)), (Fi (f, i)))\n inl │
│ istj_personality = ISTJ (i, s, t, j, istj_stack)\n // inl isfj_stack = FS │
│ ((Si (s, i)), Ne (n, e), (Fe (f, e)), (Ti (t, i)))\n // inl │
│ isfj_personality = ISFJ (i, s, f, j, isfj_stack)\n\n ;[\n │
│ istj_personality\n ]\n |\u003E fun x =\u003E │
│ $\u0027$\u0022%A{!x}\u0022\u0027 : string\n |\u003E │
│ console.write_line\n\ninl main () =\n $\u0022!main ()\u0022 : ()\n\n// // │
│ ## main\n\ninl main (_args : array_base string) =\n 0i32\n\ninl main () │
│ =\n $\u0022let main args = !main args\u0022 : ()\n\ninl app () =\n │
│ \u0022test\u0022 |\u003E console.write_line\n 0i32\n\ninl main () =\n │
│ print_static \u0022\u003Ctest\u003E\u0022\n\n app\n |\u003E dyn\n │
│ |\u003E ignore\n\n print_static │
│ \u0022\u003C/test\u003E\u0022\n","uri":"file:///c:/home/git/polyglot/apps/sp │
│ iral/temp/test/test.spi"}} / result.Length: │
│ 00:00:00 #6 [Debug] sendJson / port: 13805 / json: │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/apps/sp │
│ iral/temp/test/test.spi"}} / result.Length: │
│ 00:00:00 #7 [Debug] buildFile / takeWhileInclusive / fsxContent: let rec │
│ closure0 () () : int32 = │
│ let v0 : string = "test" │
│ System.Console.WriteLine v0 │
│ 0 │
│ let v0 : (unit -> int32) = closure0() │
│ () │
│ / errors: [] / typeErrorCount: 0 │
│ 00:00:00 #8 [Debug] watchWithFilter / Disposing watch stream / filter: │
│ FileName, LastWrite │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── pwsh ────────────────────────────────────────────────────────────────────────
dotnet fable --optimize --lang rs --extension .rs
╭─[ 3.43s - stdout ]───────────────────────────────────────────────────────────╮
│ Fable 4.14.0: F# to Rust compiler (status: alpha) │
│ │
│ Thanks to the contributor! @hensou │
│ Stand with Ukraine! https://standwithukraine.com.ua/ │
│ │
│ Parsing test.fsproj... │
│ Retrieving project options from cache, in case of issues run `dotnet fable │
│ clean` or try `--noCache` option. │
│ Project and references (1 source files) parsed in 169ms │
│ │
│ Started Fable compilation... │
│ │
│ Fable compilation finished in 1426ms │
│ │
│ .\test.fsx(6,0): (6,2) warning FABLE: For Rust, support for F# static and │
│ module do bindings is disabled by default. It can be enabled with the │
│ 'static_do_bindings' feature. Use at your own risk! │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── pwsh ────────────────────────────────────────────────────────────────────────
(Get-Content test.rs) `
-replace [[regex]]::Escape("),);"), "));" `
| Set-Content test.rs
── pwsh ────────────────────────────────────────────────────────────────────────
cargo fmt --
── pwsh ────────────────────────────────────────────────────────────────────────
cargo build --release
╭─[ 10.36s - stdout ]──────────────────────────────────────────────────────────╮
│ Compiling spiral_temp_test v0.0.1 │
│ (C:\home\git\polyglot\apps\spiral\temp\test) │
│ warning: the item `any` is imported redundantly │
│ --> apps\spiral\temp\test\./main.rs:11:27 │
│ | │
│ 11 | use proptest::arbitrary::{any, Arbitrary}; │
│ | ^^^ │
│ 12 | use proptest::prelude::*; │
│ | -------------------- the item `any` is already imported here │
│ | │
│ = note: `#[warn(unused_imports)]` on by default │
│ │
│ warning: the item `Arbitrary` is imported redundantly │
│ --> apps\spiral\temp\test\./main.rs:11:32 │
│ | │
│ 11 | use proptest::arbitrary::{any, Arbitrary}; │
│ | ^^^^^^^^^ │
│ 12 | use proptest::prelude::*; │
│ | -------------------- the item `Arbitrary` is already imported │
│ here │
│ │
│ warning: unused import: `info` │
│ --> apps\spiral\temp\test\./main.rs:190:15 │
│ | │
│ 190 | use tracing::{info, Level}; │
│ | ^^^^ │
│ │
│ warning: associated items `new`, `add_item`, and `remove_item` are │
│ never used │
│ --> apps\spiral\temp\test\./main.rs:46:8 │
│ | │
│ 45 | impl Cart { │
│ | --------- associated items in this implementation │
│ 46 | fn new() -> Cart { │
│ | ^^^ │
│ ... │
│ 50 | fn add_item(&mut self, item: Item) { │
│ | ^^^^^^^^ │
│ ... │
│ 56 | fn remove_item(&mut self, item: &Item) { │
│ | ^^^^^^^^^^^ │
│ | │
│ = note: `#[warn(dead_code)]` on by default │
│ │
│ warning: function `parse_comment` is never used │
│ --> apps\spiral\temp\test\./main.rs:124:4 │
│ | │
│ 124 | fn parse_comment(input: &str) -> IResult<&str, SpiralToken> { │
│ | ^^^^^^^^^^^^^ │
│ │
│ warning: function `parse_string` is never used │
│ --> apps\spiral\temp\test\./main.rs:130:4 │
│ | │
│ 130 | fn parse_string(input: &str) -> IResult<&str, SpiralToken> { │
│ | ^^^^^^^^^^^^ │
│ │
│ warning: function `parse_identifier` is never used │
│ --> apps\spiral\temp\test\./main.rs:145:4 │
│ | │
│ 145 | fn parse_identifier(input: &str) -> IResult<&str, SpiralToken> {[ │
│ 0m │
│ | ^^^^^^^^^^^^^^^^ │
│ │
│ warning: function `parse_integer` is never used │
│ --> apps\spiral\temp\test\./main.rs:157:4 │
│ | │
│ 157 | fn parse_integer(input: &str) -> IResult<&str, SpiralToken> { │
│ | ^^^^^^^^^^^^^ │
│ │
│ warning: function `parse_operator` is never used │
│ --> apps\spiral\temp\test\./main.rs:165:4 │
│ | │
│ 165 | fn parse_operator(input: &str) -> IResult<&str, SpiralToken> { │
│ | ^^^^^^^^^^^^^^ │
│ │
│ warning: function `parse_token` is never used │
│ --> apps\spiral\temp\test\./main.rs:170:4 │
│ | │
│ 170 | fn parse_token(input: &str) -> IResult<&str, SpiralToken> { │
│ | ^^^^^^^^^^^ │
│ │
│ warning: function `format_token` is never used │
│ --> apps\spiral\temp\test\./main.rs:180:4 │
│ | │
│ 180 | fn format_token(token: &SpiralToken) -> String { │
│ | ^^^^^^^^^^^^ │
│ │
│ warning: function `parse_expression` is never used │
│ --> apps\spiral\temp\test\./main.rs:213:4 │
│ | │
│ 213 | fn parse_expression(input: &str) -> IResult<&str, SpiralToken> {[ │
│ 0m │
│ | ^^^^^^^^^^^^^^^^ │
│ │
│ warning: `spiral_temp_test` (bin "spiral_temp_test") generated 12 │
│ warnings (run `cargo fix --bin "spiral_temp_test"` to apply 1 suggestion) │
│ Finished `release` profile [optimized] target(s) in 10.20s │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── pwsh ────────────────────────────────────────────────────────────────────────
$env:RUST_LOG="info"
{ cargo test --release } | Invoke-Block
╭─[ 21.36s - stdout ]──────────────────────────────────────────────────────────╮
│ Compiling spiral_temp_test v0.0.1 │
│ (C:\home\git\polyglot\apps\spiral\temp\test) │
│ warning: the item `any` is imported redundantly │
│ --> apps\spiral\temp\test\./main.rs:11:27 │
│ | │
│ 11 | use proptest::arbitrary::{any, Arbitrary}; │
│ | ^^^ │
│ 12 | use proptest::prelude::*; │
│ | -------------------- the item `any` is already imported here │
│ | │
│ = note: `#[warn(unused_imports)]` on by default │
│ │
│ warning: the item `Arbitrary` is imported redundantly │
│ --> apps\spiral\temp\test\./main.rs:11:32 │
│ | │
│ 11 | use proptest::arbitrary::{any, Arbitrary}; │
│ | ^^^^^^^^^ │
│ 12 | use proptest::prelude::*; │
│ | -------------------- the item `Arbitrary` is already imported │
│ here │
│ │
│ warning: `spiral_temp_test` (bin "spiral_temp_test" test) generated 2 │
│ warnings │
│ Finished `release` profile [optimized] target(s) in 20.91s │
│ Running unittests main.rs │
│ (C:\home\git\polyglot\target\release\deps\spiral_temp_test-a60c27d9a2af8150. │
│ exe) │
│ │
│ running 3 tests │
│ test test_parse_number ... ok │
│ 2024-03-30T21:30:18.374301Z INFO spiral_temp_test: │
│ input=Identifier("nOySs5Kka") │
│ 2024-03-30T21:30:18.374473Z INFO spiral_temp_test: │
│ input=Identifier("A8l") │
│ 2024-03-30T21:30:18.374576Z INFO spiral_temp_test: │
│ input=Comment("%w\\H*") │
│ 2024-03-30T21:30:18.374673Z INFO spiral_temp_test: │
│ input=Comment("#_?(*h%*:P}\"<apU?um/7{t") │
│ 2024-03-30T21:30:18.374818Z INFO spiral_temp_test: │
│ input=Operator("/") │
│ 2024-03-30T21:30:18.374897Z INFO spiral_temp_test: │
│ input=StringLiteral("z*") │
│ 2024-03-30T21:30:18.374944Z INFO spiral_temp_test: │
│ input=Integer(-104837659649555855) │
│ 2024-03-30T21:30:18.375014Z INFO spiral_temp_test: │
│ input=Integer(-104955834147231441) │
│ 2024-03-30T21:30:18.375080Z INFO spiral_temp_test: │
│ input=Integer(-2775882999206682620) │
│ 2024-03-30T21:30:18.375123Z INFO spiral_temp_test: │
│ input=Integer(-6789887359850693952) │
│ 2024-03-30T21:30:18.375158Z INFO spiral_temp_test: │
│ input=Operator("-") │
│ 2024-03-30T21:30:18.375197Z INFO spiral_temp_test: │
│ input=Integer(-795719017767727961) │
│ 2024-03-30T21:30:18.375239Z INFO spiral_temp_test: │
│ input=Identifier("WL6z2HnM") │
│ 2024-03-30T21:30:18.375278Z INFO spiral_temp_test: │
│ input=Integer(6269488703154397227) │
│ 2024-03-30T21:30:18.375327Z INFO spiral_temp_test: │
│ input=Identifier("BP8Jb9DISe4e5xYmv") │
│ 2024-03-30T21:30:18.375379Z INFO spiral_temp_test: │
│ input=StringLiteral("e/,77") │
│ 2024-03-30T21:30:18.375425Z INFO spiral_temp_test: │
│ input=Operator("*") │
│ 2024-03-30T21:30:18.375466Z INFO spiral_temp_test: │
│ input=Comment("O=p") │
│ 2024-03-30T21:30:18.375526Z INFO spiral_temp_test: │
│ input=StringLiteral("U%*I[^<DJ%&j0G?R94:f") │
│ 2024-03-30T21:30:18.375586Z INFO spiral_temp_test: │
│ input=Identifier("W25QmIx9GN1kcJ") │
│ 2024-03-30T21:30:18.375628Z INFO spiral_temp_test: │
│ input=Integer(-4736388151705494800) │
│ 2024-03-30T21:30:18.375687Z INFO spiral_temp_test: │
│ input=StringLiteral(" G&f<T|9g?{.=bB`'>qB/40_%%WWB&") │
│ 2024-03-30T21:30:18.375738Z INFO spiral_temp_test: │
│ input=Operator("=") │
│ 2024-03-30T21:30:18.375784Z INFO spiral_temp_test: │
│ input=Operator("*") │
│ 2024-03-30T21:30:18.375825Z INFO spiral_temp_test: │
│ input=Identifier("r3YV0SB") │
│ 2024-03-30T21:30:18.375868Z INFO spiral_temp_test: │
│ input=Operator("/") │
│ 2024-03-30T21:30:18.375925Z INFO spiral_temp_test: │
│ input=Comment("gr'$o'J*Tn{Oq``Ml==quF") │
│ 2024-03-30T21:30:18.375985Z INFO spiral_temp_test: │
│ input=Identifier("FF8Zc7lcl9jJzAADw") │
│ 2024-03-30T21:30:18.376044Z INFO spiral_temp_test: │
│ input=Identifier("Zj0zX610zBeoCXu6XbZcttv") │
│ 2024-03-30T21:30:18.376108Z INFO spiral_temp_test: │
│ input=StringLiteral("&v*lS9j>6@4x,io=4{?") │
│ 2024-03-30T21:30:18.376165Z INFO spiral_temp_test: │
│ input=Identifier("tV8tD9DBfx6na5RJL") │
│ 2024-03-30T21:30:18.376215Z INFO spiral_temp_test: │
│ input=Operator("-") │
│ 2024-03-30T21:30:18.376252Z INFO spiral_temp_test: │
│ input=Comment("jP") │
│ 2024-03-30T21:30:18.376334Z INFO spiral_temp_test: │
│ input=StringLiteral(".?$ydgu:]')*vC,hp;-R{") │
│ 2024-03-30T21:30:18.376415Z INFO spiral_temp_test: │
│ input=Comment("s;`/2:\"%") │
│ 2024-03-30T21:30:18.376474Z INFO spiral_temp_test: │
│ input=Integer(5015246923419996486) │
│ 2024-03-30T21:30:18.376523Z INFO spiral_temp_test: │
│ input=Operator("+") │
│ 2024-03-30T21:30:18.376572Z INFO spiral_temp_test: │
│ input=Integer(-553546738634958862) │
│ 2024-03-30T21:30:18.376632Z INFO spiral_temp_test: │
│ input=Operator(")") │
│ 2024-03-30T21:30:18.376674Z INFO spiral_temp_test: │
│ input=Integer(1608236206592897397) │
│ 2024-03-30T21:30:18.376743Z INFO spiral_temp_test: │
│ input=Identifier("euNc1602KTFx0G28P2JT7l29Dr1") │
│ 2024-03-30T21:30:18.376799Z INFO spiral_temp_test: │
│ input=StringLiteral("y4)x'") │
│ 2024-03-30T21:30:18.376851Z INFO spiral_temp_test: │
│ input=Identifier("GHL0wLR") │
│ 2024-03-30T21:30:18.376896Z INFO spiral_temp_test: │
│ input=Integer(-3559103045128771553) │
│ 2024-03-30T21:30:18.376943Z INFO spiral_temp_test: │
│ input=Integer(-1716153098744121243) │
│ 2024-03-30T21:30:18.377001Z INFO spiral_temp_test: │
│ input=Comment("iG*<.]bi}L}`J=6i.R<") │
│ 2024-03-30T21:30:18.377043Z INFO spiral_temp_test: │
│ input=Integer(978212785259288785) │
│ 2024-03-30T21:30:18.377105Z INFO spiral_temp_test: │
│ input=Identifier("EQTI89cT4C44C8K8r7f8g6qU") │
│ 2024-03-30T21:30:18.377174Z INFO spiral_temp_test: │
│ input=StringLiteral("=%%*}C*hs=?k%?B><_C./#3:`") │
│ 2024-03-30T21:30:18.377237Z INFO spiral_temp_test: │
│ input=Identifier("s6TO7ei9aDHboS34") │
│ 2024-03-30T21:30:18.377277Z INFO spiral_temp_test: │
│ input=Integer(-5211500989649396275) │
│ 2024-03-30T21:30:18.377325Z INFO spiral_temp_test: │
│ input=Operator("*") │
│ 2024-03-30T21:30:18.377406Z INFO spiral_temp_test: │
│ input=Identifier("rqxuz") │
│ 2024-03-30T21:30:18.377446Z INFO spiral_temp_test: │
│ input=Integer(-1433072094403906404) │
│ 2024-03-30T21:30:18.377506Z INFO spiral_temp_test: │
│ input=Identifier("U8q29lRy9d5s11r") │
│ 2024-03-30T21:30:18.377578Z INFO spiral_temp_test: │
│ input=Identifier("Vz4czLu2r22q3p31F0Jr09") │
│ 2024-03-30T21:30:18.377647Z INFO spiral_temp_test: │
│ input=Identifier("Ds0NktE7GqlEKk9x4wIbXcfJCcZV5H") │
│ 2024-03-30T21:30:18.377709Z INFO spiral_temp_test: │
│ input=Comment("mg:R/`") │
│ 2024-03-30T21:30:18.377755Z INFO spiral_temp_test: │
│ input=Identifier("fTVH85") │
│ 2024-03-30T21:30:18.377792Z INFO spiral_temp_test: │
│ input=Integer(-8044117845555420429) │
│ 2024-03-30T21:30:18.377847Z INFO spiral_temp_test: │
│ input=StringLiteral(":+2'=}.+t<Z{3GGj^!{t") │
│ 2024-03-30T21:30:18.377888Z INFO spiral_temp_test: │
│ input=Operator("-") │
│ 2024-03-30T21:30:18.377925Z INFO spiral_temp_test: │
│ input=Integer(3673411370810114901) │
│ 2024-03-30T21:30:18.377961Z INFO spiral_temp_test: │
│ input=Integer(1781039011312631169) │
│ 2024-03-30T21:30:18.378006Z INFO spiral_temp_test: │
│ input=Operator("-") │
│ 2024-03-30T21:30:18.378052Z INFO spiral_temp_test: │
│ input=Operator("+") │
│ 2024-03-30T21:30:18.378102Z INFO spiral_temp_test: │
│ input=Comment("pb") │
│ 2024-03-30T21:30:18.378170Z INFO spiral_temp_test: │
│ input=Identifier("MW83an4GgPB6T9c4y7dNwGD") │
│ 2024-03-30T21:30:18.378263Z INFO spiral_temp_test: │
│ input=StringLiteral("?AMm`;Q=,}r%!w%pXzkRA%(@&Z?") │
│ 2024-03-30T21:30:18.378336Z INFO spiral_temp_test: │
│ input=Integer(5909477971386017377) │
│ 2024-03-30T21:30:18.378393Z INFO spiral_temp_test: │
│ input=Comment("%(\"<<av*'&`c'y") │
│ 2024-03-30T21:30:18.378507Z INFO spiral_temp_test: │
│ input=Comment("0F}\"wO&61&-") │
│ 2024-03-30T21:30:18.378567Z INFO spiral_temp_test: │
│ input=Operator("=") │
│ 2024-03-30T21:30:18.378617Z INFO spiral_temp_test: │
│ input=Comment("$''$QD]Dh\\") │
│ 2024-03-30T21:30:18.378651Z INFO spiral_temp_test: │
│ input=Integer(-8870994368096550241) │
│ 2024-03-30T21:30:18.378696Z INFO spiral_temp_test: │
│ input=StringLiteral("g*$:.lpMK`7>4:*$") │
│ 2024-03-30T21:30:18.378738Z INFO spiral_temp_test: │
│ input=Identifier("OMrI37") │
│ 2024-03-30T21:30:18.378793Z INFO spiral_temp_test: │
│ input=StringLiteral("A/E*uplSSQ") │
│ 2024-03-30T21:30:18.378842Z INFO spiral_temp_test: │
│ input=Comment("o#{wyH!T,gR") │
│ 2024-03-30T21:30:18.378877Z INFO spiral_temp_test: │
│ input=Integer(4762326475019798638) │
│ 2024-03-30T21:30:18.378923Z INFO spiral_temp_test: │
│ input=StringLiteral("{R?/s.//:q4<I7F") │
│ 2024-03-30T21:30:18.378992Z INFO spiral_temp_test: │
│ input=Comment("~O..;\\6LK/7p:{*R<,$$t#\\vC'=T:='Y") │
│ 2024-03-30T21:30:18.379037Z INFO spiral_temp_test: │
│ input=Comment("L=R") │
│ 2024-03-30T21:30:18.379082Z INFO spiral_temp_test: │
│ input=Comment("{Km5\"|9\"@s") │
│ 2024-03-30T21:30:18.379146Z INFO spiral_temp_test: │
│ input=Identifier("Z44Liu19S3t6k4VBks83CRXz8000wXZ") │
│ 2024-03-30T21:30:18.379187Z INFO spiral_temp_test: │
│ input=Operator("+") │
│ 2024-03-30T21:30:18.379241Z INFO spiral_temp_test: │
│ input=StringLiteral("0=%/KKwW-/!<`uY/?3O.") │
│ 2024-03-30T21:30:18.379298Z INFO spiral_temp_test: │
│ input=StringLiteral(".K^S3L'$?<){0vlg.") │
│ 2024-03-30T21:30:18.379338Z INFO spiral_temp_test: │
│ input=Operator("-") │
│ 2024-03-30T21:30:18.379397Z INFO spiral_temp_test: │
│ input=Identifier("D1cKPBFNEaTeM8Gmgwm8aYfINWq0Vr") │
│ 2024-03-30T21:30:18.379440Z INFO spiral_temp_test: │
│ input=StringLiteral("1%AZ=") │
│ 2024-03-30T21:30:18.379481Z INFO spiral_temp_test: │
│ input=Comment("\"\\B*") │
│ 2024-03-30T21:30:18.379518Z INFO spiral_temp_test: │
│ input=Operator("+") │
│ 2024-03-30T21:30:18.379573Z INFO spiral_temp_test: │
│ input=Comment("k!|?Lp:5tOYY7W-W1?+'bak`_") │
│ 2024-03-30T21:30:18.379613Z INFO spiral_temp_test: │
│ input=Operator("+") │
│ 2024-03-30T21:30:18.379656Z INFO spiral_temp_test: │
│ input=StringLiteral("A>8%:'c") │
│ 2024-03-30T21:30:18.379695Z INFO spiral_temp_test: │
│ input=Identifier("JH7") │
│ 2024-03-30T21:30:18.379747Z INFO spiral_temp_test: │
│ input=StringLiteral("VFC`49:k47:.D<,D:ZX") │
│ 2024-03-30T21:30:18.379783Z INFO spiral_temp_test: │
│ input=Integer(-1014533022416113275) │
│ 2024-03-30T21:30:18.379820Z INFO spiral_temp_test: │
│ input=Identifier("nprJc") │
│ 2024-03-30T21:30:18.379851Z INFO spiral_temp_test: │
│ input=Integer(-5272908204079666583) │
│ 2024-03-30T21:30:18.379882Z INFO spiral_temp_test: │
│ input=Integer(4931910997226033322) │
│ 2024-03-30T21:30:18.379938Z INFO spiral_temp_test: │
│ input=Identifier("yPNnxxEN4hqLYqV3O533YgvKAZ") │
│ 2024-03-30T21:30:18.380003Z INFO spiral_temp_test: │
│ input=StringLiteral("4NEJ5(/1vR/^17#qB&N?}$ZhsEjH") │
│ 2024-03-30T21:30:18.380071Z INFO spiral_temp_test: │
│ input=Identifier("zXKeJeqp5htjzl4ZIeIgXPx") │
│ 2024-03-30T21:30:18.380137Z INFO spiral_temp_test: │
│ input=StringLiteral("V`Ven(7'fbYnz=5$nf[{m") │
│ 2024-03-30T21:30:18.380180Z INFO spiral_temp_test: │
│ input=Integer(-8869332521420008338) │
│ 2024-03-30T21:30:18.380237Z INFO spiral_temp_test: │
│ input=Comment("p%G)U{L1b-v#k<^*'") │
│ 2024-03-30T21:30:18.380303Z INFO spiral_temp_test: │
│ input=Identifier("F6G8pZuodt29TietSVf6WAB") │
│ 2024-03-30T21:30:18.380349Z INFO spiral_temp_test: │
│ input=Identifier("QzvXxT") │
│ 2024-03-30T21:30:18.380409Z INFO spiral_temp_test: │
│ input=StringLiteral("`xbcU/'<Ug:&n<f$d %>*3L&") │
│ 2024-03-30T21:30:18.380453Z INFO spiral_temp_test: │
│ input=Integer(-8289413398880232984) │
│ 2024-03-30T21:30:18.380503Z INFO spiral_temp_test: │
│ input=Identifier("UvaQC3rP5aZ8LBGovl2") │
│ 2024-03-30T21:30:18.380571Z INFO spiral_temp_test: │
│ input=StringLiteral("TU:=+Hcv8?>+{c%ET*Vr5/{1tT") │
│ 2024-03-30T21:30:18.380639Z INFO spiral_temp_test: │
│ input=Identifier("HIv630Z1fn51042Im1cS2c0wppnA") │
│ 2024-03-30T21:30:18.380697Z INFO spiral_temp_test: │
│ input=Identifier("mcKb4YmI") │
│ 2024-03-30T21:30:18.380736Z INFO spiral_temp_test: │
│ input=Integer(5863087566237065731) │
│ 2024-03-30T21:30:18.380771Z INFO spiral_temp_test: │
│ input=Comment("") │
│ 2024-03-30T21:30:18.380809Z INFO spiral_temp_test: │
│ input=Integer(6223500165471725359) │
│ 2024-03-30T21:30:18.380846Z INFO spiral_temp_test: │
│ input=Operator(")") │
│ 2024-03-30T21:30:18.380891Z INFO spiral_temp_test: │
│ input=Operator("(") │
│ 2024-03-30T21:30:18.380930Z INFO spiral_temp_test: │
│ input=Comment("") │
│ 2024-03-30T21:30:18.380968Z INFO spiral_temp_test: │
│ input=Integer(4192176825093935477) │
│ 2024-03-30T21:30:18.381020Z INFO spiral_temp_test: │
│ input=StringLiteral("tu:%T}`M`#pY+)'c") │
│ 2024-03-30T21:30:18.381077Z INFO spiral_temp_test: │
│ input=Identifier("O9US3JsNRyhsvLX6d") │
│ 2024-03-30T21:30:18.381141Z INFO spiral_temp_test: │
│ input=Comment("Z*`3B{`'u?1X[s_P-Ho") │
│ 2024-03-30T21:30:18.381216Z INFO spiral_temp_test: │
│ input=StringLiteral("|L&`wKy][%/f&d5CL'%p1$'j") │
│ 2024-03-30T21:30:18.381294Z INFO spiral_temp_test: │
│ input=Integer(-6313091966045225483) │
│ 2024-03-30T21:30:18.381368Z INFO spiral_temp_test: │
│ input=Operator("(") │
│ 2024-03-30T21:30:18.381422Z INFO spiral_temp_test: │
│ input=Comment("W.$hmqi\"B*+&") │
│ 2024-03-30T21:30:18.381488Z INFO spiral_temp_test: │
│ input=Comment("b^\"=fd$.<r<.l\"JQp\\bl=GXB") │
│ 2024-03-30T21:30:18.381532Z INFO spiral_temp_test: │
│ input=Integer(3806910547581599932) │
│ 2024-03-30T21:30:18.381590Z INFO spiral_temp_test: │
│ input=Comment("&'%3$jL%-77cg.[*\"HZZ?") │
│ 2024-03-30T21:30:18.381638Z INFO spiral_temp_test: │
│ input=Operator("=") │
│ 2024-03-30T21:30:18.381717Z INFO spiral_temp_test: │
│ input=StringLiteral(".f&,0,M(Mz^k0]fM7{@0ih") │
│ 2024-03-30T21:30:18.381765Z INFO spiral_temp_test: │
│ input=Operator("+") │
│ 2024-03-30T21:30:18.381838Z INFO spiral_temp_test: │
│ input=Identifier("vT329C6bamI78z0Yii2JDPJFDURZ") │
│ 2024-03-30T21:30:18.381941Z INFO spiral_temp_test: │
│ input=Identifier("F2T5t61hxHMDnh4rQX5QajmU0EljeN0") │
│ 2024-03-30T21:30:18.382009Z INFO spiral_temp_test: │
│ input=StringLiteral("'3Y{%'87<a61UF?'$1M*{?b") │
│ 2024-03-30T21:30:18.382064Z INFO spiral_temp_test: │
│ input=StringLiteral("<wr}FJ") │
│ 2024-03-30T21:30:18.382128Z INFO spiral_temp_test: │
│ input=StringLiteral("*.$<%w;,+-|<Ggv&W5") │
│ 2024-03-30T21:30:18.382178Z INFO spiral_temp_test: │
│ input=Identifier("t8ZU") │
│ 2024-03-30T21:30:18.382257Z INFO spiral_temp_test: │
│ input=Operator("(") │
│ 2024-03-30T21:30:18.382353Z INFO spiral_temp_test: │
│ input=StringLiteral("-b{89`P)xnd5gJ{!:T.!") │
│ 2024-03-30T21:30:18.382406Z INFO spiral_temp_test: │
│ input=Integer(1494964589957690588) │
│ 2024-03-30T21:30:18.382475Z INFO spiral_temp_test: │
│ input=Comment("=\"-\\brh:6@\\q3|\\[[M'oWt<&r\\J,") │
│ 2024-03-30T21:30:18.382551Z INFO spiral_temp_test: │
│ input=Identifier("n9v7ZXnc2Y9jHLQjsXM1NbW9IzwoUga7t") │
│ 2024-03-30T21:30:18.382602Z INFO spiral_temp_test: │
│ input=Operator("(") │
│ 2024-03-30T21:30:18.382664Z INFO spiral_temp_test: │
│ input=Identifier("CHB0HGYv0uLV6dKLHgKmqbH1") │
│ 2024-03-30T21:30:18.382712Z INFO spiral_temp_test: │
│ input=StringLiteral("J") │
│ 2024-03-30T21:30:18.382762Z INFO spiral_temp_test: │
│ input=Operator("/") │
│ 2024-03-30T21:30:18.382808Z INFO spiral_temp_test: │
│ input=Operator(")") │
│ 2024-03-30T21:30:18.382848Z INFO spiral_temp_test: │
│ input=Operator("-") │
│ 2024-03-30T21:30:18.382911Z INFO spiral_temp_test: │
│ input=StringLiteral("i`=.A^fY_<*WD:-.5'{e4U+0") │
│ 2024-03-30T21:30:18.382963Z INFO spiral_temp_test: │
│ input=Operator("(") │
│ 2024-03-30T21:30:18.383012Z INFO spiral_temp_test: │
│ input=Comment("|o*$m/") │
│ 2024-03-30T21:30:18.383060Z INFO spiral_temp_test: │
│ input=StringLiteral("P.e'H%J$") │
│ 2024-03-30T21:30:18.383105Z INFO spiral_temp_test: │
│ input=Operator("/") │
│ 2024-03-30T21:30:18.383152Z INFO spiral_temp_test: │
│ input=Comment("$'m{l`") │
│ 2024-03-30T21:30:18.383191Z INFO spiral_temp_test: │
│ input=Operator("+") │
│ 2024-03-30T21:30:18.383235Z INFO spiral_temp_test: │
│ input=StringLiteral("-f5L") │
│ 2024-03-30T21:30:18.383272Z INFO spiral_temp_test: │
│ input=Integer(118542495072736014) │
│ 2024-03-30T21:30:18.383314Z INFO spiral_temp_test: │
│ input=Operator("*") │
│ 2024-03-30T21:30:18.383349Z INFO spiral_temp_test: │
│ input=Operator("+") │
│ 2024-03-30T21:30:18.383389Z INFO spiral_temp_test: │
│ input=Operator("+") │
│ 2024-03-30T21:30:18.383424Z INFO spiral_temp_test: │
│ input=Integer(234867744922703257) │
│ 2024-03-30T21:30:18.383471Z INFO spiral_temp_test: │
│ input=Identifier("FWEpYuV2") │
│ 2024-03-30T21:30:18.383506Z INFO spiral_temp_test: │
│ input=Integer(-5556641230826822915) │
│ 2024-03-30T21:30:18.383551Z INFO spiral_temp_test: │
│ input=Identifier("lfWSBN37") │
│ 2024-03-30T21:30:18.383596Z INFO spiral_temp_test: │
│ input=StringLiteral("a,^T") │
│ 2024-03-30T21:30:18.383643Z INFO spiral_temp_test: │
│ input=Comment("m:O&") │
│ 2024-03-30T21:30:18.383689Z INFO spiral_temp_test: │
│ input=Identifier("oTBZ59uHhM") │
│ 2024-03-30T21:30:18.383745Z INFO spiral_temp_test: │
│ input=Comment("X(z") │
│ 2024-03-30T21:30:18.383802Z INFO spiral_temp_test: │
│ input=Comment("q\"\\lz&b./cNM/o4$Q") │
│ 2024-03-30T21:30:18.383851Z INFO spiral_temp_test: │
│ input=Integer(-6323757767366281387) │
│ 2024-03-30T21:30:18.383914Z INFO spiral_temp_test: │
│ input=Comment("OM`>t8hz<uB<#y'LM&/1\"aK") │
│ 2024-03-30T21:30:18.383963Z INFO spiral_temp_test: │
│ input=Operator("-") │
│ 2024-03-30T21:30:18.384008Z INFO spiral_temp_test: │
│ input=Comment("l") │
│ 2024-03-30T21:30:18.384045Z INFO spiral_temp_test: │
│ input=Integer(8990523789303144737) │
│ 2024-03-30T21:30:18.384079Z INFO spiral_temp_test: │
│ input=Integer(-6493964820116445362) │
│ 2024-03-30T21:30:18.384120Z INFO spiral_temp_test: │
│ input=Operator("=") │
│ 2024-03-30T21:30:18.384163Z INFO spiral_temp_test: │
│ input=Operator("/") │
│ 2024-03-30T21:30:18.384197Z INFO spiral_temp_test: │
│ input=Integer(8982655041733311256) │
│ 2024-03-30T21:30:18.384250Z INFO spiral_temp_test: │
│ input=StringLiteral("'c'~N*R*&ZW`") │
│ 2024-03-30T21:30:18.384302Z INFO spiral_temp_test: │
│ input=StringLiteral("") │
│ 2024-03-30T21:30:18.384366Z INFO spiral_temp_test: │
│ input=StringLiteral("*1_IS5%G:%jn&9dt,") │
│ 2024-03-30T21:30:18.384427Z INFO spiral_temp_test: │
│ input=Comment("{G]s){><f'7W/") │
│ 2024-03-30T21:30:18.384478Z INFO spiral_temp_test: │
│ input=Identifier("F94Ne") │
│ 2024-03-30T21:30:18.384516Z INFO spiral_temp_test: │
│ input=Integer(8935809795443973431) │
│ 2024-03-30T21:30:18.384576Z INFO spiral_temp_test: │
│ input=StringLiteral("D,:w<3=AAZw<{.x`|s{g") │
│ 2024-03-30T21:30:18.384652Z INFO spiral_temp_test: │
│ input=Identifier("QT6r9gi1TWT2vf7vZK3P9e") │
│ 2024-03-30T21:30:18.384714Z INFO spiral_temp_test: │
│ input=StringLiteral("?z.~$ .NgE$X*NI`?") │
│ 2024-03-30T21:30:18.384783Z INFO spiral_temp_test: │
│ input=Identifier("srQ0J386jFs778xE8y35LL2") │
│ 2024-03-30T21:30:18.384828Z INFO spiral_temp_test: │
│ input=Integer(-4897039541934047000) │
│ 2024-03-30T21:30:18.384890Z INFO spiral_temp_test: │
│ input=Identifier("X6WXLkuMmSH5FLj1i3r5ya") │
│ 2024-03-30T21:30:18.384938Z INFO spiral_temp_test: │
│ input=Integer(-8893511899057058266) │
│ 2024-03-30T21:30:18.384972Z INFO spiral_temp_test: │
│ input=Integer(-8989619857068324139) │
│ 2024-03-30T21:30:18.385025Z INFO spiral_temp_test: │
│ input=Comment("#*D4nI`n?FP=") │
│ 2024-03-30T21:30:18.385080Z INFO spiral_temp_test: │
│ input=Identifier("i6jWVdAz3Wk2") │
│ 2024-03-30T21:30:18.385120Z INFO spiral_temp_test: │
│ input=Identifier("sywajRYJm2") │
│ 2024-03-30T21:30:18.385165Z INFO spiral_temp_test: │
│ input=StringLiteral("`q97.i{$X&v<]g") │
│ 2024-03-30T21:30:18.385202Z INFO spiral_temp_test: │
│ input=Operator("-") │
│ 2024-03-30T21:30:18.385231Z INFO spiral_temp_test: │
│ input=StringLiteral("") │
│ 2024-03-30T21:30:18.385283Z INFO spiral_temp_test: │
│ input=StringLiteral("n(%/a'TC:/[.$&j@{t/fAd<V=e") │
│ 2024-03-30T21:30:18.385341Z INFO spiral_temp_test: │
│ input=Comment("x\"G-\"A&7z/g$p=\"r:Od\"='") │
│ 2024-03-30T21:30:18.385377Z INFO spiral_temp_test: │
│ input=Integer(1193017471734145993) │
│ 2024-03-30T21:30:18.385431Z INFO spiral_temp_test: │
│ input=StringLiteral("2,L~$*2%VfW%|vJ$mvKkj.n.O`K%iI") │
│ 2024-03-30T21:30:18.385469Z INFO spiral_temp_test: │
│ input=Identifier("mc") │
│ 2024-03-30T21:30:18.385496Z INFO spiral_temp_test: │
│ input=Integer(7867525167118189591) │
│ 2024-03-30T21:30:18.385529Z INFO spiral_temp_test: │
│ input=Operator("=") │
│ 2024-03-30T21:30:18.385615Z INFO spiral_temp_test: │
│ input=Comment("-P}DD;>=2?q\\&I?R") │
│ 2024-03-30T21:30:18.385710Z INFO spiral_temp_test: │
│ input=Identifier("Z8307SJmzk0sGnq957PKrtGGLXi") │
│ 2024-03-30T21:30:18.385757Z INFO spiral_temp_test: │
│ input=Operator("*") │
│ 2024-03-30T21:30:18.385787Z INFO spiral_temp_test: │
│ input=Integer(-7764913369205040685) │
│ 2024-03-30T21:30:18.385846Z INFO spiral_temp_test: │
│ input=Identifier("apO30JYXTgVkhanaJdVcf9jwi5CyeH9") │
│ 2024-03-30T21:30:18.385889Z INFO spiral_temp_test: │
│ input=Identifier("Fb64GN7i") │
│ 2024-03-30T21:30:18.385938Z INFO spiral_temp_test: │
│ input=Identifier("alG4Ix5ov57cctIXMD5wwLR34") │
│ 2024-03-30T21:30:18.385968Z INFO spiral_temp_test: │
│ input=Integer(4821514506528901089) │
│ 2024-03-30T21:30:18.386015Z INFO spiral_temp_test: │
│ input=Comment("}L%b\\{|5{,l}8/%@a") │
│ 2024-03-30T21:30:18.386052Z INFO spiral_temp_test: │
│ input=Operator("+") │
│ 2024-03-30T21:30:18.386092Z INFO spiral_temp_test: │
│ input=Comment("=Q`^x?bT|Mv") │
│ 2024-03-30T21:30:18.386127Z INFO spiral_temp_test: │
│ input=Operator("=") │
│ 2024-03-30T21:30:18.386159Z INFO spiral_temp_test: │
│ input=Operator("*") │
│ 2024-03-30T21:30:18.386220Z INFO spiral_temp_test: │
│ input=Identifier("dVev6rCdNCxZahgWQOH1piJpR2Qo") │
│ 2024-03-30T21:30:18.386275Z INFO spiral_temp_test: │
│ input=Identifier("tqQV34rM3HUWfYqLt5nmgeNXCsuf7zW") │
│ 2024-03-30T21:30:18.386313Z INFO spiral_temp_test: │
│ input=Operator("(") │
│ 2024-03-30T21:30:18.386352Z INFO spiral_temp_test: │
│ input=Identifier("dH64QJaFPCB") │
│ 2024-03-30T21:30:18.386400Z INFO spiral_temp_test: │
│ input=Identifier("T0gTZh779k3YJsflt8xJ2") │
│ 2024-03-30T21:30:18.386433Z INFO spiral_temp_test: │
│ input=Operator("-") │
│ 2024-03-30T21:30:18.386467Z INFO spiral_temp_test: │
│ input=StringLiteral("~`<u") │
│ 2024-03-30T21:30:18.386501Z INFO spiral_temp_test: │
│ input=Operator("(") │
│ 2024-03-30T21:30:18.386535Z INFO spiral_temp_test: │
│ input=Operator(")") │
│ 2024-03-30T21:30:18.386587Z INFO spiral_temp_test: │
│ input=Identifier("qHaDpuJo7VEqzJ2G8hfkCyP6ER") │
│ 2024-03-30T21:30:18.389364Z INFO spiral_temp_test: │
│ input=Integer(1915286319403153867) │
│ 2024-03-30T21:30:18.389422Z INFO spiral_temp_test: │
│ input=StringLiteral("") │
│ 2024-03-30T21:30:18.389467Z INFO spiral_temp_test: │
│ input=Operator("+") │
│ 2024-03-30T21:30:18.389597Z INFO spiral_temp_test: │
│ input=Operator("/") │
│ 2024-03-30T21:30:18.389650Z INFO spiral_temp_test: │
│ input=Operator("*") │
│ 2024-03-30T21:30:18.389718Z INFO spiral_temp_test: │
│ input=StringLiteral("i#w/3E,v$Gp<'X;>Y_J:<I3*") │
│ 2024-03-30T21:30:18.389796Z INFO spiral_temp_test: │
│ input=Comment("*$wu:Bo'$GV\"@Qs0=") │
│ 2024-03-30T21:30:18.389872Z INFO spiral_temp_test: │
│ input=Identifier("bP0Mh1Rs8kME2HDOC7") │
│ 2024-03-30T21:30:18.389927Z INFO spiral_temp_test: │
│ input=Comment("tU2BM}V+b") │
│ 2024-03-30T21:30:18.389965Z INFO spiral_temp_test: │
│ input=Comment("") │
│ 2024-03-30T21:30:18.390001Z INFO spiral_temp_test: │
│ input=Integer(1237951134807103838) │
│ 2024-03-30T21:30:18.390051Z INFO spiral_temp_test: │
│ input=Comment("FbMCE0u:<RZd**/") │
│ 2024-03-30T21:30:18.390092Z INFO spiral_temp_test: │
│ input=Identifier("jdWVso") │
│ 2024-03-30T21:30:18.390133Z INFO spiral_temp_test: │
│ input=Comment(".~Hq*]") │
│ 2024-03-30T21:30:18.390170Z INFO spiral_temp_test: │
│ input=Integer(-4248003064597885857) │
│ 2024-03-30T21:30:18.390206Z INFO spiral_temp_test: │
│ input=StringLiteral("") │
│ 2024-03-30T21:30:18.390243Z INFO spiral_temp_test: │
│ input=Comment("") │
│ 2024-03-30T21:30:18.390305Z INFO spiral_temp_test: │
│ input=Comment("*5)R|%AMeB~?SgC.1<{$<v\\U4") │
│ 2024-03-30T21:30:18.390346Z INFO spiral_temp_test: │
│ input=Operator("+") │
│ 2024-03-30T21:30:18.390402Z INFO spiral_temp_test: │
│ input=Identifier("fNXEORRT1mezB7m2rgr79W853GM51") │
│ 2024-03-30T21:30:18.390458Z INFO spiral_temp_test: │
│ input=Identifier("Vk2oV48OT96va4THc") │
│ 2024-03-30T21:30:18.390523Z INFO spiral_temp_test: │
│ input=StringLiteral("{~&C.w-&@{*$xf_fxB i<hz") │
│ 2024-03-30T21:30:18.390587Z INFO spiral_temp_test: │
│ input=Identifier("ytR0aK8p8oQ4q9nxnZe7kFZ") │
│ test prop_parse_format_idempotent ... ok │
│ test │
│ adding_and_then_removing_an_item_from_the_cart_leaves_the_cart_unchanged ... │
│ ok │
│ │
│ test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; │
│ finished in 0.15s │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── pwsh ────────────────────────────────────────────────────────────────────────
{ . $ScriptDir/../../../../target/release/spiral_temp_test$(GetExecutableSuffix)
} | Invoke-Block
╭─[ 85.67ms - stdout ]─────────────────────────────────────────────────────────╮
│ app=test │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
[NbConvertApp] Converting notebook build.dib.ipynb to html
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
validate(nb)
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
return _pygments_highlight(
[NbConvertApp] Writing 361499 bytes to build.dib.html
In [ ]:
{ . "$ScriptDir/../apps/perf/build.ps1" } | Invoke-Block
00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60
00:00:00 #2 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 Perf.dib""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:00:02 #3 [Verbose] >
00:00:02 #4 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:02 #5 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:02 #6 [Verbose] > │ ## Perf (Polyglot) │
00:00:02 #7 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:02 #8 [Verbose] >
00:00:02 #9 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:02 #10 [Verbose] > // // test
00:00:02 #11 [Verbose] >
00:00:02 #12 [Verbose] > open testing
00:00:02 #13 [Verbose] > open benchmark
00:00:07 #14 [Verbose] >
00:00:07 #15 [Verbose] > ╭─[ 4.14s - stdout ]───────────────────────────────────────────────────────────╮
00:00:07 #16 [Verbose] > │ () │
00:00:07 #17 [Verbose] > │ │
00:00:07 #18 [Verbose] > │ │
00:00:07 #19 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:07 #20 [Verbose] >
00:00:07 #21 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:07 #22 [Verbose] > #!import ../../lib/spiral/common.fsx
00:00:07 #23 [Verbose] > #!import ../../lib/spiral/sm.fsx
00:00:07 #24 [Verbose] > #!import ../../lib/spiral/date_time.fsx
00:00:07 #25 [Verbose] > #!import ../../lib/spiral/file_system.fsx
00:00:07 #26 [Verbose] > #!import ../../lib/spiral/lib.fsx
00:00:07 #27 [Verbose] >
00:00:07 #28 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:07 #29 [Verbose] > #r
00:00:07 #30 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
00:00:07 #31 [Verbose] > spNetCore.Html.Abstractions.dll"
00:00:07 #32 [Verbose] > #r
00:00:07 #33 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:07 #34 [Verbose] > otNet.Interactive.dll"
00:00:07 #35 [Verbose] > #r
00:00:07 #36 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:07 #37 [Verbose] > otNet.Interactive.FSharp.dll"
00:00:07 #38 [Verbose] > #r
00:00:07 #39 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:07 #40 [Verbose] > otNet.Interactive.Formatting.dll"
00:00:07 #41 [Verbose] > open System
00:00:07 #42 [Verbose] > open System.IO
00:00:07 #43 [Verbose] > open System.Text
00:00:07 #44 [Verbose] > open Microsoft.DotNet.Interactive.Formatting
00:00:08 #45 [Verbose] >
00:00:08 #46 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:08 #47 [Verbose] > #r
00:00:08 #48 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:08 #49 [Verbose] > otNet.Interactive.FSharp.dll"
00:00:08 #50 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
00:00:08 #51 [Verbose] > #r
00:00:08 #52 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:08 #53 [Verbose] > otNet.Interactive.dll"
00:00:08 #54 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel
00:00:08 #55 [Verbose] >
00:00:08 #56 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:08 #57 [Verbose] > type [[<Struct>]] US0 =
00:00:08 #58 [Verbose] > | US0_0
00:00:08 #59 [Verbose] > | US0_1
00:00:08 #60 [Verbose] > and [[<Struct>]] US1 =
00:00:08 #61 [Verbose] > | US1_0
00:00:08 #62 [Verbose] > | US1_1 of f1_0 : US0
00:00:08 #63 [Verbose] > let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
00:00:08 #64 [Verbose] > v0
00:00:08 #65 [Verbose] > and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
00:00:08 #66 [Verbose] > let mutable result = None
00:00:08 #67 [Verbose] > #if FABLE_COMPILER_RUST && !WASM
00:00:08 #68 [Verbose] > let v1 : (unit -> unit) = method0(v0)
00:00:08 #69 [Verbose] > let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
00:00:08 #70 [Verbose] > () = Fable.Core.RustInterop.emitRustExpr () "v1()" }
00:00:08 #71 [Verbose] > v2
00:00:08 #72 [Verbose] > #endif
00:00:08 #73 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:00:08 #74 [Verbose] > let v3 : (unit -> unit) = method0(v0)
00:00:08 #75 [Verbose] > let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
00:00:08 #76 [Verbose] > () = Fable.Core.RustInterop.emitRustExpr () "v3()" }
00:00:08 #77 [Verbose] > v4
00:00:08 #78 [Verbose] > #endif
00:00:08 #79 [Verbose] > #if !FABLE_COMPILER && !F...
00:00:09 #80 [Verbose] >
00:00:09 #81 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:09 #82 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}
00:00:09 #83 [Verbose] > and Mut1 = {mutable l0 : int32}
00:00:09 #84 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =
00:00:09 #85 [Verbose] > let v2 : bool = v1.Contains v0
00:00:09 #86 [Verbose] > v2
00:00:09 #87 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =
00:00:09 #88 [Verbose] > closure1(v0)
00:00:09 #89 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =
00:00:09 #90 [Verbose] > let v2 : bool = v1.EndsWith v0
00:00:09 #91 [Verbose] > v2
00:00:09 #92 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =
00:00:09 #93 [Verbose] > closure3(v0)
00:00:09 #94 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
00:00:09 #95 [Verbose] > let v3 : string = v2.PadLeft (v0, v1)
00:00:09 #96 [Verbose] > v3
00:00:09 #97 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =
00:00:09 #98 [Verbose] > closure6(v0, v1)
00:00:09 #99 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =
00:00:09 #100 [Verbose] > closure5(v0)
00:00:09 #101 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =
00:00:09 #102 [Verbose] > let v2 : stri...
00:00:10 #103 [Verbose] >
00:00:10 #104 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:10 #105 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
00:00:10 #106 [Verbose] > let v2 : (System.Guid -> string) = _.ToString()
00:00:10 #107 [Verbose] > let v3 : string = v2 v0
00:00:10 #108 [Verbose] > let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
00:00:10 #109 [Verbose] > let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
00:00:10 #110 [Verbose] > v5
00:00:10 #111 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
00:00:10 #112 [Verbose] > closure1(v0)
00:00:10 #113 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =
00:00:10 #114 [Verbose] > let v3 : string = v2.Replace (v0, v1)
00:00:10 #115 [Verbose] > v3
00:00:10 #116 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =
00:00:10 #117 [Verbose] > closure5(v0, v1)
00:00:10 #118 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =
00:00:10 #119 [Verbose] > closure4(v0)
00:00:10 #120 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =
00:00:10 #121 [Verbose] > closure3()
00:00:10 #122 [Verbose] > and closure2 (...
00:00:10 #123 [Verbose] >
00:00:10 #124 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:10 #125 [Verbose] > type [[<Struct>]] US0 =
00:00:10 #126 [Verbose] > | US0_0
00:00:10 #127 [Verbose] > | US0_1
00:00:10 #128 [Verbose] > | US0_2
00:00:10 #129 [Verbose] > and [[<Struct>]] US1 =
00:00:10 #130 [Verbose] > | US1_0 of f0_0 : US0
00:00:10 #131 [Verbose] > | US1_1 of f1_0 : US0
00:00:10 #132 [Verbose] > let rec closure0 () () : string =
00:00:10 #133 [Verbose] > let mutable result = None
00:00:10 #134 [Verbose] > #if FABLE_COMPILER_RUST && !WASM
00:00:10 #135 [Verbose] > let v0 : US0 = US0_1
00:00:10 #136 [Verbose] > let v1 : US1 = US1_1(v0)
00:00:10 #137 [Verbose] > let v2 : string = $"create_temp_directory_name target: {v1}"
00:00:10 #138 [Verbose] > let v3 : string = failwith<string> v2
00:00:10 #139 [Verbose] > v3
00:00:10 #140 [Verbose] > #endif
00:00:10 #141 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:00:10 #142 [Verbose] > let v4 : US0 = US0_2
00:00:10 #143 [Verbose] > let v5 : US1 = US1_1(v4)
00:00:10 #144 [Verbose] > let v6 : string = $"create_temp_directory_name target: {v5}"
00:00:10 #145 [Verbose] > let v7 : string = failwith<string> v6
00:00:10 #146 [Verbose] > v7
00:00:10 #147 [Verbose] > #endif
00:00:10 #148 [Verbose] > #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM
00:00:10 #149 [Verbose] > let v8 : string = System.Reflection.Assembly.GetEntryAssembly()...
00:00:10 #150 [Verbose] >
00:00:10 #151 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:10 #152 [Verbose] > #if !WASM && !FABLE_COMPILER
00:00:10 #153 [Verbose] > module Date_time =
00:00:10 #154 [Verbose] > let new_guid_from_date_time x =
00:00:10 #155 [Verbose] > #if !INTERACTIVE
00:00:10 #156 [Verbose] > Date_time.new_guid_from_date_time x
00:00:10 #157 [Verbose] > #else
00:00:10 #158 [Verbose] > new_guid_from_date_time x
00:00:10 #159 [Verbose] > #endif
00:00:10 #160 [Verbose] > #endif
00:00:10 #161 [Verbose] >
00:00:10 #162 [Verbose] > module Sm =
00:00:10 #163 [Verbose] > let concat x =
00:00:10 #164 [Verbose] > #if !INTERACTIVE
00:00:10 #165 [Verbose] > Sm.concat x
00:00:10 #166 [Verbose] > #else
00:00:10 #167 [Verbose] > concat x
00:00:10 #168 [Verbose] > #endif
00:00:10 #169 [Verbose] >
00:00:10 #170 [Verbose] > let contains x =
00:00:10 #171 [Verbose] > #if !INTERACTIVE
00:00:10 #172 [Verbose] > Sm.contains x
00:00:10 #173 [Verbose] > #else
00:00:10 #174 [Verbose] > contains x
00:00:10 #175 [Verbose] > #endif
00:00:10 #176 [Verbose] >
00:00:10 #177 [Verbose] > let ellipsis x =
00:00:10 #178 [Verbose] > #if !INTERACTIVE
00:00:10 #179 [Verbose] > Sm.ellipsis x
00:00:10 #180 [Verbose] > #else
00:00:10 #181 [Verbose] > ellipsis x
00:00:10 #182 [Verbose] > #endif
00:00:10 #183 [Verbose] >
00:00:10 #184 [Verbose] > let ellipsis_end x =
00:00:10 #185 [Verbose] > #if !INTERACTIVE
00:00:10 #186 [Verbose] > Sm.ellipsis_end x
00:00:10 #187 [Verbose] > #else
00:00:10 #188 [Verbose] > ellipsis_end x
00:00:10 #189 [Verbose] > #endif
00:00:10 #190 [Verbose] >
00:00:10 #191 [Verbose] > let ends_with x =
00:00:10 #192 [Verbose] > #if !INTERACTIVE
00:00:10 #193 [Verbose] > Sm.ends_with x
00:00:10 #194 [Verbose] > #else
00:00:10 #195 [Verbose] > ends_with x
00:00:10 #196 [Verbose] > #endif
00:00:10 #197 [Verbose] >
00:00:10 #198 [Verbose] > let format_exception x =
00:00:10 #199 [Verbose] > #if !INTERACTIVE
00:00:10 #200 [Verbose] > Sm.format_...
00:00:10 #201 [Verbose] >
00:00:10 #202 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:10 #203 [Verbose] > #if !INTERACTIVE
00:00:10 #204 [Verbose] > open Lib
00:00:10 #205 [Verbose] > #endif
00:00:10 #206 [Verbose] >
00:00:10 #207 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:10 #208 [Verbose] > inl (/@) x = listm'.(/@) x
00:00:10 #209 [Verbose] >
00:00:10 #210 [Verbose] > ╭─[ 247.70ms - stdout ]────────────────────────────────────────────────────────╮
00:00:10 #211 [Verbose] > │ () │
00:00:10 #212 [Verbose] > │ │
00:00:10 #213 [Verbose] > │ │
00:00:10 #214 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #215 [Verbose] >
00:00:10 #216 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:10 #217 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:10 #218 [Verbose] > │ ## TestCaseResult │
00:00:10 #219 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #220 [Verbose] >
00:00:10 #221 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:10 #222 [Verbose] > type TestCaseResult =
00:00:10 #223 [Verbose] > {
00:00:10 #224 [Verbose] > Input: string
00:00:10 #225 [Verbose] > Expected: string
00:00:10 #226 [Verbose] > Result: string
00:00:10 #227 [Verbose] > TimeList: int64 list
00:00:10 #228 [Verbose] > }
00:00:10 #229 [Verbose] >
00:00:10 #230 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:10 #231 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:10 #232 [Verbose] > │ ## run │
00:00:10 #233 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #234 [Verbose] >
00:00:10 #235 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:10 #236 [Verbose] > let run count (solutions: (string * ('TInput -> 'TExpected)) list) (input,
00:00:10 #237 [Verbose] > expected) =
00:00:10 #238 [Verbose] > let inputStr =
00:00:10 #239 [Verbose] > match box input with
00:00:10 #240 [Verbose] > | :? System.Collections.ICollection as input ->
00:00:10 #241 [Verbose] > System.Linq.Enumerable.Cast<obj> input
00:00:10 #242 [Verbose] > |> Seq.map string
00:00:10 #243 [Verbose] > |> Sm.concat ","
00:00:10 #244 [Verbose] > | _ -> input.ToString ()
00:00:10 #245 [Verbose] >
00:00:10 #246 [Verbose] > printfn ""
00:00:10 #247 [Verbose] > printfn $"Solution: {inputStr} "
00:00:10 #248 [Verbose] >
00:00:10 #249 [Verbose] > let performanceInvoke (fn: unit -> 'T) =
00:00:10 #250 [Verbose] > GC.Collect ()
00:00:10 #251 [Verbose] > let stopwatch = System.Diagnostics.Stopwatch ()
00:00:10 #252 [Verbose] > stopwatch.Start ()
00:00:10 #253 [Verbose] > let time1 = stopwatch.ElapsedMilliseconds
00:00:10 #254 [Verbose] >
00:00:10 #255 [Verbose] > let result =
00:00:10 #256 [Verbose] > [[| 0 .. count |]]
00:00:10 #257 [Verbose] > |> Array.Parallel.map (fun _ ->
00:00:10 #258 [Verbose] > fn ()
00:00:10 #259 [Verbose] > )
00:00:10 #260 [Verbose] > |> Array.last
00:00:10 #261 [Verbose] >
00:00:10 #262 [Verbose] > let time2 = stopwatch.ElapsedMilliseconds - time1
00:00:10 #263 [Verbose] >
00:00:10 #264 [Verbose] > result, time2
00:00:10 #265 [Verbose] >
00:00:10 #266 [Verbose] > let resultsWithTime =
00:00:10 #267 [Verbose] > solutions
00:00:10 #268 [Verbose] > |> List.mapi (fun i (testName, solution) ->
00:00:10 #269 [Verbose] > let result, time = performanceInvoke (fun () -> solution input)
00:00:10 #270 [Verbose] > printfn $"Test case %d{i + 1}. %s{testName}. Time: %A{time} "
00:00:10 #271 [Verbose] > result, time
00:00:10 #272 [Verbose] > )
00:00:10 #273 [Verbose] >
00:00:10 #274 [Verbose] >
00:00:10 #275 [Verbose] > match resultsWithTime |> List.map fst with
00:00:10 #276 [Verbose] > | ([[]] | [[ _ ]]) -> ()
00:00:10 #277 [Verbose] > | (head :: tail) when tail |> List.forall ((=) head) -> ()
00:00:10 #278 [Verbose] > | results -> failwithf $"Challenge error: %A{results}"
00:00:10 #279 [Verbose] >
00:00:10 #280 [Verbose] > {
00:00:10 #281 [Verbose] > Input = inputStr
00:00:10 #282 [Verbose] > Expected = expected.ToString ()
00:00:10 #283 [Verbose] > Result = resultsWithTime |> Seq.map fst |> Seq.head |> _.ToString()
00:00:10 #284 [Verbose] > TimeList = resultsWithTime |> List.map snd
00:00:10 #285 [Verbose] > }
00:00:11 #286 [Verbose] >
00:00:11 #287 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:11 #288 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:11 #289 [Verbose] > │ ## runAll │
00:00:11 #290 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:11 #291 [Verbose] >
00:00:11 #292 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:11 #293 [Verbose] > let runAll testName count (solutions: (string * ('TInput -> 'TExpected)) list)
00:00:11 #294 [Verbose] > testCases =
00:00:11 #295 [Verbose] > printfn ""
00:00:11 #296 [Verbose] > printfn ""
00:00:11 #297 [Verbose] > printfn $"Test: {testName}"
00:00:11 #298 [Verbose] > testCases
00:00:11 #299 [Verbose] > |> Seq.map (run count solutions)
00:00:11 #300 [Verbose] > |> Seq.toList
00:00:11 #301 [Verbose] >
00:00:11 #302 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:11 #303 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:11 #304 [Verbose] > │ ## sortResultList │
00:00:11 #305 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:11 #306 [Verbose] >
00:00:11 #307 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:11 #308 [Verbose] > let sortResultList resultList =
00:00:11 #309 [Verbose] > let table =
00:00:11 #310 [Verbose] > let rows =
00:00:11 #311 [Verbose] > resultList
00:00:11 #312 [Verbose] > |> List.map (fun result ->
00:00:11 #313 [Verbose] > let best =
00:00:11 #314 [Verbose] > result.TimeList
00:00:11 #315 [Verbose] > |> List.mapi (fun i time ->
00:00:11 #316 [Verbose] > i + 1, time
00:00:11 #317 [Verbose] > )
00:00:11 #318 [Verbose] > |> List.sortBy snd
00:00:11 #319 [Verbose] > |> List.head
00:00:11 #320 [Verbose] > |> _.ToString()
00:00:11 #321 [Verbose] > let row =
00:00:11 #322 [Verbose] > [[
00:00:11 #323 [Verbose] > result.Input
00:00:11 #324 [Verbose] > result.Expected
00:00:11 #325 [Verbose] > result.Result
00:00:11 #326 [Verbose] > best
00:00:11 #327 [Verbose] > ]]
00:00:11 #328 [Verbose] > let color =
00:00:11 #329 [Verbose] > match result.Expected = result.Result with
00:00:11 #330 [Verbose] > | true -> Some ConsoleColor.DarkGreen
00:00:11 #331 [Verbose] > | false -> Some ConsoleColor.DarkRed
00:00:11 #332 [Verbose] > row, color
00:00:11 #333 [Verbose] > )
00:00:11 #334 [Verbose] > let header =
00:00:11 #335 [Verbose] > [[
00:00:11 #336 [Verbose] > [[
00:00:11 #337 [Verbose] > "Input"
00:00:11 #338 [Verbose] > "Expected"
00:00:11 #339 [Verbose] > "Result"
00:00:11 #340 [Verbose] > "Best"
00:00:11 #341 [Verbose] > ]]
00:00:11 #342 [Verbose] > [[
00:00:11 #343 [Verbose] > "---"
00:00:11 #344 [Verbose] > "---"
00:00:11 #345 [Verbose] > "---"
00:00:11 #346 [Verbose] > "---"
00:00:11 #347 [Verbose] > ]]
00:00:11 #348 [Verbose] > ]]
00:00:11 #349 [Verbose] > |> List.map (fun row -> row, None)
00:00:11 #350 [Verbose] > header @ rows
00:00:11 #351 [Verbose] >
00:00:11 #352 [Verbose] > let formattedTable =
00:00:11 #353 [Verbose] > let lengthMap =
00:00:11 #354 [Verbose] > table
00:00:11 #355 [Verbose] > |> List.map fst
00:00:11 #356 [Verbose] > |> List.transpose
00:00:11 #357 [Verbose] > |> List.map (fun column ->
00:00:11 #358 [Verbose] > column
00:00:11 #359 [Verbose] > |> List.map String.length
00:00:11 #360 [Verbose] > |> List.sortDescending
00:00:11 #361 [Verbose] > |> List.tryHead
00:00:11 #362 [Verbose] > |> Option.defaultValue 0
00:00:11 #363 [Verbose] > )
00:00:11 #364 [Verbose] > |> List.indexed
00:00:11 #365 [Verbose] > |> Map.ofList
00:00:11 #366 [Verbose] > table
00:00:11 #367 [Verbose] > |> List.map (fun (row, color) ->
00:00:11 #368 [Verbose] > let newRow =
00:00:11 #369 [Verbose] > row
00:00:11 #370 [Verbose] > |> List.mapi (fun i cell ->
00:00:11 #371 [Verbose] > cell.PadRight lengthMap.[[i]]
00:00:11 #372 [Verbose] > )
00:00:11 #373 [Verbose] > newRow, color
00:00:11 #374 [Verbose] > )
00:00:11 #375 [Verbose] >
00:00:11 #376 [Verbose] > printfn ""
00:00:11 #377 [Verbose] > formattedTable
00:00:11 #378 [Verbose] > |> List.iter (fun (row, color) ->
00:00:11 #379 [Verbose] > match color with
00:00:11 #380 [Verbose] > | Some color -> Console.ForegroundColor <- color
00:00:11 #381 [Verbose] > | None -> Console.ResetColor ()
00:00:11 #382 [Verbose] >
00:00:11 #383 [Verbose] > printfn "%s" (String.Join ("\t| ", row))
00:00:11 #384 [Verbose] >
00:00:11 #385 [Verbose] > Console.ResetColor ()
00:00:11 #386 [Verbose] > )
00:00:11 #387 [Verbose] >
00:00:11 #388 [Verbose] > let averages =
00:00:11 #389 [Verbose] > resultList
00:00:11 #390 [Verbose] > |> List.map (fun result -> result.TimeList |> List.map float)
00:00:11 #391 [Verbose] > |> List.transpose
00:00:11 #392 [Verbose] > |> List.map List.average
00:00:11 #393 [Verbose] > |> List.map int64
00:00:11 #394 [Verbose] > |> List.indexed
00:00:11 #395 [Verbose] >
00:00:11 #396 [Verbose] > printfn ""
00:00:11 #397 [Verbose] > printfn "Average Ranking "
00:00:11 #398 [Verbose] > averages
00:00:11 #399 [Verbose] > |> List.sortBy snd
00:00:11 #400 [Verbose] > |> List.iter (fun (i, avg) ->
00:00:11 #401 [Verbose] > printfn $"Test case %d{i + 1}. Average Time: %A{avg} "
00:00:11 #402 [Verbose] > )
00:00:11 #403 [Verbose] >
00:00:11 #404 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:11 #405 [Verbose] > let mutable _count =
00:00:11 #406 [Verbose] > if ("CI" |> System.Environment.GetEnvironmentVariable |> fun x -> $"%A{x}")
00:00:11 #407 [Verbose] > <> "<null>"
00:00:11 #408 [Verbose] > then 2000000
00:00:11 #409 [Verbose] > else 2000
00:00:11 #410 [Verbose] >
00:00:11 #411 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:11 #412 [Verbose] > inl is_fast () =
00:00:11 #413 [Verbose] > false
00:00:11 #414 [Verbose] >
00:00:11 #415 [Verbose] > ╭─[ 212.59ms - stdout ]────────────────────────────────────────────────────────╮
00:00:11 #416 [Verbose] > │ () │
00:00:11 #417 [Verbose] > │ │
00:00:11 #418 [Verbose] > │ │
00:00:11 #419 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:11 #420 [Verbose] >
00:00:11 #421 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:11 #422 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:11 #423 [Verbose] > │ ## empty3Tests │
00:00:11 #424 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:11 #425 [Verbose] >
00:00:11 #426 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:11 #427 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:11 #428 [Verbose] > │ Test: Empty3 │
00:00:11 #429 [Verbose] > │ │
00:00:11 #430 [Verbose] > │ Solution: (a, a) │
00:00:11 #431 [Verbose] > │ Test case 1. A. Time: 91L │
00:00:11 #432 [Verbose] > │ │
00:00:11 #433 [Verbose] > │ Solution: (a, a) │
00:00:11 #434 [Verbose] > │ Test case 1. A. Time: 56L │
00:00:11 #435 [Verbose] > │ │
00:00:11 #436 [Verbose] > │ Input | Expected | Result | Best │
00:00:11 #437 [Verbose] > │ --- | --- | --- | --- │
00:00:11 #438 [Verbose] > │ (a, a) | a | a | (1, 91) │
00:00:11 #439 [Verbose] > │ (a, a) | a | a | (1, 56) │
00:00:11 #440 [Verbose] > │ │
00:00:11 #441 [Verbose] > │ Averages │
00:00:11 #442 [Verbose] > │ Test case 1. Average Time: 73L │
00:00:11 #443 [Verbose] > │ │
00:00:11 #444 [Verbose] > │ Ranking │
00:00:11 #445 [Verbose] > │ Test case 1. Average Time: 73L │
00:00:11 #446 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:11 #447 [Verbose] >
00:00:11 #448 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:11 #449 [Verbose] > //// test
00:00:11 #450 [Verbose] >
00:00:11 #451 [Verbose] > let solutions = [[
00:00:11 #452 [Verbose] > "A",
00:00:11 #453 [Verbose] > fun (a, _b) ->
00:00:11 #454 [Verbose] > a
00:00:11 #455 [Verbose] > ]]
00:00:11 #456 [Verbose] > let testCases = seq {
00:00:11 #457 [Verbose] > ("a", "a"), "a"
00:00:11 #458 [Verbose] > ("a", "a"), "a"
00:00:11 #459 [Verbose] > }
00:00:11 #460 [Verbose] > let rec empty3Tests = runAll (nameof empty3Tests) _count solutions testCases
00:00:11 #461 [Verbose] > empty3Tests
00:00:11 #462 [Verbose] > |> sortResultList
00:00:11 #463 [Verbose] >
00:00:11 #464 [Verbose] > ╭─[ 317.05ms - stdout ]────────────────────────────────────────────────────────╮
00:00:11 #465 [Verbose] > │ │
00:00:11 #466 [Verbose] > │ │
00:00:11 #467 [Verbose] > │ Test: empty3Tests │
00:00:11 #468 [Verbose] > │ │
00:00:11 #469 [Verbose] > │ Solution: (a, a) │
00:00:11 #470 [Verbose] > │ Test case 1. A. Time: 1L │
00:00:11 #471 [Verbose] > │ │
00:00:11 #472 [Verbose] > │ Solution: (a, a) │
00:00:11 #473 [Verbose] > │ Test case 1. A. Time: 0L │
00:00:11 #474 [Verbose] > │ │
00:00:11 #475 [Verbose] > │ Input | Expected | Result | Best │
00:00:11 #476 [Verbose] > │ --- | --- | --- | --- │
00:00:11 #477 [Verbose] > │ (a, a) | a | a | (1, 1) │
00:00:11 #478 [Verbose] > │ (a, a) | a | a | (1, 0) │
00:00:11 #479 [Verbose] > │ │
00:00:11 #480 [Verbose] > │ Average Ranking │
00:00:11 #481 [Verbose] > │ Test case 1. Average Time: 0L │
00:00:11 #482 [Verbose] > │ │
00:00:11 #483 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:11 #484 [Verbose] >
00:00:11 #485 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:11 #486 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:11 #487 [Verbose] > │ ## empty2Tests │
00:00:11 #488 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:11 #489 [Verbose] >
00:00:11 #490 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:11 #491 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:11 #492 [Verbose] > │ Test: Empty2 │
00:00:11 #493 [Verbose] > │ │
00:00:11 #494 [Verbose] > │ Solution: (a, a) │
00:00:11 #495 [Verbose] > │ Test case 1. A. Time: 59L │
00:00:11 #496 [Verbose] > │ │
00:00:11 #497 [Verbose] > │ Solution: (a, a) │
00:00:11 #498 [Verbose] > │ Test case 1. A. Time: 53L │
00:00:11 #499 [Verbose] > │ │
00:00:11 #500 [Verbose] > │ Input | Expected | Result | Best │
00:00:11 #501 [Verbose] > │ --- | --- | --- | --- │
00:00:11 #502 [Verbose] > │ (a, a) | a | a | (1, 59) │
00:00:11 #503 [Verbose] > │ (a, a) | a | a | (1, 53) │
00:00:11 #504 [Verbose] > │ │
00:00:11 #505 [Verbose] > │ Averages │
00:00:11 #506 [Verbose] > │ Test case 1. Average Time: 56L │
00:00:11 #507 [Verbose] > │ │
00:00:11 #508 [Verbose] > │ Ranking │
00:00:11 #509 [Verbose] > │ Test case 1. Average Time: 56L │
00:00:11 #510 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:11 #511 [Verbose] >
00:00:11 #512 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:11 #513 [Verbose] > //// test
00:00:11 #514 [Verbose] >
00:00:11 #515 [Verbose] > let solutions = [[
00:00:11 #516 [Verbose] > "A",
00:00:11 #517 [Verbose] > fun (a, _b) ->
00:00:11 #518 [Verbose] > a
00:00:11 #519 [Verbose] > ]]
00:00:11 #520 [Verbose] > let testCases = seq {
00:00:11 #521 [Verbose] > ("a", "a"), "a"
00:00:11 #522 [Verbose] > ("a", "a"), "a"
00:00:11 #523 [Verbose] > }
00:00:11 #524 [Verbose] > let rec empty2Tests = runAll (nameof empty2Tests) _count solutions testCases
00:00:11 #525 [Verbose] > empty2Tests
00:00:11 #526 [Verbose] > |> sortResultList
00:00:12 #527 [Verbose] >
00:00:12 #528 [Verbose] > ╭─[ 278.21ms - stdout ]────────────────────────────────────────────────────────╮
00:00:12 #529 [Verbose] > │ │
00:00:12 #530 [Verbose] > │ │
00:00:12 #531 [Verbose] > │ Test: empty2Tests │
00:00:12 #532 [Verbose] > │ │
00:00:12 #533 [Verbose] > │ Solution: (a, a) │
00:00:12 #534 [Verbose] > │ Test case 1. A. Time: 1L │
00:00:12 #535 [Verbose] > │ │
00:00:12 #536 [Verbose] > │ Solution: (a, a) │
00:00:12 #537 [Verbose] > │ Test case 1. A. Time: 0L │
00:00:12 #538 [Verbose] > │ │
00:00:12 #539 [Verbose] > │ Input | Expected | Result | Best │
00:00:12 #540 [Verbose] > │ --- | --- | --- | --- │
00:00:12 #541 [Verbose] > │ (a, a) | a | a | (1, 1) │
00:00:12 #542 [Verbose] > │ (a, a) | a | a | (1, 0) │
00:00:12 #543 [Verbose] > │ │
00:00:12 #544 [Verbose] > │ Average Ranking │
00:00:12 #545 [Verbose] > │ Test case 1. Average Time: 0L │
00:00:12 #546 [Verbose] > │ │
00:00:12 #547 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #548 [Verbose] >
00:00:12 #549 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:12 #550 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:12 #551 [Verbose] > │ ## emptyTests │
00:00:12 #552 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #553 [Verbose] >
00:00:12 #554 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:12 #555 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:12 #556 [Verbose] > │ Test: Empty │
00:00:12 #557 [Verbose] > │ │
00:00:12 #558 [Verbose] > │ Solution: 0 │
00:00:12 #559 [Verbose] > │ Test case 1. A. Time: 61L │
00:00:12 #560 [Verbose] > │ │
00:00:12 #561 [Verbose] > │ Solution: 2 │
00:00:12 #562 [Verbose] > │ Test case 1. A. Time: 62L │
00:00:12 #563 [Verbose] > │ │
00:00:12 #564 [Verbose] > │ Solution: 5 │
00:00:12 #565 [Verbose] > │ Test case 1. A. Time: 70L │
00:00:12 #566 [Verbose] > │ │
00:00:12 #567 [Verbose] > │ Input | Expected | Result | Best │
00:00:12 #568 [Verbose] > │ --- | --- | --- | --- │
00:00:12 #569 [Verbose] > │ 0 | 0 | 0 | (1, 61) │
00:00:12 #570 [Verbose] > │ 2 | 2 | 2 | (1, 62) │
00:00:12 #571 [Verbose] > │ 5 | 5 | 5 | (1, 70) │
00:00:12 #572 [Verbose] > │ │
00:00:12 #573 [Verbose] > │ Averages │
00:00:12 #574 [Verbose] > │ Test case 1. Average Time: 64L │
00:00:12 #575 [Verbose] > │ │
00:00:12 #576 [Verbose] > │ Ranking │
00:00:12 #577 [Verbose] > │ Test case 1. Average Time: 64L │
00:00:12 #578 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #579 [Verbose] >
00:00:12 #580 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:12 #581 [Verbose] > //// test
00:00:12 #582 [Verbose] >
00:00:12 #583 [Verbose] > let solutions = [[
00:00:12 #584 [Verbose] > "A",
00:00:12 #585 [Verbose] > fun n ->
00:00:12 #586 [Verbose] > n + 0
00:00:12 #587 [Verbose] > ]]
00:00:12 #588 [Verbose] > let testCases = seq {
00:00:12 #589 [Verbose] > 0, 0
00:00:12 #590 [Verbose] > 2, 2
00:00:12 #591 [Verbose] > 5, 5
00:00:12 #592 [Verbose] > }
00:00:12 #593 [Verbose] > let rec emptyTests = runAll (nameof emptyTests) _count solutions testCases
00:00:12 #594 [Verbose] > emptyTests
00:00:12 #595 [Verbose] > |> sortResultList
00:00:12 #596 [Verbose] >
00:00:12 #597 [Verbose] > ╭─[ 403.05ms - stdout ]────────────────────────────────────────────────────────╮
00:00:12 #598 [Verbose] > │ │
00:00:12 #599 [Verbose] > │ │
00:00:12 #600 [Verbose] > │ Test: emptyTests │
00:00:12 #601 [Verbose] > │ │
00:00:12 #602 [Verbose] > │ Solution: 0 │
00:00:12 #603 [Verbose] > │ Test case 1. A. Time: 2L │
00:00:12 #604 [Verbose] > │ │
00:00:12 #605 [Verbose] > │ Solution: 2 │
00:00:12 #606 [Verbose] > │ Test case 1. A. Time: 0L │
00:00:12 #607 [Verbose] > │ │
00:00:12 #608 [Verbose] > │ Solution: 5 │
00:00:12 #609 [Verbose] > │ Test case 1. A. Time: 0L │
00:00:12 #610 [Verbose] > │ │
00:00:12 #611 [Verbose] > │ Input | Expected | Result | Best │
00:00:12 #612 [Verbose] > │ --- | --- | --- | --- │
00:00:12 #613 [Verbose] > │ 0 | 0 | 0 | (1, 2) │
00:00:12 #614 [Verbose] > │ 2 | 2 | 2 | (1, 0) │
00:00:12 #615 [Verbose] > │ 5 | 5 | 5 | (1, 0) │
00:00:12 #616 [Verbose] > │ │
00:00:12 #617 [Verbose] > │ Average Ranking │
00:00:12 #618 [Verbose] > │ Test case 1. Average Time: 0L │
00:00:12 #619 [Verbose] > │ │
00:00:12 #620 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #621 [Verbose] >
00:00:12 #622 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:12 #623 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:12 #624 [Verbose] > │ ## uniqueLettersTests │
00:00:12 #625 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #626 [Verbose] >
00:00:12 #627 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:12 #628 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:12 #629 [Verbose] > │ Test: UniqueLetters │
00:00:12 #630 [Verbose] > │ │
00:00:12 #631 [Verbose] > │ Solution: abc │
00:00:12 #632 [Verbose] > │ Test case 1. A. Time: 1512L │
00:00:12 #633 [Verbose] > │ Test case 2. B. Time: 1947L │
00:00:12 #634 [Verbose] > │ Test case 3. C. Time: 2023L │
00:00:12 #635 [Verbose] > │ Test case 4. D. Time: 1358L │
00:00:12 #636 [Verbose] > │ Test case 5. E. Time: 1321L │
00:00:12 #637 [Verbose] > │ Test case 6. F. Time: 1346L │
00:00:12 #638 [Verbose] > │ Test case 7. G. Time: 1304L │
00:00:12 #639 [Verbose] > │ Test case 8. H. Time: 1383L │
00:00:12 #640 [Verbose] > │ Test case 9. I. Time: 1495L │
00:00:12 #641 [Verbose] > │ Test case 10. J. Time: 1245L │
00:00:12 #642 [Verbose] > │ Test case 11. K. Time: 1219L │
00:00:12 #643 [Verbose] > │ │
00:00:12 #644 [Verbose] > │ Solution: accabb │
00:00:12 #645 [Verbose] > │ Test case 1. A. Time: 1648L │
00:00:12 #646 [Verbose] > │ Test case 2. B. Time: 2061L │
00:00:12 #647 [Verbose] > │ Test case 3. C. Time: 2413L │
00:00:12 #648 [Verbose] > │ Test case 4. D. Time: 1561L │
00:00:12 #649 [Verbose] > │ Test case 5. E. Time: 1593L │
00:00:12 #650 [Verbose] > │ Test case 6. F. Time: 1518L │
00:00:12 #651 [Verbose] > │ Test case 7. G. Time: 1415L │
00:00:12 #652 [Verbose] > │ Test case 8. H. Time: 1510L │
00:00:12 #653 [Verbose] > │ Test case 9. I. Time: 1445L │
00:00:12 #654 [Verbose] > │ Test case 10. J. Time: 1636L │
00:00:12 #655 [Verbose] > │ Test case 11. K. Time: 1317L │
00:00:12 #656 [Verbose] > │ │
00:00:12 #657 [Verbose] > │ Solution: pprrqqpp │
00:00:12 #658 [Verbose] > │ Test case 1. A. Time: 2255L │
00:00:12 #659 [Verbose] > │ Test case 2. B. Time: 2408L │
00:00:12 #660 [Verbose] > │ Test case 3. C. Time: 2393L │
00:00:12 #661 [Verbose] > │ Test case 4. D. Time: 1675L │
00:00:12 #662 [Verbose] > │ Test case 5. E. Time: 1911L │
00:00:12 #663 [Verbose] > │ Test case 6. F. Time: 2126L │
00:00:12 #664 [Verbose] > │ Test case 7. G. Time: 1504L │
00:00:12 #665 [Verbose] > │ Test case 8. H. Time: 1715L │
00:00:12 #666 [Verbose] > │ Test case 9. I. Time: 1537L │
00:00:12 #667 [Verbose] > │ Test case 10. J. Time: 1522L │
00:00:12 #668 [Verbose] > │ Test case 11. K. Time: 1322L │
00:00:12 #669 [Verbose] > │ │
00:00:12 #670 [Verbose] > │ Solution: │
00:00:12 #671 [Verbose] > │ aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbb │
00:00:12 #672 [Verbose] > │ bbb │
00:00:12 #673 [Verbose] > │ Test case 1. A. Time: 13073L │
00:00:12 #674 [Verbose] > │ Test case 2. B. Time: 11519L │
00:00:12 #675 [Verbose] > │ Test case 3. C. Time: 8373L │
00:00:12 #676 [Verbose] > │ Test case 4. D. Time: 5860L │
00:00:12 #677 [Verbose] > │ Test case 5. E. Time: 6490L │
00:00:12 #678 [Verbose] > │ Test case 6. F. Time: 6325L │
00:00:12 #679 [Verbose] > │ Test case 7. G. Time: 5799L │
00:00:12 #680 [Verbose] > │ Test case 8. H. Time: 7099L │
00:00:12 #681 [Verbose] > │ Test case 9. I. Time: 6133L │
00:00:12 #682 [Verbose] > │ Test case 10. J. Time: 5993L │
00:00:12 #683 [Verbose] > │ Test case 11. K. Time: 2040L │
00:00:12 #684 [Verbose] > │ │
00:00:12 #685 [Verbose] > │ Input │
00:00:12 #686 [Verbose] > │ | Expected | Result | Best │
00:00:12 #687 [Verbose] > │ --- │
00:00:12 #688 [Verbose] > │ │
00:00:12 #689 [Verbose] > │ | --- | --- | --- │
00:00:12 #690 [Verbose] > │ abc │
00:00:12 #691 [Verbose] > │ │
00:00:12 #692 [Verbose] > │ | abc | abc | (11, 1219) │
00:00:12 #693 [Verbose] > │ accabb │
00:00:12 #694 [Verbose] > │ | acb | acb | (11, 1317) │
00:00:12 #695 [Verbose] > │ pprrqqpp │
00:00:12 #696 [Verbose] > │ | prq | prq | (11, 1322) │
00:00:12 #697 [Verbose] > │ aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbb │
00:00:12 #698 [Verbose] > │ bbb | acb | acb | (11, 2040) │
00:00:12 #699 [Verbose] > │ │
00:00:12 #700 [Verbose] > │ Averages │
00:00:12 #701 [Verbose] > │ Test case 1. Average Time: 4622L │
00:00:12 #702 [Verbose] > │ Test case 2. Average Time: 4483L │
00:00:12 #703 [Verbose] > │ Test case 3. Average Time: 3800L │
00:00:12 #704 [Verbose] > │ Test case 4. Average Time: 2613L │
00:00:12 #705 [Verbose] > │ Test case 5. Average Time: 2828L │
00:00:12 #706 [Verbose] > │ Test case 6. Average Time: 2828L │
00:00:12 #707 [Verbose] > │ Test case 7. Average Time: 2505L │
00:00:12 #708 [Verbose] > │ Test case 8. Average Time: 2926L │
00:00:12 #709 [Verbose] > │ Test case 9. Average Time: 2652L │
00:00:12 #710 [Verbose] > │ Test case 10. Average Time: 2599L │
00:00:12 #711 [Verbose] > │ Test case 11. Average Time: 1474L │
00:00:12 #712 [Verbose] > │ │
00:00:12 #713 [Verbose] > │ Ranking │
00:00:12 #714 [Verbose] > │ Test case 1. Average Time: 4622L │
00:00:12 #715 [Verbose] > │ Test case 2. Average Time: 4483L │
00:00:12 #716 [Verbose] > │ Test case 3. Average Time: 3800L │
00:00:12 #717 [Verbose] > │ Test case 8. Average Time: 2926L │
00:00:12 #718 [Verbose] > │ Test case 5. Average Time: 2828L │
00:00:12 #719 [Verbose] > │ Test case 6. Average Time: 2828L │
00:00:12 #720 [Verbose] > │ Test case 9. Average Time: 2652L │
00:00:12 #721 [Verbose] > │ Test case 4. Average Time: 2613L │
00:00:12 #722 [Verbose] > │ Test case 10. Average Time: 2599L │
00:00:12 #723 [Verbose] > │ Test case 7. Average Time: 2505L │
00:00:12 #724 [Verbose] > │ Test case 11. Average Time: 1474L │
00:00:12 #725 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #726 [Verbose] >
00:00:12 #727 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:12 #728 [Verbose] > //// test
00:00:12 #729 [Verbose] >
00:00:12 #730 [Verbose] > let solutions = [[
00:00:12 #731 [Verbose] > "A",
00:00:12 #732 [Verbose] > fun input ->
00:00:12 #733 [Verbose] > input
00:00:12 #734 [Verbose] > |> Seq.toList
00:00:12 #735 [Verbose] > |> List.fold (fun acc x -> if List.contains x acc then acc else acc @ [[
00:00:12 #736 [Verbose] > x ]]) [[]]
00:00:12 #737 [Verbose] > |> Seq.toArray
00:00:12 #738 [Verbose] > |> String
00:00:12 #739 [Verbose] >
00:00:12 #740 [Verbose] > "B",
00:00:12 #741 [Verbose] > fun input ->
00:00:12 #742 [Verbose] > input
00:00:12 #743 [Verbose] > |> Seq.rev
00:00:12 #744 [Verbose] > |> fun list -> Seq.foldBack (fun x acc -> if List.contains x acc then
00:00:12 #745 [Verbose] > acc else x :: acc) list [[]]
00:00:12 #746 [Verbose] > |> Seq.rev
00:00:12 #747 [Verbose] > |> Seq.toArray
00:00:12 #748 [Verbose] > |> String
00:00:12 #749 [Verbose] >
00:00:12 #750 [Verbose] > "C",
00:00:12 #751 [Verbose] > fun input ->
00:00:12 #752 [Verbose] > input
00:00:12 #753 [Verbose] > |> Seq.rev
00:00:12 #754 [Verbose] > |> fun list -> Seq.foldBack (fun x (set, acc) -> if Set.contains x set
00:00:12 #755 [Verbose] > then set, acc else set.Add x, x :: acc) list (Set.empty, [[]])
00:00:12 #756 [Verbose] > |> snd
00:00:12 #757 [Verbose] > |> Seq.rev
00:00:12 #758 [Verbose] > |> Seq.toArray
00:00:12 #759 [Verbose] > |> String
00:00:12 #760 [Verbose] >
00:00:12 #761 [Verbose] > "D",
00:00:12 #762 [Verbose] > fun input ->
00:00:12 #763 [Verbose] > input
00:00:12 #764 [Verbose] > |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc
00:00:12 #765 [Verbose] > else set.Add x, Array.append acc [[| x |]]) (Set.empty, [[||]])
00:00:12 #766 [Verbose] > |> snd
00:00:12 #767 [Verbose] > |> String
00:00:12 #768 [Verbose] >
00:00:12 #769 [Verbose] > "E",
00:00:12 #770 [Verbose] > fun input ->
00:00:12 #771 [Verbose] > input
00:00:12 #772 [Verbose] > |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc
00:00:12 #773 [Verbose] > else set.Add x, x :: acc) (Set.empty, [[]])
00:00:12 #774 [Verbose] > |> snd
00:00:12 #775 [Verbose] > |> List.rev
00:00:12 #776 [Verbose] > |> List.toArray
00:00:12 #777 [Verbose] > |> String
00:00:12 #778 [Verbose] >
00:00:12 #779 [Verbose] > "F",
00:00:12 #780 [Verbose] > fun input ->
00:00:12 #781 [Verbose] > input
00:00:12 #782 [Verbose] > |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc
00:00:12 #783 [Verbose] > else set.Add x, acc @ [[ x ]]) (Set.empty, [[]])
00:00:12 #784 [Verbose] > |> snd
00:00:12 #785 [Verbose] > |> List.toArray
00:00:12 #786 [Verbose] > |> String
00:00:12 #787 [Verbose] >
00:00:12 #788 [Verbose] > "G",
00:00:12 #789 [Verbose] > fun input ->
00:00:12 #790 [Verbose] > input
00:00:12 #791 [Verbose] > |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc
00:00:12 #792 [Verbose] > else set.Add x, x :: acc) (Set.empty, [[]])
00:00:12 #793 [Verbose] > |> snd
00:00:12 #794 [Verbose] > |> List.toArray
00:00:12 #795 [Verbose] > |> Array.rev
00:00:12 #796 [Verbose] > |> String
00:00:12 #797 [Verbose] >
00:00:12 #798 [Verbose] > "H",
00:00:12 #799 [Verbose] > fun input ->
00:00:12 #800 [Verbose] > input
00:00:12 #801 [Verbose] > |> Seq.toList
00:00:12 #802 [Verbose] > |> fun list ->
00:00:12 #803 [Verbose] > let rec loop set = function
00:00:12 #804 [Verbose] > | head :: tail when Set.contains head set -> loop set tail
00:00:12 #805 [Verbose] > | head :: tail -> (loop (set.Add head) tail) @ [[ head ]]
00:00:12 #806 [Verbose] > | [[]] -> [[]]
00:00:12 #807 [Verbose] > loop Set.empty list
00:00:12 #808 [Verbose] > |> List.rev
00:00:12 #809 [Verbose] > |> List.toArray
00:00:12 #810 [Verbose] > |> String
00:00:12 #811 [Verbose] >
00:00:12 #812 [Verbose] > "I",
00:00:12 #813 [Verbose] > fun input ->
00:00:12 #814 [Verbose] > input
00:00:12 #815 [Verbose] > |> Seq.toList
00:00:12 #816 [Verbose] > |> fun list ->
00:00:12 #817 [Verbose] > let rec loop set = function
00:00:12 #818 [Verbose] > | head :: tail when Set.contains head set -> loop set tail
00:00:12 #819 [Verbose] > | head :: tail -> loop (set.Add head) tail |> Array.append [[|
00:00:12 #820 [Verbose] > head |]]
00:00:12 #821 [Verbose] > | [[]] -> [[||]]
00:00:12 #822 [Verbose] > loop Set.empty list
00:00:12 #823 [Verbose] > |> String
00:00:12 #824 [Verbose] >
00:00:12 #825 [Verbose] > "J",
00:00:12 #826 [Verbose] > fun input ->
00:00:12 #827 [Verbose] > input
00:00:12 #828 [Verbose] > |> Seq.toList
00:00:12 #829 [Verbose] > |> fun list ->
00:00:12 #830 [Verbose] > let rec loop set = function
00:00:12 #831 [Verbose] > | head :: tail when Set.contains head set -> loop set tail
00:00:12 #832 [Verbose] > | head :: tail -> head :: loop (set.Add head) tail
00:00:12 #833 [Verbose] > | [[]] -> [[]]
00:00:12 #834 [Verbose] > loop Set.empty list
00:00:12 #835 [Verbose] > |> List.toArray
00:00:12 #836 [Verbose] > |> String
00:00:12 #837 [Verbose] >
00:00:12 #838 [Verbose] > "K",
00:00:12 #839 [Verbose] > fun input ->
00:00:12 #840 [Verbose] > input
00:00:12 #841 [Verbose] > |> Seq.distinct
00:00:12 #842 [Verbose] > |> Seq.toArray
00:00:12 #843 [Verbose] > |> String
00:00:12 #844 [Verbose] > ]]
00:00:12 #845 [Verbose] > let testCases = seq {
00:00:12 #846 [Verbose] > "abc", "abc"
00:00:12 #847 [Verbose] > "accabb", "acb"
00:00:12 #848 [Verbose] > "pprrqqpp", "prq"
00:00:12 #849 [Verbose] >
00:00:12 #850 [Verbose] > "aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb
00:00:12 #851 [Verbose] > ", "acb"
00:00:12 #852 [Verbose] > }
00:00:12 #853 [Verbose] > let rec uniqueLettersTests = runAll (nameof uniqueLettersTests) _count solutions
00:00:12 #854 [Verbose] > testCases
00:00:12 #855 [Verbose] > uniqueLettersTests
00:00:12 #856 [Verbose] > |> sortResultList
00:00:18 #857 [Verbose] >
00:00:18 #858 [Verbose] > ╭─[ 5.82s - stdout ]───────────────────────────────────────────────────────────╮
00:00:18 #859 [Verbose] > │ │
00:00:18 #860 [Verbose] > │ │
00:00:18 #861 [Verbose] > │ Test: uniqueLettersTests │
00:00:18 #862 [Verbose] > │ │
00:00:18 #863 [Verbose] > │ Solution: abc │
00:00:18 #864 [Verbose] > │ Test case 1. A. Time: 3L │
00:00:18 #865 [Verbose] > │ Test case 2. B. Time: 4L │
00:00:18 #866 [Verbose] > │ Test case 3. C. Time: 3L │
00:00:18 #867 [Verbose] > │ Test case 4. D. Time: 2L │
00:00:18 #868 [Verbose] > │ Test case 5. E. Time: 2L │
00:00:18 #869 [Verbose] > │ Test case 6. F. Time: 1L │
00:00:18 #870 [Verbose] > │ Test case 7. G. Time: 1L │
00:00:18 #871 [Verbose] > │ Test case 8. H. Time: 2L │
00:00:18 #872 [Verbose] > │ Test case 9. I. Time: 1L │
00:00:18 #873 [Verbose] > │ Test case 10. J. Time: 1L │
00:00:18 #874 [Verbose] > │ Test case 11. K. Time: 2L │
00:00:18 #875 [Verbose] > │ │
00:00:18 #876 [Verbose] > │ Solution: accabb │
00:00:18 #877 [Verbose] > │ Test case 1. A. Time: 1L │
00:00:18 #878 [Verbose] > │ Test case 2. B. Time: 1L │
00:00:18 #879 [Verbose] > │ Test case 3. C. Time: 2L │
00:00:18 #880 [Verbose] > │ Test case 4. D. Time: 1L │
00:00:18 #881 [Verbose] > │ Test case 5. E. Time: 1L │
00:00:18 #882 [Verbose] > │ Test case 6. F. Time: 0L │
00:00:18 #883 [Verbose] > │ Test case 7. G. Time: 0L │
00:00:18 #884 [Verbose] > │ Test case 8. H. Time: 0L │
00:00:18 #885 [Verbose] > │ Test case 9. I. Time: 0L │
00:00:18 #886 [Verbose] > │ Test case 10. J. Time: 0L │
00:00:18 #887 [Verbose] > │ Test case 11. K. Time: 0L │
00:00:18 #888 [Verbose] > │ │
00:00:18 #889 [Verbose] > │ Solution: pprrqqpp │
00:00:18 #890 [Verbose] > │ Test case 1. A. Time: 0L │
00:00:18 #891 [Verbose] > │ Test case 2. B. Time: 1L │
00:00:18 #892 [Verbose] > │ Test case 3. C. Time: 1L │
00:00:18 #893 [Verbose] > │ Test case 4. D. Time: 0L │
00:00:18 #894 [Verbose] > │ Test case 5. E. Time: 0L │
00:00:18 #895 [Verbose] > │ Test case 6. F. Time: 0L │
00:00:18 #896 [Verbose] > │ Test case 7. G. Time: 0L │
00:00:18 #897 [Verbose] > │ Test case 8. H. Time: 1L │
00:00:18 #898 [Verbose] > │ Test case 9. I. Time: 0L │
00:00:18 #899 [Verbose] > │ Test case 10. J. Time: 1L │
00:00:18 #900 [Verbose] > │ Test case 11. K. Time: 0L │
00:00:18 #901 [Verbose] > │ │
00:00:18 #902 [Verbose] > │ Solution: │
00:00:18 #903 [Verbose] > │ aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbb │
00:00:18 #904 [Verbose] > │ bbb │
00:00:18 #905 [Verbose] > │ Test case 1. A. Time: 11L │
00:00:18 #906 [Verbose] > │ Test case 2. B. Time: 10L │
00:00:18 #907 [Verbose] > │ Test case 3. C. Time: 10L │
00:00:18 #908 [Verbose] > │ Test case 4. D. Time: 7L │
00:00:18 #909 [Verbose] > │ Test case 5. E. Time: 7L │
00:00:18 #910 [Verbose] > │ Test case 6. F. Time: 7L │
00:00:18 #911 [Verbose] > │ Test case 7. G. Time: 6L │
00:00:18 #912 [Verbose] > │ Test case 8. H. Time: 7L │
00:00:18 #913 [Verbose] > │ Test case 9. I. Time: 7L │
00:00:18 #914 [Verbose] > │ Test case 10. J. Time: 31L │
00:00:18 #915 [Verbose] > │ Test case 11. K. Time: 3L │
00:00:18 #916 [Verbose] > │ │
00:00:18 #917 [Verbose] > │ Input │
00:00:18 #918 [Verbose] > │ | Expected | Result | Best │
00:00:18 #919 [Verbose] > │ --- │
00:00:18 #920 [Verbose] > │ | --- | --- | --- │
00:00:18 #921 [Verbose] > │ abc │
00:00:18 #922 [Verbose] > │ | abc | abc | (6, 1) │
00:00:18 #923 [Verbose] > │ accabb │
00:00:18 #924 [Verbose] > │ | acb | acb | (6, 0) │
00:00:18 #925 [Verbose] > │ pprrqqpp │
00:00:18 #926 [Verbose] > │ | prq | prq | (1, 0) │
00:00:18 #927 [Verbose] > │ aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbb │
00:00:18 #928 [Verbose] > │ bbb | acb | acb | (11, 3) │
00:00:18 #929 [Verbose] > │ │
00:00:18 #930 [Verbose] > │ Average Ranking │
00:00:18 #931 [Verbose] > │ Test case 7. Average Time: 1L │
00:00:18 #932 [Verbose] > │ Test case 11. Average Time: 1L │
00:00:18 #933 [Verbose] > │ Test case 4. Average Time: 2L │
00:00:18 #934 [Verbose] > │ Test case 5. Average Time: 2L │
00:00:18 #935 [Verbose] > │ Test case 6. Average Time: 2L │
00:00:18 #936 [Verbose] > │ Test case 8. Average Time: 2L │
00:00:18 #937 [Verbose] > │ Test case 9. Average Time: 2L │
00:00:18 #938 [Verbose] > │ Test case 1. Average Time: 3L │
00:00:18 #939 [Verbose] > │ Test case 2. Average Time: 4L │
00:00:18 #940 [Verbose] > │ Test case 3. Average Time: 4L │
00:00:18 #941 [Verbose] > │ Test case 10. Average Time: 8L │
00:00:18 #942 [Verbose] > │ │
00:00:18 #943 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:18 #944 [Verbose] >
00:00:18 #945 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:18 #946 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:18 #947 [Verbose] > │ ## rotateStringsTests │
00:00:18 #948 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:18 #949 [Verbose] >
00:00:18 #950 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:18 #951 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:18 #952 [Verbose] > │ https://www.hackerrank.com/challenges/rotate-string/forum │
00:00:18 #953 [Verbose] > │ │
00:00:18 #954 [Verbose] > │ Test: RotateStrings │
00:00:18 #955 [Verbose] > │ │
00:00:18 #956 [Verbose] > │ Solution: abc │
00:00:18 #957 [Verbose] > │ Test case 1. A. Time: 1842L │
00:00:18 #958 [Verbose] > │ Test case 2. B. Time: 1846L │
00:00:18 #959 [Verbose] > │ Test case 3. C. Time: 1936L │
00:00:18 #960 [Verbose] > │ Test case 4. CA. Time: 2224L │
00:00:18 #961 [Verbose] > │ Test case 5. CB. Time: 2329L │
00:00:18 #962 [Verbose] > │ Test case 6. D. Time: 2474L │
00:00:18 #963 [Verbose] > │ Test case 7. E. Time: 1664L │
00:00:18 #964 [Verbose] > │ Test case 8. F. Time: 1517L │
00:00:18 #965 [Verbose] > │ Test case 9. FA. Time: 1651L │
00:00:18 #966 [Verbose] > │ Test case 10. FB. Time: 3764L │
00:00:18 #967 [Verbose] > │ Test case 11. FC. Time: 5415L │
00:00:18 #968 [Verbose] > │ │
00:00:18 #969 [Verbose] > │ Solution: abcde │
00:00:18 #970 [Verbose] > │ Test case 1. A. Time: 3356L │
00:00:18 #971 [Verbose] > │ Test case 2. B. Time: 2592L │
00:00:18 #972 [Verbose] > │ Test case 3. C. Time: 2346L │
00:00:18 #973 [Verbose] > │ Test case 4. CA. Time: 2997L │
00:00:18 #974 [Verbose] > │ Test case 5. CB. Time: 3061L │
00:00:18 #975 [Verbose] > │ Test case 6. D. Time: 4051L │
00:00:18 #976 [Verbose] > │ Test case 7. E. Time: 1905L │
00:00:18 #977 [Verbose] > │ Test case 8. F. Time: 1771L │
00:00:18 #978 [Verbose] > │ Test case 9. FA. Time: 2175L │
00:00:18 #979 [Verbose] > │ Test case 10. FB. Time: 3275L │
00:00:18 #980 [Verbose] > │ Test case 11. FC. Time: 5266L │
00:00:18 #981 [Verbose] > │ │
00:00:18 #982 [Verbose] > │ Solution: abcdefghi │
00:00:18 #983 [Verbose] > │ Test case 1. A. Time: 4492L │
00:00:18 #984 [Verbose] > │ Test case 2. B. Time: 3526L │
00:00:18 #985 [Verbose] > │ Test case 3. C. Time: 3583L │
00:00:18 #986 [Verbose] > │ Test case 4. CA. Time: 3711L │
00:00:18 #987 [Verbose] > │ Test case 5. CB. Time: 4783L │
00:00:18 #988 [Verbose] > │ Test case 6. D. Time: 7557L │
00:00:18 #989 [Verbose] > │ Test case 7. E. Time: 3452L │
00:00:18 #990 [Verbose] > │ Test case 8. F. Time: 3050L │
00:00:18 #991 [Verbose] > │ Test case 9. FA. Time: 3275L │
00:00:18 #992 [Verbose] > │ Test case 10. FB. Time: 4635L │
00:00:18 #993 [Verbose] > │ Test case 11. FC. Time: 5616L │
00:00:18 #994 [Verbose] > │ │
00:00:18 #995 [Verbose] > │ Solution: abab │
00:00:18 #996 [Verbose] > │ Test case 1. A. Time: 2093L │
00:00:18 #997 [Verbose] > │ Test case 2. B. Time: 1843L │
00:00:18 #998 [Verbose] > │ Test case 3. C. Time: 1746L │
00:00:18 #999 [Verbose] > │ Test case 4. CA. Time: 2085L │
00:00:18 #1000 [Verbose] > │ Test case 5. CB. Time: 2139L │
00:00:18 #1001 [Verbose] > │ Test case 6. D. Time: 2095L │
00:00:18 #1002 [Verbose] > │ Test case 7. E. Time: 1723L │
00:00:18 #1003 [Verbose] > │ Test case 8. F. Time: 1558L │
00:00:18 #1004 [Verbose] > │ Test case 9. FA. Time: 1620L │
00:00:18 #1005 [Verbose] > │ Test case 10. FB. Time: 2319L │
00:00:18 #1006 [Verbose] > │ Test case 11. FC. Time: 3918L │
00:00:18 #1007 [Verbose] > │ │
00:00:18 #1008 [Verbose] > │ Solution: aa │
00:00:18 #1009 [Verbose] > │ Test case 1. A. Time: 1107L │
00:00:18 #1010 [Verbose] > │ Test case 2. B. Time: 1241L │
00:00:18 #1011 [Verbose] > │ Test case 3. C. Time: 1183L │
00:00:18 #1012 [Verbose] > │ Test case 4. CA. Time: 1563L │
00:00:18 #1013 [Verbose] > │ Test case 5. CB. Time: 1525L │
00:00:18 #1014 [Verbose] > │ Test case 6. D. Time: 1591L │
00:00:18 #1015 [Verbose] > │ Test case 7. E. Time: 1327L │
00:00:18 #1016 [Verbose] > │ Test case 8. F. Time: 1151L │
00:00:18 #1017 [Verbose] > │ Test case 9. FA. Time: 1180L │
00:00:18 #1018 [Verbose] > │ Test case 10. FB. Time: 1733L │
00:00:18 #1019 [Verbose] > │ Test case 11. FC. Time: 2817L │
00:00:18 #1020 [Verbose] > │ │
00:00:18 #1021 [Verbose] > │ Solution: z │
00:00:18 #1022 [Verbose] > │ Test case 1. A. Time: 816L │
00:00:18 #1023 [Verbose] > │ Test case 2. B. Time: 745L │
00:00:18 #1024 [Verbose] > │ Test case 3. C. Time: 928L │
00:00:18 #1025 [Verbose] > │ Test case 4. CA. Time: 1375L │
00:00:18 #1026 [Verbose] > │ Test case 5. CB. Time: 1029L │
00:00:18 #1027 [Verbose] > │ Test case 6. D. Time: 852L │
00:00:18 #1028 [Verbose] > │ Test case 7. E. Time: 712L │
00:00:18 #1029 [Verbose] > │ Test case 8. F. Time: 263L │
00:00:18 #1030 [Verbose] > │ Test case 9. FA. Time: 232L │
00:00:18 #1031 [Verbose] > │ Test case 10. FB. Time: 773L │
00:00:18 #1032 [Verbose] > │ Test case 11. FC. Time: 1789L │
00:00:18 #1033 [Verbose] > │ │
00:00:18 #1034 [Verbose] > │ Input | Expected │
00:00:18 #1035 [Verbose] > │ │
00:00:18 #1036 [Verbose] > │ | Result │
00:00:18 #1037 [Verbose] > │ │
00:00:18 #1038 [Verbose] > │ | Best │
00:00:18 #1039 [Verbose] > │ --- | --- │
00:00:18 #1040 [Verbose] > │ │
00:00:18 #1041 [Verbose] > │ | --- │
00:00:18 #1042 [Verbose] > │ │
00:00:18 #1043 [Verbose] > │ | --- │
00:00:18 #1044 [Verbose] > │ abc | bca cab abc │
00:00:18 #1045 [Verbose] > │ │
00:00:18 #1046 [Verbose] > │ | bca cab abc │
00:00:18 #1047 [Verbose] > │ │
00:00:18 #1048 [Verbose] > │ | (8, 1517) │
00:00:18 #1049 [Verbose] > │ abcde | bcdea cdeab deabc eabcd abcde │
00:00:18 #1050 [Verbose] > │ | bcdea cdeab deabc eabcd abcde │
00:00:18 #1051 [Verbose] > │ | (8, 1771) │
00:00:18 #1052 [Verbose] > │ abcdefghi | bcdefghia cdefghiab defghiabc efghiabcd fghiabcde │
00:00:18 #1053 [Verbose] > │ ghiabcdef hiabcdefg iabcdefgh abcdefghi | bcdefghia cdefghiab │
00:00:18 #1054 [Verbose] > │ defghiabc efghiabcd fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi │
00:00:18 #1055 [Verbose] > │ | (8, 3050) │
00:00:18 #1056 [Verbose] > │ abab | baba abab baba abab │
00:00:18 #1057 [Verbose] > │ │
00:00:18 #1058 [Verbose] > │ | baba abab baba abab │
00:00:18 #1059 [Verbose] > │ │
00:00:18 #1060 [Verbose] > │ | (8, 1558) │
00:00:18 #1061 [Verbose] > │ aa | aa aa │
00:00:18 #1062 [Verbose] > │ │
00:00:18 #1063 [Verbose] > │ | aa aa │
00:00:18 #1064 [Verbose] > │ │
00:00:18 #1065 [Verbose] > │ | (1, 1107) │
00:00:18 #1066 [Verbose] > │ z | z │
00:00:18 #1067 [Verbose] > │ │
00:00:18 #1068 [Verbose] > │ | z │
00:00:18 #1069 [Verbose] > │ │
00:00:18 #1070 [Verbose] > │ | (9, 232) │
00:00:18 #1071 [Verbose] > │ │
00:00:18 #1072 [Verbose] > │ Averages │
00:00:18 #1073 [Verbose] > │ Test case 1. Average Time: 2284L │
00:00:18 #1074 [Verbose] > │ Test case 2. Average Time: 1965L │
00:00:18 #1075 [Verbose] > │ Test case 3. Average Time: 1953L │
00:00:18 #1076 [Verbose] > │ Test case 4. Average Time: 2325L │
00:00:18 #1077 [Verbose] > │ Test case 5. Average Time: 2477L │
00:00:18 #1078 [Verbose] > │ Test case 6. Average Time: 3103L │
00:00:18 #1079 [Verbose] > │ Test case 7. Average Time: 1797L │
00:00:18 #1080 [Verbose] > │ Test case 8. Average Time: 1551L │
00:00:18 #1081 [Verbose] > │ Test case 9. Average Time: 1688L │
00:00:18 #1082 [Verbose] > │ Test case 10. Average Time: 2749L │
00:00:18 #1083 [Verbose] > │ Test case 11. Average Time: 4136L │
00:00:18 #1084 [Verbose] > │ │
00:00:18 #1085 [Verbose] > │ Ranking │
00:00:18 #1086 [Verbose] > │ Test case 11. Average Time: 4136L │
00:00:18 #1087 [Verbose] > │ Test case 6. Average Time: 3103L │
00:00:18 #1088 [Verbose] > │ Test case 10. Average Time: 2749L │
00:00:18 #1089 [Verbose] > │ Test case 5. Average Time: 2477L │
00:00:18 #1090 [Verbose] > │ Test case 4. Average Time: 2325L │
00:00:18 #1091 [Verbose] > │ Test case 1. Average Time: 2284L │
00:00:18 #1092 [Verbose] > │ Test case 2. Average Time: 1965L │
00:00:18 #1093 [Verbose] > │ Test case 3. Average Time: 1953L │
00:00:18 #1094 [Verbose] > │ Test case 7. Average Time: 1797L │
00:00:18 #1095 [Verbose] > │ Test case 9. Average Time: 1688L │
00:00:18 #1096 [Verbose] > │ Test case 8. Average Time: 1551L │
00:00:18 #1097 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:18 #1098 [Verbose] >
00:00:18 #1099 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:18 #1100 [Verbose] > //// test
00:00:18 #1101 [Verbose] >
00:00:18 #1102 [Verbose] > let solutions = [[
00:00:18 #1103 [Verbose] > "A",
00:00:18 #1104 [Verbose] > fun (input: string) ->
00:00:18 #1105 [Verbose] > let resultList =
00:00:18 #1106 [Verbose] > List.fold (fun acc x ->
00:00:18 #1107 [Verbose] > let rotate (text: string) (letter: string) = (text |> Sm.slice 1
00:00:18 #1108 [Verbose] > (input.Length - 1)) + letter
00:00:18 #1109 [Verbose] > [[ rotate (if acc.IsEmpty then input else acc.Head) (string x)
00:00:18 #1110 [Verbose] > ]] @ acc
00:00:18 #1111 [Verbose] > ) [[]] (Seq.toList input)
00:00:18 #1112 [Verbose] >
00:00:18 #1113 [Verbose] > (resultList, "")
00:00:18 #1114 [Verbose] > ||> List.foldBack (fun acc x -> x + acc + " ")
00:00:18 #1115 [Verbose] > |> _.TrimEnd()
00:00:18 #1116 [Verbose] >
00:00:18 #1117 [Verbose] > "B",
00:00:18 #1118 [Verbose] > fun input ->
00:00:18 #1119 [Verbose] > input
00:00:18 #1120 [Verbose] > |> Seq.toList
00:00:18 #1121 [Verbose] > |> List.fold (fun (acc: string list) letter ->
00:00:18 #1122 [Verbose] > let last =
00:00:18 #1123 [Verbose] > if acc.IsEmpty
00:00:18 #1124 [Verbose] > then input
00:00:18 #1125 [Verbose] > else acc.Head
00:00:18 #1126 [Verbose] >
00:00:18 #1127 [Verbose] > let item = last.[[1 .. input.Length - 1]] + string letter
00:00:18 #1128 [Verbose] >
00:00:18 #1129 [Verbose] > item :: acc
00:00:18 #1130 [Verbose] > ) [[]]
00:00:18 #1131 [Verbose] > |> List.rev
00:00:18 #1132 [Verbose] > |> Sm.concat " "
00:00:18 #1133 [Verbose] >
00:00:18 #1134 [Verbose] > "C",
00:00:18 #1135 [Verbose] > fun input ->
00:00:18 #1136 [Verbose] > input
00:00:18 #1137 [Verbose] > |> Seq.toList
00:00:18 #1138 [Verbose] > |> List.fold (fun (acc: string list) letter -> acc.Head.[[ 1 ..
00:00:18 #1139 [Verbose] > input.Length - 1 ]] + string letter :: acc) [[ input ]]
00:00:18 #1140 [Verbose] > |> List.rev
00:00:18 #1141 [Verbose] > |> List.skip 1
00:00:18 #1142 [Verbose] > |> Sm.concat " "
00:00:18 #1143 [Verbose] >
00:00:18 #1144 [Verbose] > "CA",
00:00:18 #1145 [Verbose] > fun input ->
00:00:18 #1146 [Verbose] > input
00:00:18 #1147 [Verbose] > |> Seq.fold (fun (acc: string list) letter -> acc.Head.[[ 1 ..
00:00:18 #1148 [Verbose] > input.Length - 1 ]] + string letter :: acc) [[ input ]]
00:00:18 #1149 [Verbose] > |> Seq.rev
00:00:18 #1150 [Verbose] > |> Seq.skip 1
00:00:18 #1151 [Verbose] > |> Sm.concat " "
00:00:18 #1152 [Verbose] >
00:00:18 #1153 [Verbose] > "CB",
00:00:18 #1154 [Verbose] > fun input ->
00:00:18 #1155 [Verbose] > input
00:00:18 #1156 [Verbose] > |> Seq.toArray
00:00:18 #1157 [Verbose] > |> Array.fold (fun (acc: string[[]]) letter -> acc |> Array.append [[|
00:00:18 #1158 [Verbose] > acc.[[0]].[[ 1 .. input.Length - 1 ]] + string letter |]]) [[| input |]]
00:00:18 #1159 [Verbose] > |> Array.rev
00:00:18 #1160 [Verbose] > |> Array.skip 1
00:00:18 #1161 [Verbose] > |> Sm.concat " "
00:00:18 #1162 [Verbose] >
00:00:18 #1163 [Verbose] > "D",
00:00:18 #1164 [Verbose] > fun input ->
00:00:18 #1165 [Verbose] > input
00:00:18 #1166 [Verbose] > |> Seq.toList
00:00:18 #1167 [Verbose] > |> fun list ->
00:00:18 #1168 [Verbose] > let rec loop (acc: char list list) = function
00:00:18 #1169 [Verbose] > | _ when acc.Length = list.Length -> acc
00:00:18 #1170 [Verbose] > | head :: tail ->
00:00:18 #1171 [Verbose] > let item = tail @ [[ head ]]
00:00:18 #1172 [Verbose] > loop (item :: acc) item
00:00:18 #1173 [Verbose] > | [[]] -> [[]]
00:00:18 #1174 [Verbose] > loop [[]] list
00:00:18 #1175 [Verbose] > |> List.rev
00:00:18 #1176 [Verbose] > |> List.map (List.toArray >> String)
00:00:18 #1177 [Verbose] > |> Sm.concat " "
00:00:18 #1178 [Verbose] >
00:00:18 #1179 [Verbose] > "E",
00:00:18 #1180 [Verbose] > fun input ->
00:00:18 #1181 [Verbose] > input
00:00:18 #1182 [Verbose] > |> Seq.toList
00:00:18 #1183 [Verbose] > |> fun list ->
00:00:18 #1184 [Verbose] > let rec loop (last: string) = function
00:00:18 #1185 [Verbose] > | head :: tail ->
00:00:18 #1186 [Verbose] > let item = last.[[1 .. input.Length - 1]] + string head
00:00:18 #1187 [Verbose] > item :: loop item tail
00:00:18 #1188 [Verbose] > | [[]] -> [[]]
00:00:18 #1189 [Verbose] > loop input list
00:00:18 #1190 [Verbose] > |> Sm.concat " "
00:00:18 #1191 [Verbose] >
00:00:18 #1192 [Verbose] > "F",
00:00:18 #1193 [Verbose] > fun input ->
00:00:18 #1194 [Verbose] > Array.singleton 0
00:00:18 #1195 [Verbose] > |> Array.append [[| 1 .. input.Length - 1 |]]
00:00:18 #1196 [Verbose] > |> Array.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])
00:00:18 #1197 [Verbose] > |> Sm.concat " "
00:00:18 #1198 [Verbose] >
00:00:18 #1199 [Verbose] > "FA",
00:00:18 #1200 [Verbose] > fun input ->
00:00:18 #1201 [Verbose] > List.singleton 0
00:00:18 #1202 [Verbose] > |> List.append [[ 1 .. input.Length - 1 ]]
00:00:18 #1203 [Verbose] > |> List.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])
00:00:18 #1204 [Verbose] > |> Sm.concat " "
00:00:18 #1205 [Verbose] >
00:00:18 #1206 [Verbose] > "FB",
00:00:18 #1207 [Verbose] > fun input ->
00:00:18 #1208 [Verbose] > Seq.singleton 0
00:00:18 #1209 [Verbose] > |> Seq.append (seq { 1 .. input.Length - 1 })
00:00:18 #1210 [Verbose] > |> Seq.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])
00:00:18 #1211 [Verbose] > |> Sm.concat " "
00:00:18 #1212 [Verbose] >
00:00:18 #1213 [Verbose] > "FC",
00:00:18 #1214 [Verbose] > fun input ->
00:00:18 #1215 [Verbose] > Array.singleton 0
00:00:18 #1216 [Verbose] > |> Array.append [[| 1 .. input.Length - 1 |]]
00:00:18 #1217 [Verbose] > |> Array.Parallel.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])
00:00:18 #1218 [Verbose] > |> Sm.concat " "
00:00:18 #1219 [Verbose] > ]]
00:00:18 #1220 [Verbose] > let testCases = seq {
00:00:18 #1221 [Verbose] > "abc", "bca cab abc"
00:00:18 #1222 [Verbose] > "abcde", "bcdea cdeab deabc eabcd abcde"
00:00:18 #1223 [Verbose] > "abcdefghi", "bcdefghia cdefghiab defghiabc efghiabcd fghiabcde ghiabcdef
00:00:18 #1224 [Verbose] > hiabcdefg iabcdefgh abcdefghi"
00:00:18 #1225 [Verbose] > "abab", "baba abab baba abab"
00:00:18 #1226 [Verbose] > "aa", "aa aa"
00:00:18 #1227 [Verbose] > "z", "z"
00:00:18 #1228 [Verbose] > }
00:00:18 #1229 [Verbose] > let rec rotateStringsTests = runAll (nameof rotateStringsTests) _count solutions
00:00:18 #1230 [Verbose] > testCases
00:00:18 #1231 [Verbose] > rotateStringsTests
00:00:18 #1232 [Verbose] > |> sortResultList
00:00:26 #1233 [Verbose] >
00:00:26 #1234 [Verbose] > ╭─[ 8.07s - stdout ]───────────────────────────────────────────────────────────╮
00:00:26 #1235 [Verbose] > │ │
00:00:26 #1236 [Verbose] > │ │
00:00:26 #1237 [Verbose] > │ Test: rotateStringsTests │
00:00:26 #1238 [Verbose] > │ │
00:00:26 #1239 [Verbose] > │ Solution: abc │
00:00:26 #1240 [Verbose] > │ Test case 1. A. Time: 2L │
00:00:26 #1241 [Verbose] > │ Test case 2. B. Time: 2L │
00:00:26 #1242 [Verbose] > │ Test case 3. C. Time: 2L │
00:00:26 #1243 [Verbose] > │ Test case 4. CA. Time: 3L │
00:00:26 #1244 [Verbose] > │ Test case 5. CB. Time: 2L │
00:00:26 #1245 [Verbose] > │ Test case 6. D. Time: 2L │
00:00:26 #1246 [Verbose] > │ Test case 7. E. Time: 2L │
00:00:26 #1247 [Verbose] > │ Test case 8. F. Time: 2L │
00:00:26 #1248 [Verbose] > │ Test case 9. FA. Time: 2L │
00:00:26 #1249 [Verbose] > │ Test case 10. FB. Time: 6L │
00:00:26 #1250 [Verbose] > │ Test case 11. FC. Time: 8L │
00:00:26 #1251 [Verbose] > │ │
00:00:26 #1252 [Verbose] > │ Solution: abcde │
00:00:26 #1253 [Verbose] > │ Test case 1. A. Time: 3L │
00:00:26 #1254 [Verbose] > │ Test case 2. B. Time: 1L │
00:00:26 #1255 [Verbose] > │ Test case 3. C. Time: 0L │
00:00:26 #1256 [Verbose] > │ Test case 4. CA. Time: 1L │
00:00:26 #1257 [Verbose] > │ Test case 5. CB. Time: 1L │
00:00:26 #1258 [Verbose] > │ Test case 6. D. Time: 3L │
00:00:26 #1259 [Verbose] > │ Test case 7. E. Time: 1L │
00:00:26 #1260 [Verbose] > │ Test case 8. F. Time: 0L │
00:00:26 #1261 [Verbose] > │ Test case 9. FA. Time: 1L │
00:00:26 #1262 [Verbose] > │ Test case 10. FB. Time: 3L │
00:00:26 #1263 [Verbose] > │ Test case 11. FC. Time: 4L │
00:00:26 #1264 [Verbose] > │ │
00:00:26 #1265 [Verbose] > │ Solution: abcdefghi │
00:00:26 #1266 [Verbose] > │ Test case 1. A. Time: 6L │
00:00:26 #1267 [Verbose] > │ Test case 2. B. Time: 1L │
00:00:26 #1268 [Verbose] > │ Test case 3. C. Time: 3L │
00:00:26 #1269 [Verbose] > │ Test case 4. CA. Time: 2L │
00:00:26 #1270 [Verbose] > │ Test case 5. CB. Time: 4L │
00:00:26 #1271 [Verbose] > │ Test case 6. D. Time: 7L │
00:00:26 #1272 [Verbose] > │ Test case 7. E. Time: 3L │
00:00:26 #1273 [Verbose] > │ Test case 8. F. Time: 0L │
00:00:26 #1274 [Verbose] > │ Test case 9. FA. Time: 4L │
00:00:26 #1275 [Verbose] > │ Test case 10. FB. Time: 3L │
00:00:26 #1276 [Verbose] > │ Test case 11. FC. Time: 4L │
00:00:26 #1277 [Verbose] > │ │
00:00:26 #1278 [Verbose] > │ Solution: abab │
00:00:26 #1279 [Verbose] > │ Test case 1. A. Time: 1L │
00:00:26 #1280 [Verbose] > │ Test case 2. B. Time: 0L │
00:00:26 #1281 [Verbose] > │ Test case 3. C. Time: 1L │
00:00:26 #1282 [Verbose] > │ Test case 4. CA. Time: 1L │
00:00:26 #1283 [Verbose] > │ Test case 5. CB. Time: 1L │
00:00:26 #1284 [Verbose] > │ Test case 6. D. Time: 2L │
00:00:26 #1285 [Verbose] > │ Test case 7. E. Time: 1L │
00:00:26 #1286 [Verbose] > │ Test case 8. F. Time: 0L │
00:00:26 #1287 [Verbose] > │ Test case 9. FA. Time: 1L │
00:00:26 #1288 [Verbose] > │ Test case 10. FB. Time: 1L │
00:00:26 #1289 [Verbose] > │ Test case 11. FC. Time: 4L │
00:00:26 #1290 [Verbose] > │ │
00:00:26 #1291 [Verbose] > │ Solution: aa │
00:00:26 #1292 [Verbose] > │ Test case 1. A. Time: 0L │
00:00:26 #1293 [Verbose] > │ Test case 2. B. Time: 0L │
00:00:26 #1294 [Verbose] > │ Test case 3. C. Time: 0L │
00:00:26 #1295 [Verbose] > │ Test case 4. CA. Time: 0L │
00:00:26 #1296 [Verbose] > │ Test case 5. CB. Time: 0L │
00:00:26 #1297 [Verbose] > │ Test case 6. D. Time: 0L │
00:00:26 #1298 [Verbose] > │ Test case 7. E. Time: 0L │
00:00:26 #1299 [Verbose] > │ Test case 8. F. Time: 0L │
00:00:26 #1300 [Verbose] > │ Test case 9. FA. Time: 0L │
00:00:26 #1301 [Verbose] > │ Test case 10. FB. Time: 0L │
00:00:26 #1302 [Verbose] > │ Test case 11. FC. Time: 4L │
00:00:26 #1303 [Verbose] > │ │
00:00:26 #1304 [Verbose] > │ Solution: z │
00:00:26 #1305 [Verbose] > │ Test case 1. A. Time: 0L │
00:00:26 #1306 [Verbose] > │ Test case 2. B. Time: 0L │
00:00:26 #1307 [Verbose] > │ Test case 3. C. Time: 0L │
00:00:26 #1308 [Verbose] > │ Test case 4. CA. Time: 0L │
00:00:26 #1309 [Verbose] > │ Test case 5. CB. Time: 0L │
00:00:26 #1310 [Verbose] > │ Test case 6. D. Time: 0L │
00:00:26 #1311 [Verbose] > │ Test case 7. E. Time: 0L │
00:00:26 #1312 [Verbose] > │ Test case 8. F. Time: 0L │
00:00:26 #1313 [Verbose] > │ Test case 9. FA. Time: 0L │
00:00:26 #1314 [Verbose] > │ Test case 10. FB. Time: 0L │
00:00:26 #1315 [Verbose] > │ Test case 11. FC. Time: 3L │
00:00:26 #1316 [Verbose] > │ │
00:00:26 #1317 [Verbose] > │ Input | Expected │
00:00:26 #1318 [Verbose] > │ │
00:00:26 #1319 [Verbose] > │ | Result │
00:00:26 #1320 [Verbose] > │ │
00:00:26 #1321 [Verbose] > │ | Best │
00:00:26 #1322 [Verbose] > │ --- | --- │
00:00:26 #1323 [Verbose] > │ │
00:00:26 #1324 [Verbose] > │ | --- │
00:00:26 #1325 [Verbose] > │ │
00:00:26 #1326 [Verbose] > │ | --- │
00:00:26 #1327 [Verbose] > │ abc | bca cab abc │
00:00:26 #1328 [Verbose] > │ │
00:00:26 #1329 [Verbose] > │ | bca cab abc │
00:00:26 #1330 [Verbose] > │ │
00:00:26 #1331 [Verbose] > │ | (1, 2) │
00:00:26 #1332 [Verbose] > │ abcde | bcdea cdeab deabc eabcd abcde │
00:00:26 #1333 [Verbose] > │ | bcdea cdeab deabc eabcd abcde │
00:00:26 #1334 [Verbose] > │ | (3, 0) │
00:00:26 #1335 [Verbose] > │ abcdefghi | bcdefghia cdefghiab defghiabc efghiabcd fghiabcde ghiabcdef │
00:00:26 #1336 [Verbose] > │ hiabcdefg iabcdefgh abcdefghi | bcdefghia cdefghiab defghiabc efghiabcd │
00:00:26 #1337 [Verbose] > │ fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi | (8, 0) │
00:00:26 #1338 [Verbose] > │ abab | baba abab baba abab │
00:00:26 #1339 [Verbose] > │ | baba abab baba abab │
00:00:26 #1340 [Verbose] > │ | (2, 0) │
00:00:26 #1341 [Verbose] > │ aa | aa aa │
00:00:26 #1342 [Verbose] > │ │
00:00:26 #1343 [Verbose] > │ | aa aa │
00:00:26 #1344 [Verbose] > │ │
00:00:26 #1345 [Verbose] > │ | (1, 0) │
00:00:26 #1346 [Verbose] > │ z | z │
00:00:26 #1347 [Verbose] > │ │
00:00:26 #1348 [Verbose] > │ | z │
00:00:26 #1349 [Verbose] > │ │
00:00:26 #1350 [Verbose] > │ | (1, 0) │
00:00:26 #1351 [Verbose] > │ │
00:00:26 #1352 [Verbose] > │ Average Ranking │
00:00:26 #1353 [Verbose] > │ Test case 2. Average Time: 0L │
00:00:26 #1354 [Verbose] > │ Test case 8. Average Time: 0L │
00:00:26 #1355 [Verbose] > │ Test case 3. Average Time: 1L │
00:00:26 #1356 [Verbose] > │ Test case 4. Average Time: 1L │
00:00:26 #1357 [Verbose] > │ Test case 5. Average Time: 1L │
00:00:26 #1358 [Verbose] > │ Test case 7. Average Time: 1L │
00:00:26 #1359 [Verbose] > │ Test case 9. Average Time: 1L │
00:00:26 #1360 [Verbose] > │ Test case 1. Average Time: 2L │
00:00:26 #1361 [Verbose] > │ Test case 6. Average Time: 2L │
00:00:26 #1362 [Verbose] > │ Test case 10. Average Time: 2L │
00:00:26 #1363 [Verbose] > │ Test case 11. Average Time: 4L │
00:00:26 #1364 [Verbose] > │ │
00:00:26 #1365 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:26 #1366 [Verbose] >
00:00:26 #1367 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:26 #1368 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:26 #1369 [Verbose] > │ ## rotate_strings_tests │
00:00:26 #1370 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:26 #1371 [Verbose] >
00:00:26 #1372 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:26 #1373 [Verbose] > // // test
00:00:26 #1374 [Verbose] > // // timeout=60000
00:00:26 #1375 [Verbose] > // // print_code=true
00:00:26 #1376 [Verbose] >
00:00:26 #1377 [Verbose] > inl get_solutions () =
00:00:26 #1378 [Verbose] > [[
00:00:26 #1379 [Verbose] > // "A",
00:00:26 #1380 [Verbose] > // fun (input : string) =>
00:00:26 #1381 [Verbose] > // let resultList =
00:00:26 #1382 [Verbose] > // List.fold (fun acc x =>
00:00:26 #1383 [Verbose] > // let rotate (text : string) (letter : string) =
00:00:26 #1384 [Verbose] > text.Substring (1, input.Length - 1) + letter
00:00:26 #1385 [Verbose] > // [[ rotate (if acc.IsEmpty then input else acc.Head)
00:00:26 #1386 [Verbose] > (string x) ]] /@ acc
00:00:26 #1387 [Verbose] > // ) [[]] (Seq.toList input)
00:00:26 #1388 [Verbose] >
00:00:26 #1389 [Verbose] > // List.foldBack (fun acc x => x + acc + " ") resultList ""
00:00:26 #1390 [Verbose] > // |> fun x => x.TrimEnd ()
00:00:26 #1391 [Verbose] >
00:00:26 #1392 [Verbose] > // "B",
00:00:26 #1393 [Verbose] > // fun input =>
00:00:26 #1394 [Verbose] > // input
00:00:26 #1395 [Verbose] > // |> Seq.toList
00:00:26 #1396 [Verbose] > // |> List.fold (fun (acc : string list) letter =>
00:00:26 #1397 [Verbose] > // let last =
00:00:26 #1398 [Verbose] > // if acc.IsEmpty
00:00:26 #1399 [Verbose] > // then input
00:00:26 #1400 [Verbose] > // else acc.Head
00:00:26 #1401 [Verbose] >
00:00:26 #1402 [Verbose] > // let item = last.[[1 .. input.Length - 1]] + string letter
00:00:26 #1403 [Verbose] >
00:00:26 #1404 [Verbose] > // item :: acc
00:00:26 #1405 [Verbose] > // ) [[]]
00:00:26 #1406 [Verbose] > // |> List.rev
00:00:26 #1407 [Verbose] > // |> Sm.concat " "
00:00:26 #1408 [Verbose] >
00:00:26 #1409 [Verbose] > // "C",
00:00:26 #1410 [Verbose] > // fun input =>
00:00:26 #1411 [Verbose] > // input
00:00:26 #1412 [Verbose] > // |> Seq.toList
00:00:26 #1413 [Verbose] > // |> List.fold (fun (acc : list string) letter => acc.Head.[[ 1 ..
00:00:26 #1414 [Verbose] > input.Length - 1 ]] + string letter :: acc) [[ input ]]
00:00:26 #1415 [Verbose] > // |> List.rev
00:00:26 #1416 [Verbose] > // |> List.skip 1
00:00:26 #1417 [Verbose] > // |> Sm.concat " "
00:00:26 #1418 [Verbose] >
00:00:26 #1419 [Verbose] > // "CA",
00:00:26 #1420 [Verbose] > // fun input =>
00:00:26 #1421 [Verbose] > // input
00:00:26 #1422 [Verbose] > // |> Seq.fold (fun (acc : list string) letter => acc.Head.[[ 1 ..
00:00:26 #1423 [Verbose] > input.Length - 1 ]] + string letter :: acc) [[ input ]]
00:00:26 #1424 [Verbose] > // |> Seq.rev
00:00:26 #1425 [Verbose] > // |> Seq.skip 1
00:00:26 #1426 [Verbose] > // |> Sm.concat " "
00:00:26 #1427 [Verbose] >
00:00:26 #1428 [Verbose] > // "CB",
00:00:26 #1429 [Verbose] > // fun input =>
00:00:26 #1430 [Verbose] > // input
00:00:26 #1431 [Verbose] > // |> Seq.toArray
00:00:26 #1432 [Verbose] > // |> Array.fold (fun (acc : a _ string) letter => acc |>
00:00:26 #1433 [Verbose] > Array.append (a ;[[ acc.[[0]].[[ 1 .. input.Length - 1 ]] + string letter ]]))
00:00:26 #1434 [Verbose] > (a ;[[ input ]])
00:00:26 #1435 [Verbose] > // |> Array.rev
00:00:26 #1436 [Verbose] > // |> Array.skip 1
00:00:26 #1437 [Verbose] > // |> Sm.concat " "
00:00:26 #1438 [Verbose] >
00:00:26 #1439 [Verbose] > // "D",
00:00:26 #1440 [Verbose] > // fun input =>
00:00:26 #1441 [Verbose] > // input
00:00:26 #1442 [Verbose] > // |> Seq.toList
00:00:26 #1443 [Verbose] > // |> fun list =>
00:00:26 #1444 [Verbose] > // let rec loop (acc : list (list char)) = function
00:00:26 #1445 [Verbose] > // | _ when acc.Length = list.Length => acc
00:00:26 #1446 [Verbose] > // | head :: tail =>
00:00:26 #1447 [Verbose] > // let item = tail /@ [[ head ]]
00:00:26 #1448 [Verbose] > // loop (item :: acc) item
00:00:26 #1449 [Verbose] > // | [[]] => [[]]
00:00:26 #1450 [Verbose] > // loop [[]] list
00:00:26 #1451 [Verbose] > // |> List.rev
00:00:26 #1452 [Verbose] > // |> List.map (List.toArray >> String)
00:00:26 #1453 [Verbose] > // |> Sm.concat " "
00:00:26 #1454 [Verbose] >
00:00:26 #1455 [Verbose] > // "E",
00:00:26 #1456 [Verbose] > // fun input =>
00:00:26 #1457 [Verbose] > // input
00:00:26 #1458 [Verbose] > // |> Seq.toList
00:00:26 #1459 [Verbose] > // |> fun list =>
00:00:26 #1460 [Verbose] > // let rec loop (last : string) = function
00:00:26 #1461 [Verbose] > // | head :: tail =>
00:00:26 #1462 [Verbose] > // let item = last.[[1 .. input.Length - 1]] + string
00:00:26 #1463 [Verbose] > head
00:00:26 #1464 [Verbose] > // item :: loop item tail
00:00:26 #1465 [Verbose] > // | [[]] => [[]]
00:00:26 #1466 [Verbose] > // loop input list
00:00:26 #1467 [Verbose] > // |> Sm.concat " "
00:00:26 #1468 [Verbose] >
00:00:26 #1469 [Verbose] > "F",
00:00:26 #1470 [Verbose] > fun input =>
00:00:26 #1471 [Verbose] > // Array.singleton 0
00:00:26 #1472 [Verbose] > // |> Array.append [[| 1 .. input.Length - 1 |]]
00:00:26 #1473 [Verbose] > // |> Array.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])
00:00:26 #1474 [Verbose] > // |> Sm.concat " "
00:00:26 #1475 [Verbose] > inl input_length = input |> sm.length
00:00:26 #1476 [Verbose] > am.singleton 0i32
00:00:26 #1477 [Verbose] > |> am.append (am'.init_series 1 (input_length - 1) 1)
00:00:26 #1478 [Verbose] > |> am.map (fun i =>
00:00:26 #1479 [Verbose] > inl a = input |> sm'.slice i (input_length - 1)
00:00:26 #1480 [Verbose] > inl b = input |> sm'.slice 0 (i - 1)
00:00:26 #1481 [Verbose] > $"!a + !b" : string
00:00:26 #1482 [Verbose] > )
00:00:26 #1483 [Verbose] > |> seq.of_array
00:00:26 #1484 [Verbose] > |> sm'.concat " "
00:00:26 #1485 [Verbose] >
00:00:26 #1486 [Verbose] > "FA",
00:00:26 #1487 [Verbose] > fun input =>
00:00:26 #1488 [Verbose] > // List.singleton 0
00:00:26 #1489 [Verbose] > // |> List.append [[ 1 .. input.Length - 1 ]]
00:00:26 #1490 [Verbose] > // // |> List.map (fun i => input.[[ i .. ]] + input.[[ .. i - 1 ]])
00:00:26 #1491 [Verbose] > // |> Sm.concat " "
00:00:26 #1492 [Verbose] > inl input_length = input |> sm.length
00:00:26 #1493 [Verbose] > listm.singleton 0i32
00:00:26 #1494 [Verbose] > |> listm.append (listm'.init_series 1 (input_length - 1) 1)
00:00:26 #1495 [Verbose] > |> listm.map (fun i =>
00:00:26 #1496 [Verbose] > inl a = input |> sm'.slice i (input_length - 1)
00:00:26 #1497 [Verbose] > inl b = if i = 0 then "" else input |> sm'.slice 0 (i - 1)
00:00:26 #1498 [Verbose] > $"!a + !b" : string
00:00:26 #1499 [Verbose] > )
00:00:26 #1500 [Verbose] > |> listm.toArray
00:00:26 #1501 [Verbose] > |> fun x => x : a i32 _
00:00:26 #1502 [Verbose] > |> seq.of_array
00:00:26 #1503 [Verbose] > |> sm'.concat " "
00:00:26 #1504 [Verbose] >
00:00:26 #1505 [Verbose] > // "FB",
00:00:26 #1506 [Verbose] > // fun input =>
00:00:26 #1507 [Verbose] > // Seq.singleton 0
00:00:26 #1508 [Verbose] > // // |> Seq.append (seq { 1 .. input.Length - 1 })
00:00:26 #1509 [Verbose] > // // |> Seq.map (fun i => input.[[ i .. ]] + input.[[ .. i - 1 ]])
00:00:26 #1510 [Verbose] > // |> Sm.concat " "
00:00:26 #1511 [Verbose] >
00:00:26 #1512 [Verbose] > // "FC",
00:00:26 #1513 [Verbose] > // fun input =>
00:00:26 #1514 [Verbose] > // Array.singleton 0
00:00:26 #1515 [Verbose] > // |> Array.append (a ;[[ 1 .. input.Length - 1 ]])
00:00:26 #1516 [Verbose] > // // |> Array.Parallel.map (fun i => input.[[ i .. ]] + input.[[ ..
00:00:26 #1517 [Verbose] > i - 1 ]])
00:00:26 #1518 [Verbose] > // |> Sm.concat " "
00:00:26 #1519 [Verbose] > ]]
00:00:26 #1520 [Verbose] >
00:00:26 #1521 [Verbose] > inl rec rotate_strings_tests () =
00:00:26 #1522 [Verbose] > inl test_cases = [[
00:00:26 #1523 [Verbose] > "abc", "bca cab abc"
00:00:26 #1524 [Verbose] > "abcde", "bcdea cdeab deabc eabcd abcde"
00:00:26 #1525 [Verbose] > "abcdefghi", "bcdefghia cdefghiab defghiabc efghiabcd fghiabcde
00:00:26 #1526 [Verbose] > ghiabcdef hiabcdefg iabcdefgh abcdefghi"
00:00:26 #1527 [Verbose] > "abab", "baba abab baba abab"
00:00:26 #1528 [Verbose] > "aa", "aa aa"
00:00:26 #1529 [Verbose] > "z", "z"
00:00:26 #1530 [Verbose] > ]]
00:00:26 #1531 [Verbose] >
00:00:26 #1532 [Verbose] > inl solutions = get_solutions ()
00:00:26 #1533 [Verbose] >
00:00:26 #1534 [Verbose] > // inl is_fast () = true
00:00:26 #1535 [Verbose] >
00:00:26 #1536 [Verbose] > inl count =
00:00:26 #1537 [Verbose] > if is_fast ()
00:00:26 #1538 [Verbose] > then 1000i32
00:00:26 #1539 [Verbose] > else 2000000i32
00:00:26 #1540 [Verbose] >
00:00:26 #1541 [Verbose] > run_all (nameof rotate_strings_tests) count solutions test_cases
00:00:26 #1542 [Verbose] > |> sort_result_list
00:00:26 #1543 [Verbose] >
00:00:26 #1544 [Verbose] > rotate_strings_tests ()
00:00:51 #1545 [Verbose] >
00:00:51 #1546 [Verbose] > ╭─[ 24.60s - stdout ]──────────────────────────────────────────────────────────╮
00:00:51 #1547 [Verbose] > │ type UH0 = │
00:00:51 #1548 [Verbose] > │ | UH0_0 of string * string * UH0 │
00:00:51 #1549 [Verbose] > │ | UH0_1 │
00:00:51 #1550 [Verbose] > │ and Mut0 = {mutable l0 : uint64} │
00:00:51 #1551 [Verbose] > │ and Mut1 = {mutable l0 : int32} │
00:00:51 #1552 [Verbose] > │ and UH1 = │
00:00:51 #1553 [Verbose] > │ | UH1_0 of int32 * UH1 │
00:00:51 #1554 [Verbose] > │ | UH1_1 │
00:00:51 #1555 [Verbose] > │ and UH2 = │
00:00:51 #1556 [Verbose] > │ | UH2_0 of string * UH2 │
00:00:51 #1557 [Verbose] > │ | UH2_1 │
00:00:51 #1558 [Verbose] > │ and UH3 = │
00:00:51 #1559 [Verbose] > │ | UH3_0 of int32 * string * (string -> string) * UH3 │
00:00:51 #1560 [Verbose] > │ | UH3_1 │
00:00:51 #1561 [Verbose] > │ and [<Struct>] US0 = │
00:00:51 #1562 [Verbose] > │ | US0_0 │
00:00:51 #1563 [Verbose] > │ | US0_1 of f1_0 : System.ConsoleColor │
00:00:51 #1564 [Verbose] > │ and UH4 = │
00:00:51 #1565 [Verbose] > │ | UH4_0 of int64 * int64 * UH4 │
00:00:51 #1566 [Verbose] > │ | UH4_1 │
00:00:51 #1567 [Verbose] > │ and Mut2 = {mutable l0 : uint64; mutable l1 : UH4; mutable l2 : int64} │
00:00:51 #1568 [Verbose] > │ and UH5 = │
00:00:51 #1569 [Verbose] > │ | UH5_0 of UH2 * US0 * UH5 │
00:00:51 #1570 [Verbose] > │ | UH5_1 │
00:00:51 #1571 [Verbose] > │ and [<Struct>] US1 = │
00:00:51 #1572 [Verbose] > │ | US1_0 │
00:00:51 #1573 [Verbose] > │ | US1_1 of f1_0 : int64 │
00:00:51 #1574 [Verbose] > │ and UH6 = │
00:00:51 #1575 [Verbose] > │ | UH6_0 of int32 * int64 * UH6 │
00:00:51 #1576 [Verbose] > │ | UH6_1 │
00:00:51 #1577 [Verbose] > │ and Mut3 = {mutable l0 : uint64; mutable l1 : UH6; mutable l2 : int32} │
00:00:51 #1578 [Verbose] > │ and UH7 = │
00:00:51 #1579 [Verbose] > │ | UH7_0 of int32 * string * UH7 │
00:00:51 #1580 [Verbose] > │ | UH7_1 │
00:00:51 #1581 [Verbose] > │ let rec method2 (v0 : UH0, v1 : uint64) : uint64 = │
00:00:51 #1582 [Verbose] > │ match v0 with │
00:00:51 #1583 [Verbose] > │ | UH0_0(v2, v3, v4) -> (* Cons *) │
00:00:51 #1584 [Verbose] > │ let v5 : uint64 = v1 + 1UL │
00:00:51 #1585 [Verbose] > │ method2(v4, v5) │
00:00:51 #1586 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:00:51 #1587 [Verbose] > │ v1 │
00:00:51 #1588 [Verbose] > │ and method3 (v0 : (struct (string * string) []), v1 : UH0, v2 : uint64) : │
00:00:51 #1589 [Verbose] > │ uint64 = │
00:00:51 #1590 [Verbose] > │ match v1 with │
00:00:51 #1591 [Verbose] > │ | UH0_0(v3, v4, v5) -> (* Cons *) │
00:00:51 #1592 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:00:51 #1593 [Verbose] > │ let v6 : uint64 = v2 + 1UL │
00:00:51 #1594 [Verbose] > │ method3(v0, v5, v6) │
00:00:51 #1595 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:00:51 #1596 [Verbose] > │ v2 │
00:00:51 #1597 [Verbose] > │ and method1 (v0 : UH0) : (struct (string * string) []) = │
00:00:51 #1598 [Verbose] > │ let v1 : uint64 = 0UL │
00:00:51 #1599 [Verbose] > │ let v2 : uint64 = method2(v0, v1) │
00:00:51 #1600 [Verbose] > │ let v3 : (struct (string * string) []) = Array.zeroCreate<struct (string │
00:00:51 #1601 [Verbose] > │ * string)> (System.Convert.ToInt32(v2)) │
00:00:51 #1602 [Verbose] > │ let v4 : uint64 = 0UL │
00:00:51 #1603 [Verbose] > │ let v5 : uint64 = method3(v3, v0, v4) │
00:00:51 #1604 [Verbose] > │ v3 │
00:00:51 #1605 [Verbose] > │ and method4 (v0 : uint64, v1 : Mut0) : bool = │
00:00:51 #1606 [Verbose] > │ let v2 : uint64 = v1.l0 │
00:00:51 #1607 [Verbose] > │ let v3 : bool = v2 < v0 │
00:00:51 #1608 [Verbose] > │ v3 │
00:00:51 #1609 [Verbose] > │ and method5 (v0 : int32, v1 : Mut1) : bool = │
00:00:51 #1610 [Verbose] > │ let v2 : int32 = v1.l0 │
00:00:51 #1611 [Verbose] > │ let v3 : bool = v2 < v0 │
00:00:51 #1612 [Verbose] > │ v3 │
00:00:51 #1613 [Verbose] > │ and closure1 () (v0 : string) : string = │
00:00:51 #1614 [Verbose] > │ let v1 : int32 = v0.Length │
00:00:51 #1615 [Verbose] > │ let v2 : (int32 []) = Array.zeroCreate<int32> (1) │
00:00:51 #1616 [Verbose] > │ v2.[int 0] <- 0 │
00:00:51 #1617 [Verbose] > │ let v3 : int32 = v1 - 1 │
00:00:51 #1618 [Verbose] > │ let v4 : int32 = v3 - 1 │
00:00:51 #1619 [Verbose] > │ let v5 : int32 = v4 + 1 │
00:00:51 #1620 [Verbose] > │ let v6 : (int32 []) = Array.zeroCreate<int32> (v5) │
00:00:51 #1621 [Verbose] > │ let v7 : Mut1 = {l0 = 0} : Mut1 │
00:00:51 #1622 [Verbose] > │ while method5(v5, v7) do │
00:00:51 #1623 [Verbose] > │ let v9 : int32 = v7.l0 │
00:00:51 #1624 [Verbose] > │ let v10 : int32 = 1 + v9 │
00:00:51 #1625 [Verbose] > │ v6.[int v9] <- v10 │
00:00:51 #1626 [Verbose] > │ let v11 : int32 = v9 + 1 │
00:00:51 #1627 [Verbose] > │ v7.l0 <- v11 │
00:00:51 #1628 [Verbose] > │ () │
00:00:51 #1629 [Verbose] > │ let v12 : int32 = v6.Length │
00:00:51 #1630 [Verbose] > │ let v13 : int32 = v2.Length │
00:00:51 #1631 [Verbose] > │ let v14 : int32 = v12 + v13 │
00:00:51 #1632 [Verbose] > │ let v15 : (int32 []) = Array.zeroCreate<int32> (v14) │
00:00:51 #1633 [Verbose] > │ let v16 : Mut1 = {l0 = 0} : Mut1 │
00:00:51 #1634 [Verbose] > │ while method5(v14, v16) do │
00:00:51 #1635 [Verbose] > │ let v18 : int32 = v16.l0 │
00:00:51 #1636 [Verbose] > │ let v19 : bool = v18 < v12 │
00:00:51 #1637 [Verbose] > │ let v23 : int32 = │
00:00:51 #1638 [Verbose] > │ if v19 then │
00:00:51 #1639 [Verbose] > │ let v20 : int32 = v6.[int v18] │
00:00:51 #1640 [Verbose] > │ v20 │
00:00:51 #1641 [Verbose] > │ else │
00:00:51 #1642 [Verbose] > │ let v21 : int32 = v18 - v12 │
00:00:51 #1643 [Verbose] > │ let v22 : int32 = v2.[int v21] │
00:00:51 #1644 [Verbose] > │ v22 │
00:00:51 #1645 [Verbose] > │ v15.[int v18] <- v23 │
00:00:51 #1646 [Verbose] > │ let v24 : int32 = v18 + 1 │
00:00:51 #1647 [Verbose] > │ v16.l0 <- v24 │
00:00:51 #1648 [Verbose] > │ () │
00:00:51 #1649 [Verbose] > │ let v25 : int32 = v15.Length │
00:00:51 #1650 [Verbose] > │ let v26 : (string []) = Array.zeroCreate<string> (v25) │
00:00:51 #1651 [Verbose] > │ let v27 : Mut1 = {l0 = 0} : Mut1 │
00:00:51 #1652 [Verbose] > │ while method5(v25, v27) do │
00:00:51 #1653 [Verbose] > │ let v29 : int32 = v27.l0 │
00:00:51 #1654 [Verbose] > │ let v30 : int32 = v15.[int v29] │
00:00:51 #1655 [Verbose] > │ let v31 : string = v0.[int v30..int v3] │
00:00:51 #1656 [Verbose] > │ let v32 : int32 = v30 - 1 │
00:00:51 #1657 [Verbose] > │ let v33 : string = v0.[int 0..int v32] │
00:00:51 #1658 [Verbose] > │ let v34 : string = v31 + v33 │
00:00:51 #1659 [Verbose] > │ v26.[int v29] <- v34 │
00:00:51 #1660 [Verbose] > │ let v35 : int32 = v29 + 1 │
00:00:51 #1661 [Verbose] > │ v27.l0 <- v35 │
00:00:51 #1662 [Verbose] > │ () │
00:00:51 #1663 [Verbose] > │ let v36 : ((string []) -> string seq) = Seq.ofArray │
00:00:51 #1664 [Verbose] > │ let v37 : string seq = v36 v26 │
00:00:51 #1665 [Verbose] > │ let v38 : string = " " │
00:00:51 #1666 [Verbose] > │ let v39 : string = v37 |> String.concat v38 │
00:00:51 #1667 [Verbose] > │ v39 │
00:00:51 #1668 [Verbose] > │ and method6 (v0 : float, v1 : float) : UH1 = │
00:00:51 #1669 [Verbose] > │ let v2 : bool = v1 < v0 │
00:00:51 #1670 [Verbose] > │ if v2 then │
00:00:51 #1671 [Verbose] > │ let v3 : int32 = int32 v1 │
00:00:51 #1672 [Verbose] > │ let v4 : int32 = 1 + v3 │
00:00:51 #1673 [Verbose] > │ let v5 : float = v1 + 1.0 │
00:00:51 #1674 [Verbose] > │ let v6 : UH1 = method6(v0, v5) │
00:00:51 #1675 [Verbose] > │ UH1_0(v4, v6) │
00:00:51 #1676 [Verbose] > │ else │
00:00:51 #1677 [Verbose] > │ UH1_1 │
00:00:51 #1678 [Verbose] > │ and method7 (v0 : UH1, v1 : UH1) : UH1 = │
00:00:51 #1679 [Verbose] > │ match v0 with │
00:00:51 #1680 [Verbose] > │ | UH1_0(v2, v3) -> (* Cons *) │
00:00:51 #1681 [Verbose] > │ let v4 : UH1 = method7(v3, v1) │
00:00:51 #1682 [Verbose] > │ UH1_0(v2, v4) │
00:00:51 #1683 [Verbose] > │ | UH1_1 -> (* Nil *) │
00:00:51 #1684 [Verbose] > │ v1 │
00:00:51 #1685 [Verbose] > │ and method8 (v0 : string, v1 : int32, v2 : UH1, v3 : UH2) : UH2 = │
00:00:51 #1686 [Verbose] > │ match v2 with │
00:00:51 #1687 [Verbose] > │ | UH1_0(v4, v5) -> (* Cons *) │
00:00:51 #1688 [Verbose] > │ let v6 : UH2 = method8(v0, v1, v5, v3) │
00:00:51 #1689 [Verbose] > │ let v7 : int32 = v1 - 1 │
00:00:51 #1690 [Verbose] > │ let v8 : string = v0.[int v4..int v7] │
00:00:51 #1691 [Verbose] > │ let v9 : bool = v4 = 0 │
00:00:51 #1692 [Verbose] > │ let v13 : string = │
00:00:51 #1693 [Verbose] > │ if v9 then │
00:00:51 #1694 [Verbose] > │ let v10 : string = "" │
00:00:51 #1695 [Verbose] > │ v10 │
00:00:51 #1696 [Verbose] > │ else │
00:00:51 #1697 [Verbose] > │ let v11 : int32 = v4 - 1 │
00:00:51 #1698 [Verbose] > │ let v12 : string = v0.[int 0..int v11] │
00:00:51 #1699 [Verbose] > │ v12 │
00:00:51 #1700 [Verbose] > │ let v14 : string = v8 + v13 │
00:00:51 #1701 [Verbose] > │ UH2_0(v14, v6) │
00:00:51 #1702 [Verbose] > │ | UH1_1 -> (* Nil *) │
00:00:51 #1703 [Verbose] > │ v3 │
00:00:51 #1704 [Verbose] > │ and method10 (v0 : UH2, v1 : int32) : int32 = │
00:00:51 #1705 [Verbose] > │ match v0 with │
00:00:51 #1706 [Verbose] > │ | UH2_0(v2, v3) -> (* Cons *) │
00:00:51 #1707 [Verbose] > │ let v4 : int32 = v1 + 1 │
00:00:51 #1708 [Verbose] > │ method10(v3, v4) │
00:00:51 #1709 [Verbose] > │ | UH2_1 -> (* Nil *) │
00:00:51 #1710 [Verbose] > │ v1 │
00:00:51 #1711 [Verbose] > │ and method11 (v0 : (string []), v1 : UH2, v2 : int32) : int32 = │
00:00:51 #1712 [Verbose] > │ match v1 with │
00:00:51 #1713 [Verbose] > │ | UH2_0(v3, v4) -> (* Cons *) │
00:00:51 #1714 [Verbose] > │ v0.[int v2] <- v3 │
00:00:51 #1715 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:00:51 #1716 [Verbose] > │ method11(v0, v4, v5) │
00:00:51 #1717 [Verbose] > │ | UH2_1 -> (* Nil *) │
00:00:51 #1718 [Verbose] > │ v2 │
00:00:51 #1719 [Verbose] > │ and method9 (v0 : UH2) : (string []) = │
00:00:51 #1720 [Verbose] > │ let v1 : int32 = 0 │
00:00:51 #1721 [Verbose] > │ let v2 : int32 = method10(v0, v1) │
00:00:51 #1722 [Verbose] > │ let v3 : (string []) = Array.zeroCreate<string> (v2) │
00:00:51 #1723 [Verbose] > │ let v4 : int32 = 0 │
00:00:51 #1724 [Verbose] > │ let v5 : int32 = method11(v3, v0, v4) │
00:00:51 #1725 [Verbose] > │ v3 │
00:00:51 #1726 [Verbose] > │ and closure2 () (v0 : string) : string = │
00:00:51 #1727 [Verbose] > │ let v1 : int32 = v0.Length │
00:00:51 #1728 [Verbose] > │ let v2 : int32 = v1 - 1 │
00:00:51 #1729 [Verbose] > │ let v3 : int32 = v2 - 1 │
00:00:51 #1730 [Verbose] > │ let v4 : float = float v3 │
00:00:51 #1731 [Verbose] > │ let v5 : float = v4 + 1.0 │
00:00:51 #1732 [Verbose] > │ let v6 : float = 0.0 │
00:00:51 #1733 [Verbose] > │ let v7 : UH1 = method6(v5, v6) │
00:00:51 #1734 [Verbose] > │ let v8 : int32 = 0 │
00:00:51 #1735 [Verbose] > │ let v9 : UH1 = UH1_1 │
00:00:51 #1736 [Verbose] > │ let v10 : UH1 = UH1_0(v8, v9) │
00:00:51 #1737 [Verbose] > │ let v11 : UH1 = method7(v7, v10) │
00:00:51 #1738 [Verbose] > │ let v12 : UH2 = UH2_1 │
00:00:51 #1739 [Verbose] > │ let v13 : UH2 = method8(v0, v1, v11, v12) │
00:00:51 #1740 [Verbose] > │ let v14 : (string []) = method9(v13) │
00:00:51 #1741 [Verbose] > │ let v15 : ((string []) -> string seq) = Seq.ofArray │
00:00:51 #1742 [Verbose] > │ let v16 : string seq = v15 v14 │
00:00:51 #1743 [Verbose] > │ let v17 : string = " " │
00:00:51 #1744 [Verbose] > │ let v18 : string = v16 |> String.concat v17 │
00:00:51 #1745 [Verbose] > │ v18 │
00:00:51 #1746 [Verbose] > │ and method13 (v0 : UH3, v1 : uint64) : uint64 = │
00:00:51 #1747 [Verbose] > │ match v0 with │
00:00:51 #1748 [Verbose] > │ | UH3_0(v2, v3, v4, v5) -> (* Cons *) │
00:00:51 #1749 [Verbose] > │ let v6 : uint64 = v1 + 1UL │
00:00:51 #1750 [Verbose] > │ method13(v5, v6) │
00:00:51 #1751 [Verbose] > │ | UH3_1 -> (* Nil *) │
00:00:51 #1752 [Verbose] > │ v1 │
00:00:51 #1753 [Verbose] > │ and method14 (v0 : (struct (int32 * string * (string -> string)) []), v1 : │
00:00:51 #1754 [Verbose] > │ UH3, v2 : uint64) : uint64 = │
00:00:51 #1755 [Verbose] > │ match v1 with │
00:00:51 #1756 [Verbose] > │ | UH3_0(v3, v4, v5, v6) -> (* Cons *) │
00:00:51 #1757 [Verbose] > │ v0.[int v2] <- struct (v3, v4, v5) │
00:00:51 #1758 [Verbose] > │ let v7 : uint64 = v2 + 1UL │
00:00:51 #1759 [Verbose] > │ method14(v0, v6, v7) │
00:00:51 #1760 [Verbose] > │ | UH3_1 -> (* Nil *) │
00:00:51 #1761 [Verbose] > │ v2 │
00:00:51 #1762 [Verbose] > │ and method12 (v0 : UH3) : (struct (int32 * string * (string -> string)) []) │
00:00:51 #1763 [Verbose] > │ = │
00:00:51 #1764 [Verbose] > │ let v1 : uint64 = 0UL │
00:00:51 #1765 [Verbose] > │ let v2 : uint64 = method13(v0, v1) │
00:00:51 #1766 [Verbose] > │ let v3 : (struct (int32 * string * (string -> string)) []) = │
00:00:51 #1767 [Verbose] > │ Array.zeroCreate<struct (int32 * string * (string -> string))> │
00:00:51 #1768 [Verbose] > │ (System.Convert.ToInt32(v2)) │
00:00:51 #1769 [Verbose] > │ let v4 : uint64 = 0UL │
00:00:51 #1770 [Verbose] > │ let v5 : uint64 = method14(v3, v0, v4) │
00:00:51 #1771 [Verbose] > │ v3 │
00:00:51 #1772 [Verbose] > │ and method15 (v0 : Mut1) : bool = │
00:00:51 #1773 [Verbose] > │ let v1 : int32 = v0.l0 │
00:00:51 #1774 [Verbose] > │ let v2 : bool = v1 < 2000001 │
00:00:51 #1775 [Verbose] > │ v2 │
00:00:51 #1776 [Verbose] > │ and closure3 (v0 : string, v1 : (string -> string)) (v2 : int32) : string = │
00:00:51 #1777 [Verbose] > │ v1 v0 │
00:00:51 #1778 [Verbose] > │ and method16 (v0 : string, v1 : (string []), v2 : uint64) : bool = │
00:00:51 #1779 [Verbose] > │ let v3 : uint64 = System.Convert.ToUInt64 v1.Length │
00:00:51 #1780 [Verbose] > │ let v4 : bool = v2 < v3 │
00:00:51 #1781 [Verbose] > │ if v4 then │
00:00:51 #1782 [Verbose] > │ let v5 : string = v1.[int v2] │
00:00:51 #1783 [Verbose] > │ let v6 : bool = v0 = v5 │
00:00:51 #1784 [Verbose] > │ if v6 then │
00:00:51 #1785 [Verbose] > │ let v7 : uint64 = v2 + 1UL │
00:00:51 #1786 [Verbose] > │ method16(v0, v1, v7) │
00:00:51 #1787 [Verbose] > │ else │
00:00:51 #1788 [Verbose] > │ false │
00:00:51 #1789 [Verbose] > │ else │
00:00:51 #1790 [Verbose] > │ true │
00:00:51 #1791 [Verbose] > │ and method17 (v0 : uint64, v1 : Mut2) : bool = │
00:00:51 #1792 [Verbose] > │ let v2 : uint64 = v1.l0 │
00:00:51 #1793 [Verbose] > │ let v3 : bool = v2 < v0 │
00:00:51 #1794 [Verbose] > │ v3 │
00:00:51 #1795 [Verbose] > │ and method18 (v0 : UH4, v1 : UH4) : UH4 = │
00:00:51 #1796 [Verbose] > │ match v0 with │
00:00:51 #1797 [Verbose] > │ | UH4_0(v2, v3, v4) -> (* Cons *) │
00:00:51 #1798 [Verbose] > │ let v5 : UH4 = UH4_0(v2, v3, v1) │
00:00:51 #1799 [Verbose] > │ method18(v4, v5) │
00:00:51 #1800 [Verbose] > │ | UH4_1 -> (* Nil *) │
00:00:51 #1801 [Verbose] > │ v1 │
00:00:51 #1802 [Verbose] > │ and method20 (v0 : UH4, v1 : int32) : int32 = │
00:00:51 #1803 [Verbose] > │ match v0 with │
00:00:51 #1804 [Verbose] > │ | UH4_0(v2, v3, v4) -> (* Cons *) │
00:00:51 #1805 [Verbose] > │ let v5 : int32 = v1 + 1 │
00:00:51 #1806 [Verbose] > │ method20(v4, v5) │
00:00:51 #1807 [Verbose] > │ | UH4_1 -> (* Nil *) │
00:00:51 #1808 [Verbose] > │ v1 │
00:00:51 #1809 [Verbose] > │ and method21 (v0 : (struct (int64 * int64) []), v1 : UH4, v2 : int32) : │
00:00:51 #1810 [Verbose] > │ int32 = │
00:00:51 #1811 [Verbose] > │ match v1 with │
00:00:51 #1812 [Verbose] > │ | UH4_0(v3, v4, v5) -> (* Cons *) │
00:00:51 #1813 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:00:51 #1814 [Verbose] > │ let v6 : int32 = v2 + 1 │
00:00:51 #1815 [Verbose] > │ method21(v0, v5, v6) │
00:00:51 #1816 [Verbose] > │ | UH4_1 -> (* Nil *) │
00:00:51 #1817 [Verbose] > │ v2 │
00:00:51 #1818 [Verbose] > │ and method19 (v0 : UH4) : (struct (int64 * int64) []) = │
00:00:51 #1819 [Verbose] > │ let v1 : int32 = 0 │
00:00:51 #1820 [Verbose] > │ let v2 : int32 = method20(v0, v1) │
00:00:51 #1821 [Verbose] > │ let v3 : (struct (int64 * int64) []) = Array.zeroCreate<struct (int64 * │
00:00:51 #1822 [Verbose] > │ int64)> (v2) │
00:00:51 #1823 [Verbose] > │ let v4 : int32 = 0 │
00:00:51 #1824 [Verbose] > │ let v5 : int32 = method21(v3, v0, v4) │
00:00:51 #1825 [Verbose] > │ v3 │
00:00:51 #1826 [Verbose] > │ and closure4 () struct (v0 : int64, v1 : int64) : int64 = │
00:00:51 #1827 [Verbose] > │ v1 │
00:00:51 #1828 [Verbose] > │ and method23 (v0 : UH5, v1 : uint64) : uint64 = │
00:00:51 #1829 [Verbose] > │ match v0 with │
00:00:51 #1830 [Verbose] > │ | UH5_0(v2, v3, v4) -> (* Cons *) │
00:00:51 #1831 [Verbose] > │ let v5 : uint64 = v1 + 1UL │
00:00:51 #1832 [Verbose] > │ method23(v4, v5) │
00:00:51 #1833 [Verbose] > │ | UH5_1 -> (* Nil *) │
00:00:51 #1834 [Verbose] > │ v1 │
00:00:51 #1835 [Verbose] > │ and method24 (v0 : (struct (UH2 * US0) []), v1 : UH5, v2 : uint64) : uint64 │
00:00:51 #1836 [Verbose] > │ = │
00:00:51 #1837 [Verbose] > │ match v1 with │
00:00:51 #1838 [Verbose] > │ | UH5_0(v3, v4, v5) -> (* Cons *) │
00:00:51 #1839 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:00:51 #1840 [Verbose] > │ let v6 : uint64 = v2 + 1UL │
00:00:51 #1841 [Verbose] > │ method24(v0, v5, v6) │
00:00:51 #1842 [Verbose] > │ | UH5_1 -> (* Nil *) │
00:00:51 #1843 [Verbose] > │ v2 │
00:00:51 #1844 [Verbose] > │ and method22 (v0 : UH5) : (struct (UH2 * US0) []) = │
00:00:51 #1845 [Verbose] > │ let v1 : uint64 = 0UL │
00:00:51 #1846 [Verbose] > │ let v2 : uint64 = method23(v0, v1) │
00:00:51 #1847 [Verbose] > │ let v3 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * US0)> │
00:00:51 #1848 [Verbose] > │ (System.Convert.ToInt32(v2)) │
00:00:51 #1849 [Verbose] > │ let v4 : uint64 = 0UL │
00:00:51 #1850 [Verbose] > │ let v5 : uint64 = method24(v3, v0, v4) │
00:00:51 #1851 [Verbose] > │ v3 │
00:00:51 #1852 [Verbose] > │ and method26 (v0 : UH2, v1 : uint64) : uint64 = │
00:00:51 #1853 [Verbose] > │ match v0 with │
00:00:51 #1854 [Verbose] > │ | UH2_0(v2, v3) -> (* Cons *) │
00:00:51 #1855 [Verbose] > │ let v4 : uint64 = v1 + 1UL │
00:00:51 #1856 [Verbose] > │ method26(v3, v4) │
00:00:51 #1857 [Verbose] > │ | UH2_1 -> (* Nil *) │
00:00:51 #1858 [Verbose] > │ v1 │
00:00:51 #1859 [Verbose] > │ and method27 (v0 : (string []), v1 : UH2, v2 : uint64) : uint64 = │
00:00:51 #1860 [Verbose] > │ match v1 with │
00:00:51 #1861 [Verbose] > │ | UH2_0(v3, v4) -> (* Cons *) │
00:00:51 #1862 [Verbose] > │ v0.[int v2] <- v3 │
00:00:51 #1863 [Verbose] > │ let v5 : uint64 = v2 + 1UL │
00:00:51 #1864 [Verbose] > │ method27(v0, v4, v5) │
00:00:51 #1865 [Verbose] > │ | UH2_1 -> (* Nil *) │
00:00:51 #1866 [Verbose] > │ v2 │
00:00:51 #1867 [Verbose] > │ and method25 (v0 : UH2) : (string []) = │
00:00:51 #1868 [Verbose] > │ let v1 : uint64 = 0UL │
00:00:51 #1869 [Verbose] > │ let v2 : uint64 = method26(v0, v1) │
00:00:51 #1870 [Verbose] > │ let v3 : (string []) = Array.zeroCreate<string> │
00:00:51 #1871 [Verbose] > │ (System.Convert.ToInt32(v2)) │
00:00:51 #1872 [Verbose] > │ let v4 : uint64 = 0UL │
00:00:51 #1873 [Verbose] > │ let v5 : uint64 = method27(v3, v0, v4) │
00:00:51 #1874 [Verbose] > │ v3 │
00:00:51 #1875 [Verbose] > │ and closure5 () (v0 : int64) : US1 = │
00:00:51 #1876 [Verbose] > │ US1_1(v0) │
00:00:51 #1877 [Verbose] > │ and method28 (v0 : uint64, v1 : Mut3) : bool = │
00:00:51 #1878 [Verbose] > │ let v2 : uint64 = v1.l0 │
00:00:51 #1879 [Verbose] > │ let v3 : bool = v2 < v0 │
00:00:51 #1880 [Verbose] > │ v3 │
00:00:51 #1881 [Verbose] > │ and method29 (v0 : UH6, v1 : UH6) : UH6 = │
00:00:51 #1882 [Verbose] > │ match v0 with │
00:00:51 #1883 [Verbose] > │ | UH6_0(v2, v3, v4) -> (* Cons *) │
00:00:51 #1884 [Verbose] > │ let v5 : UH6 = UH6_0(v2, v3, v1) │
00:00:51 #1885 [Verbose] > │ method29(v4, v5) │
00:00:51 #1886 [Verbose] > │ | UH6_1 -> (* Nil *) │
00:00:51 #1887 [Verbose] > │ v1 │
00:00:51 #1888 [Verbose] > │ and method31 (v0 : UH6, v1 : int32) : int32 = │
00:00:51 #1889 [Verbose] > │ match v0 with │
00:00:51 #1890 [Verbose] > │ | UH6_0(v2, v3, v4) -> (* Cons *) │
00:00:51 #1891 [Verbose] > │ let v5 : int32 = v1 + 1 │
00:00:51 #1892 [Verbose] > │ method31(v4, v5) │
00:00:51 #1893 [Verbose] > │ | UH6_1 -> (* Nil *) │
00:00:51 #1894 [Verbose] > │ v1 │
00:00:51 #1895 [Verbose] > │ and method32 (v0 : (struct (int32 * int64) []), v1 : UH6, v2 : int32) : │
00:00:51 #1896 [Verbose] > │ int32 = │
00:00:51 #1897 [Verbose] > │ match v1 with │
00:00:51 #1898 [Verbose] > │ | UH6_0(v3, v4, v5) -> (* Cons *) │
00:00:51 #1899 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:00:51 #1900 [Verbose] > │ let v6 : int32 = v2 + 1 │
00:00:51 #1901 [Verbose] > │ method32(v0, v5, v6) │
00:00:51 #1902 [Verbose] > │ | UH6_1 -> (* Nil *) │
00:00:51 #1903 [Verbose] > │ v2 │
00:00:51 #1904 [Verbose] > │ and method30 (v0 : UH6) : (struct (int32 * int64) []) = │
00:00:51 #1905 [Verbose] > │ let v1 : int32 = 0 │
00:00:51 #1906 [Verbose] > │ let v2 : int32 = method31(v0, v1) │
00:00:51 #1907 [Verbose] > │ let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 * │
00:00:51 #1908 [Verbose] > │ int64)> (v2) │
00:00:51 #1909 [Verbose] > │ let v4 : int32 = 0 │
00:00:51 #1910 [Verbose] > │ let v5 : int32 = method32(v3, v0, v4) │
00:00:51 #1911 [Verbose] > │ v3 │
00:00:51 #1912 [Verbose] > │ and method33 (v0 : UH2, v1 : UH7, v2 : int32) : struct (UH7 * int32) = │
00:00:51 #1913 [Verbose] > │ match v0 with │
00:00:51 #1914 [Verbose] > │ | UH2_0(v3, v4) -> (* Cons *) │
00:00:51 #1915 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:00:51 #1916 [Verbose] > │ let v6 : UH7 = UH7_0(v2, v3, v1) │
00:00:51 #1917 [Verbose] > │ method33(v4, v6, v5) │
00:00:51 #1918 [Verbose] > │ | UH2_1 -> (* Nil *) │
00:00:51 #1919 [Verbose] > │ struct (v1, v2) │
00:00:51 #1920 [Verbose] > │ and method34 (v0 : UH7, v1 : UH7) : UH7 = │
00:00:51 #1921 [Verbose] > │ match v0 with │
00:00:51 #1922 [Verbose] > │ | UH7_0(v2, v3, v4) -> (* Cons *) │
00:00:51 #1923 [Verbose] > │ let v5 : UH7 = UH7_0(v2, v3, v1) │
00:00:51 #1924 [Verbose] > │ method34(v4, v5) │
00:00:51 #1925 [Verbose] > │ | UH7_1 -> (* Nil *) │
00:00:51 #1926 [Verbose] > │ v1 │
00:00:51 #1927 [Verbose] > │ and method35 (v0 : Map<int32, int64>, v1 : UH7, v2 : UH2) : UH2 = │
00:00:51 #1928 [Verbose] > │ match v1 with │
00:00:51 #1929 [Verbose] > │ | UH7_0(v3, v4, v5) -> (* Cons *) │
00:00:51 #1930 [Verbose] > │ let v6 : UH2 = method35(v0, v5, v2) │
00:00:51 #1931 [Verbose] > │ let v7 : int64 = v0.[v3] │
00:00:51 #1932 [Verbose] > │ let v8 : int32 = int32 v7 │
00:00:51 #1933 [Verbose] > │ let v9 : string = v4.PadRight v8 │
00:00:51 #1934 [Verbose] > │ UH2_0(v9, v6) │
00:00:51 #1935 [Verbose] > │ | UH7_1 -> (* Nil *) │
00:00:51 #1936 [Verbose] > │ v2 │
00:00:51 #1937 [Verbose] > │ and method37 (v0 : UH6, v1 : uint64) : uint64 = │
00:00:51 #1938 [Verbose] > │ match v0 with │
00:00:51 #1939 [Verbose] > │ | UH6_0(v2, v3, v4) -> (* Cons *) │
00:00:51 #1940 [Verbose] > │ let v5 : uint64 = v1 + 1UL │
00:00:51 #1941 [Verbose] > │ method37(v4, v5) │
00:00:51 #1942 [Verbose] > │ | UH6_1 -> (* Nil *) │
00:00:51 #1943 [Verbose] > │ v1 │
00:00:51 #1944 [Verbose] > │ and method38 (v0 : (struct (int32 * int64) []), v1 : UH6, v2 : uint64) : │
00:00:51 #1945 [Verbose] > │ uint64 = │
00:00:51 #1946 [Verbose] > │ match v1 with │
00:00:51 #1947 [Verbose] > │ | UH6_0(v3, v4, v5) -> (* Cons *) │
00:00:51 #1948 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:00:51 #1949 [Verbose] > │ let v6 : uint64 = v2 + 1UL │
00:00:51 #1950 [Verbose] > │ method38(v0, v5, v6) │
00:00:51 #1951 [Verbose] > │ | UH6_1 -> (* Nil *) │
00:00:51 #1952 [Verbose] > │ v2 │
00:00:51 #1953 [Verbose] > │ and method36 (v0 : UH6) : (struct (int32 * int64) []) = │
00:00:51 #1954 [Verbose] > │ let v1 : uint64 = 0UL │
00:00:51 #1955 [Verbose] > │ let v2 : uint64 = method37(v0, v1) │
00:00:51 #1956 [Verbose] > │ let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 * │
00:00:51 #1957 [Verbose] > │ int64)> (System.Convert.ToInt32(v2)) │
00:00:51 #1958 [Verbose] > │ let v4 : uint64 = 0UL │
00:00:51 #1959 [Verbose] > │ let v5 : uint64 = method38(v3, v0, v4) │
00:00:51 #1960 [Verbose] > │ v3 │
00:00:51 #1961 [Verbose] > │ and closure6 () struct (v0 : int32, v1 : int64) : int64 = │
00:00:51 #1962 [Verbose] > │ v1 │
00:00:51 #1963 [Verbose] > │ and closure0 () () : unit = │
00:00:51 #1964 [Verbose] > │ let v0 : (unit -> unit) = closure0() │
00:00:51 #1965 [Verbose] > │ let v1 : string = nameof v0 │
00:00:51 #1966 [Verbose] > │ let v2 : string = "" │
00:00:51 #1967 [Verbose] > │ System.Console.WriteLine v2 │
00:00:51 #1968 [Verbose] > │ System.Console.WriteLine v2 │
00:00:51 #1969 [Verbose] > │ let v3 : string = $"Test: {v1}" │
00:00:51 #1970 [Verbose] > │ System.Console.WriteLine v3 │
00:00:51 #1971 [Verbose] > │ let v4 : string = "abc" │
00:00:51 #1972 [Verbose] > │ let v5 : string = "bca cab abc" │
00:00:51 #1973 [Verbose] > │ let v6 : string = "abcde" │
00:00:51 #1974 [Verbose] > │ let v7 : string = "bcdea cdeab deabc eabcd abcde" │
00:00:51 #1975 [Verbose] > │ let v8 : string = "abcdefghi" │
00:00:51 #1976 [Verbose] > │ let v9 : string = "bcdefghia cdefghiab defghiabc efghiabcd fghiabcde │
00:00:51 #1977 [Verbose] > │ ghiabcdef hiabcdefg iabcdefgh abcdefghi" │
00:00:51 #1978 [Verbose] > │ let v10 : string = "abab" │
00:00:51 #1979 [Verbose] > │ let v11 : string = "baba abab baba abab" │
00:00:51 #1980 [Verbose] > │ let v12 : string = "aa" │
00:00:51 #1981 [Verbose] > │ let v13 : string = "aa aa" │
00:00:51 #1982 [Verbose] > │ let v14 : string = "z" │
00:00:51 #1983 [Verbose] > │ let v15 : UH0 = UH0_1 │
00:00:51 #1984 [Verbose] > │ let v16 : UH0 = UH0_0(v14, v14, v15) │
00:00:51 #1985 [Verbose] > │ let v17 : UH0 = UH0_0(v12, v13, v16) │
00:00:51 #1986 [Verbose] > │ let v18 : UH0 = UH0_0(v10, v11, v17) │
00:00:51 #1987 [Verbose] > │ let v19 : UH0 = UH0_0(v8, v9, v18) │
00:00:51 #1988 [Verbose] > │ let v20 : UH0 = UH0_0(v6, v7, v19) │
00:00:51 #1989 [Verbose] > │ let v21 : UH0 = UH0_0(v4, v5, v20) │
00:00:51 #1990 [Verbose] > │ let v22 : (struct (string * string) []) = method1(v21) │
00:00:51 #1991 [Verbose] > │ let v23 : uint64 = System.Convert.ToUInt64 v22.Length │
00:00:51 #1992 [Verbose] > │ let v24 : (struct (string * string * string * (int64 [])) []) = │
00:00:51 #1993 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))> │
00:00:51 #1994 [Verbose] > │ (System.Convert.ToInt32(v23)) │
00:00:51 #1995 [Verbose] > │ let v25 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #1996 [Verbose] > │ while method4(v23, v25) do │
00:00:51 #1997 [Verbose] > │ let v27 : uint64 = v25.l0 │
00:00:51 #1998 [Verbose] > │ let struct (v28 : string, v29 : string) = v22.[int v27] │
00:00:51 #1999 [Verbose] > │ let v30 : string = $"%A{v28}" │
00:00:51 #2000 [Verbose] > │ System.Console.WriteLine v2 │
00:00:51 #2001 [Verbose] > │ let v31 : string = $"Solution: {v30} " │
00:00:51 #2002 [Verbose] > │ System.Console.WriteLine v31 │
00:00:51 #2003 [Verbose] > │ let v32 : int32 = 0 │
00:00:51 #2004 [Verbose] > │ let v33 : string = "F" │
00:00:51 #2005 [Verbose] > │ let v34 : (string -> string) = closure1() │
00:00:51 #2006 [Verbose] > │ let v35 : int32 = 1 │
00:00:51 #2007 [Verbose] > │ let v36 : string = "FA" │
00:00:51 #2008 [Verbose] > │ let v37 : (string -> string) = closure2() │
00:00:51 #2009 [Verbose] > │ let v38 : UH3 = UH3_1 │
00:00:51 #2010 [Verbose] > │ let v39 : UH3 = UH3_0(v35, v36, v37, v38) │
00:00:51 #2011 [Verbose] > │ let v40 : UH3 = UH3_0(v32, v33, v34, v39) │
00:00:51 #2012 [Verbose] > │ let v41 : (struct (int32 * string * (string -> string)) []) = │
00:00:51 #2013 [Verbose] > │ method12(v40) │
00:00:51 #2014 [Verbose] > │ let v42 : uint64 = System.Convert.ToUInt64 v41.Length │
00:00:51 #2015 [Verbose] > │ let v43 : (struct (string * int64) []) = Array.zeroCreate<struct │
00:00:51 #2016 [Verbose] > │ (string * int64)> (System.Convert.ToInt32(v42)) │
00:00:51 #2017 [Verbose] > │ let v44 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2018 [Verbose] > │ while method4(v42, v44) do │
00:00:51 #2019 [Verbose] > │ let v46 : uint64 = v44.l0 │
00:00:51 #2020 [Verbose] > │ let struct (v47 : int32, v48 : string, v49 : (string -> string)) │
00:00:51 #2021 [Verbose] > │ = v41.[int v46] │
00:00:51 #2022 [Verbose] > │ let mutable result = None │
00:00:51 #2023 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:00:51 #2024 [Verbose] > │ () │
00:00:51 #2025 [Verbose] > │ #endif │
00:00:51 #2026 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:00:51 #2027 [Verbose] > │ () │
00:00:51 #2028 [Verbose] > │ #endif │
00:00:51 #2029 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:51 #2030 [Verbose] > │ System.GC.Collect () │
00:00:51 #2031 [Verbose] > │ () │
00:00:51 #2032 [Verbose] > │ #endif │
00:00:51 #2033 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:51 #2034 [Verbose] > │ System.GC.Collect () │
00:00:51 #2035 [Verbose] > │ () │
00:00:51 #2036 [Verbose] > │ #endif │
00:00:51 #2037 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:00:51 #2038 [Verbose] > │ System.GC.Collect () │
00:00:51 #2039 [Verbose] > │ () │
00:00:51 #2040 [Verbose] > │ #endif │
00:00:51 #2041 [Verbose] > │ |> fun x -> result <- Some x │
00:00:51 #2042 [Verbose] > │ result |> Option.get │
00:00:51 #2043 [Verbose] > │ let v50 : (unit -> System.Diagnostics.Stopwatch) = │
00:00:51 #2044 [Verbose] > │ System.Diagnostics.Stopwatch │
00:00:51 #2045 [Verbose] > │ let v51 : System.Diagnostics.Stopwatch = v50 () │
00:00:51 #2046 [Verbose] > │ v51.Start () │
00:00:51 #2047 [Verbose] > │ let v52 : int64 = v51.ElapsedMilliseconds │
00:00:51 #2048 [Verbose] > │ let v53 : (int32 []) = Array.zeroCreate<int32> (2000001) │
00:00:51 #2049 [Verbose] > │ let v54 : Mut1 = {l0 = 0} : Mut1 │
00:00:51 #2050 [Verbose] > │ while method15(v54) do │
00:00:51 #2051 [Verbose] > │ let v56 : int32 = v54.l0 │
00:00:51 #2052 [Verbose] > │ v53.[int v56] <- v56 │
00:00:51 #2053 [Verbose] > │ let v57 : int32 = v56 + 1 │
00:00:51 #2054 [Verbose] > │ v54.l0 <- v57 │
00:00:51 #2055 [Verbose] > │ () │
00:00:51 #2056 [Verbose] > │ let v58 : (int32 -> string) = closure3(v28, v49) │
00:00:51 #2057 [Verbose] > │ let v59 : (string []) = v53 |> Array.Parallel.map v58 │
00:00:51 #2058 [Verbose] > │ let v60 : int32 = v59.Length │
00:00:51 #2059 [Verbose] > │ let v61 : int32 = v60 - 1 │
00:00:51 #2060 [Verbose] > │ let v62 : string = v59.[int v61] │
00:00:51 #2061 [Verbose] > │ let v63 : int64 = v51.ElapsedMilliseconds │
00:00:51 #2062 [Verbose] > │ let v64 : int64 = v63 - v52 │
00:00:51 #2063 [Verbose] > │ let v65 : string = $"Test case {v47 + 1}. {v48}. Time: {v64} " │
00:00:51 #2064 [Verbose] > │ System.Console.WriteLine v65 │
00:00:51 #2065 [Verbose] > │ v43.[int v46] <- struct (v62, v64) │
00:00:51 #2066 [Verbose] > │ let v66 : uint64 = v46 + 1UL │
00:00:51 #2067 [Verbose] > │ v44.l0 <- v66 │
00:00:51 #2068 [Verbose] > │ () │
00:00:51 #2069 [Verbose] > │ let v67 : uint64 = System.Convert.ToUInt64 v43.Length │
00:00:51 #2070 [Verbose] > │ let v68 : (string []) = Array.zeroCreate<string> │
00:00:51 #2071 [Verbose] > │ (System.Convert.ToInt32(v67)) │
00:00:51 #2072 [Verbose] > │ let v69 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2073 [Verbose] > │ while method4(v67, v69) do │
00:00:51 #2074 [Verbose] > │ let v71 : uint64 = v69.l0 │
00:00:51 #2075 [Verbose] > │ let struct (v72 : string, v73 : int64) = v43.[int v71] │
00:00:51 #2076 [Verbose] > │ v68.[int v71] <- v72 │
00:00:51 #2077 [Verbose] > │ let v74 : uint64 = v71 + 1UL │
00:00:51 #2078 [Verbose] > │ v69.l0 <- v74 │
00:00:51 #2079 [Verbose] > │ () │
00:00:51 #2080 [Verbose] > │ let v75 : uint64 = System.Convert.ToUInt64 v68.Length │
00:00:51 #2081 [Verbose] > │ let v76 : bool = v75 <= 1UL │
00:00:51 #2082 [Verbose] > │ if v76 then │
00:00:51 #2083 [Verbose] > │ () │
00:00:51 #2084 [Verbose] > │ else │
00:00:51 #2085 [Verbose] > │ let v77 : string = v68.[int 0UL] │
00:00:51 #2086 [Verbose] > │ let v78 : uint64 = 0UL │
00:00:51 #2087 [Verbose] > │ let v79 : bool = method16(v77, v68, v78) │
00:00:51 #2088 [Verbose] > │ if v79 then │
00:00:51 #2089 [Verbose] > │ () │
00:00:51 #2090 [Verbose] > │ else │
00:00:51 #2091 [Verbose] > │ let v80 : string = $"Challenge error: {v68}" │
00:00:51 #2092 [Verbose] > │ failwith<unit> v80 │
00:00:51 #2093 [Verbose] > │ let v81 : string = $"%A{v29}" │
00:00:51 #2094 [Verbose] > │ let v82 : (string []) = Array.zeroCreate<string> │
00:00:51 #2095 [Verbose] > │ (System.Convert.ToInt32(v67)) │
00:00:51 #2096 [Verbose] > │ let v83 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2097 [Verbose] > │ while method4(v67, v83) do │
00:00:51 #2098 [Verbose] > │ let v85 : uint64 = v83.l0 │
00:00:51 #2099 [Verbose] > │ let struct (v86 : string, v87 : int64) = v43.[int v85] │
00:00:51 #2100 [Verbose] > │ v82.[int v85] <- v86 │
00:00:51 #2101 [Verbose] > │ let v88 : uint64 = v85 + 1UL │
00:00:51 #2102 [Verbose] > │ v83.l0 <- v88 │
00:00:51 #2103 [Verbose] > │ () │
00:00:51 #2104 [Verbose] > │ let v89 : string = v82.[int 0UL] │
00:00:51 #2105 [Verbose] > │ let v90 : string = $"%A{v89}" │
00:00:51 #2106 [Verbose] > │ let v91 : (int64 []) = Array.zeroCreate<int64> │
00:00:51 #2107 [Verbose] > │ (System.Convert.ToInt32(v67)) │
00:00:51 #2108 [Verbose] > │ let v92 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2109 [Verbose] > │ while method4(v67, v92) do │
00:00:51 #2110 [Verbose] > │ let v94 : uint64 = v92.l0 │
00:00:51 #2111 [Verbose] > │ let struct (v95 : string, v96 : int64) = v43.[int v94] │
00:00:51 #2112 [Verbose] > │ v91.[int v94] <- v96 │
00:00:51 #2113 [Verbose] > │ let v97 : uint64 = v94 + 1UL │
00:00:51 #2114 [Verbose] > │ v92.l0 <- v97 │
00:00:51 #2115 [Verbose] > │ () │
00:00:51 #2116 [Verbose] > │ v24.[int v27] <- struct (v81, v30, v90, v91) │
00:00:51 #2117 [Verbose] > │ let v98 : uint64 = v27 + 1UL │
00:00:51 #2118 [Verbose] > │ v25.l0 <- v98 │
00:00:51 #2119 [Verbose] > │ () │
00:00:51 #2120 [Verbose] > │ let v99 : uint64 = System.Convert.ToUInt64 v24.Length │
00:00:51 #2121 [Verbose] > │ let v100 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * │
00:00:51 #2122 [Verbose] > │ US0)> (System.Convert.ToInt32(v99)) │
00:00:51 #2123 [Verbose] > │ let v101 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2124 [Verbose] > │ while method4(v99, v101) do │
00:00:51 #2125 [Verbose] > │ let v103 : uint64 = v101.l0 │
00:00:51 #2126 [Verbose] > │ let struct (v104 : string, v105 : string, v106 : string, v107 : │
00:00:51 #2127 [Verbose] > │ (int64 [])) = v24.[int v103] │
00:00:51 #2128 [Verbose] > │ let v108 : uint64 = System.Convert.ToUInt64 v107.Length │
00:00:51 #2129 [Verbose] > │ let v109 : UH4 = UH4_1 │
00:00:51 #2130 [Verbose] > │ let v110 : Mut2 = {l0 = 0UL; l1 = v109; l2 = 0L} : Mut2 │
00:00:51 #2131 [Verbose] > │ while method17(v108, v110) do │
00:00:51 #2132 [Verbose] > │ let v112 : uint64 = v110.l0 │
00:00:51 #2133 [Verbose] > │ let struct (v113 : UH4, v114 : int64) = v110.l1, v110.l2 │
00:00:51 #2134 [Verbose] > │ let v115 : int64 = v107.[int v112] │
00:00:51 #2135 [Verbose] > │ let v116 : int64 = v114 + 1L │
00:00:51 #2136 [Verbose] > │ let v117 : uint64 = v112 + 1UL │
00:00:51 #2137 [Verbose] > │ let v118 : UH4 = UH4_0(v114, v115, v113) │
00:00:51 #2138 [Verbose] > │ v110.l0 <- v117 │
00:00:51 #2139 [Verbose] > │ v110.l1 <- v118 │
00:00:51 #2140 [Verbose] > │ v110.l2 <- v116 │
00:00:51 #2141 [Verbose] > │ () │
00:00:51 #2142 [Verbose] > │ let struct (v119 : UH4, v120 : int64) = v110.l1, v110.l2 │
00:00:51 #2143 [Verbose] > │ let v121 : UH4 = UH4_1 │
00:00:51 #2144 [Verbose] > │ let v122 : UH4 = method18(v119, v121) │
00:00:51 #2145 [Verbose] > │ let v123 : (struct (int64 * int64) []) = method19(v122) │
00:00:51 #2146 [Verbose] > │ let v124 : int32 = v123.Length │
00:00:51 #2147 [Verbose] > │ let v125 : (struct (int64 * int64) []) = Array.zeroCreate<struct │
00:00:51 #2148 [Verbose] > │ (int64 * int64)> (v124) │
00:00:51 #2149 [Verbose] > │ let v126 : Mut1 = {l0 = 0} : Mut1 │
00:00:51 #2150 [Verbose] > │ while method5(v124, v126) do │
00:00:51 #2151 [Verbose] > │ let v128 : int32 = v126.l0 │
00:00:51 #2152 [Verbose] > │ let struct (v129 : int64, v130 : int64) = v123.[int v128] │
00:00:51 #2153 [Verbose] > │ let v131 : int64 = v129 + 1L │
00:00:51 #2154 [Verbose] > │ v125.[int v128] <- struct (v131, v130) │
00:00:51 #2155 [Verbose] > │ let v132 : int32 = v128 + 1 │
00:00:51 #2156 [Verbose] > │ v126.l0 <- v132 │
00:00:51 #2157 [Verbose] > │ () │
00:00:51 #2158 [Verbose] > │ let v133 : (struct (int64 * int64) -> int64) = closure4() │
00:00:51 #2159 [Verbose] > │ let v134 : (struct (int64 * int64) []) = v125 |> Array.sortBy v133 │
00:00:51 #2160 [Verbose] > │ let struct (v135 : int64, v136 : int64) = v134.[int 0] │
00:00:51 #2161 [Verbose] > │ let v137 : string = $"%A{struct (v135, v136)}" │
00:00:51 #2162 [Verbose] > │ let v138 : bool = v104 = v106 │
00:00:51 #2163 [Verbose] > │ let v143 : US0 = │
00:00:51 #2164 [Verbose] > │ if v138 then │
00:00:51 #2165 [Verbose] > │ let v139 : System.ConsoleColor = │
00:00:51 #2166 [Verbose] > │ System.ConsoleColor.DarkGreen │
00:00:51 #2167 [Verbose] > │ US0_1(v139) │
00:00:51 #2168 [Verbose] > │ else │
00:00:51 #2169 [Verbose] > │ let v141 : System.ConsoleColor = System.ConsoleColor.DarkRed │
00:00:51 #2170 [Verbose] > │ US0_1(v141) │
00:00:51 #2171 [Verbose] > │ let v144 : UH2 = UH2_1 │
00:00:51 #2172 [Verbose] > │ let v145 : UH2 = UH2_0(v137, v144) │
00:00:51 #2173 [Verbose] > │ let v146 : UH2 = UH2_0(v106, v145) │
00:00:51 #2174 [Verbose] > │ let v147 : UH2 = UH2_0(v104, v146) │
00:00:51 #2175 [Verbose] > │ let v148 : UH2 = UH2_0(v105, v147) │
00:00:51 #2176 [Verbose] > │ v100.[int v103] <- struct (v148, v143) │
00:00:51 #2177 [Verbose] > │ let v149 : uint64 = v103 + 1UL │
00:00:51 #2178 [Verbose] > │ v101.l0 <- v149 │
00:00:51 #2179 [Verbose] > │ () │
00:00:51 #2180 [Verbose] > │ let v150 : string = "Input" │
00:00:51 #2181 [Verbose] > │ let v151 : string = "Expected" │
00:00:51 #2182 [Verbose] > │ let v152 : string = "Result" │
00:00:51 #2183 [Verbose] > │ let v153 : string = "Best" │
00:00:51 #2184 [Verbose] > │ let v154 : UH2 = UH2_1 │
00:00:51 #2185 [Verbose] > │ let v155 : UH2 = UH2_0(v153, v154) │
00:00:51 #2186 [Verbose] > │ let v156 : UH2 = UH2_0(v152, v155) │
00:00:51 #2187 [Verbose] > │ let v157 : UH2 = UH2_0(v151, v156) │
00:00:51 #2188 [Verbose] > │ let v158 : UH2 = UH2_0(v150, v157) │
00:00:51 #2189 [Verbose] > │ let v159 : US0 = US0_0 │
00:00:51 #2190 [Verbose] > │ let v160 : string = "---" │
00:00:51 #2191 [Verbose] > │ let v161 : UH2 = UH2_1 │
00:00:51 #2192 [Verbose] > │ let v162 : UH2 = UH2_0(v160, v161) │
00:00:51 #2193 [Verbose] > │ let v163 : UH2 = UH2_0(v160, v162) │
00:00:51 #2194 [Verbose] > │ let v164 : UH2 = UH2_0(v160, v163) │
00:00:51 #2195 [Verbose] > │ let v165 : UH2 = UH2_0(v160, v164) │
00:00:51 #2196 [Verbose] > │ let v166 : US0 = US0_0 │
00:00:51 #2197 [Verbose] > │ let v167 : UH5 = UH5_1 │
00:00:51 #2198 [Verbose] > │ let v168 : UH5 = UH5_0(v165, v166, v167) │
00:00:51 #2199 [Verbose] > │ let v169 : UH5 = UH5_0(v158, v159, v168) │
00:00:51 #2200 [Verbose] > │ let v170 : (struct (UH2 * US0) []) = method22(v169) │
00:00:51 #2201 [Verbose] > │ let v171 : uint64 = System.Convert.ToUInt64 v170.Length │
00:00:51 #2202 [Verbose] > │ let v172 : uint64 = System.Convert.ToUInt64 v100.Length │
00:00:51 #2203 [Verbose] > │ let v173 : uint64 = v171 + v172 │
00:00:51 #2204 [Verbose] > │ let v174 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * │
00:00:51 #2205 [Verbose] > │ US0)> (System.Convert.ToInt32(v173)) │
00:00:51 #2206 [Verbose] > │ let v175 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2207 [Verbose] > │ while method4(v173, v175) do │
00:00:51 #2208 [Verbose] > │ let v177 : uint64 = v175.l0 │
00:00:51 #2209 [Verbose] > │ let v178 : bool = v177 < v171 │
00:00:51 #2210 [Verbose] > │ let struct (v184 : UH2, v185 : US0) = │
00:00:51 #2211 [Verbose] > │ if v178 then │
00:00:51 #2212 [Verbose] > │ let struct (v179 : UH2, v180 : US0) = v170.[int v177] │
00:00:51 #2213 [Verbose] > │ struct (v179, v180) │
00:00:51 #2214 [Verbose] > │ else │
00:00:51 #2215 [Verbose] > │ let v181 : uint64 = v177 - v171 │
00:00:51 #2216 [Verbose] > │ let struct (v182 : UH2, v183 : US0) = v100.[int v181] │
00:00:51 #2217 [Verbose] > │ struct (v182, v183) │
00:00:51 #2218 [Verbose] > │ v174.[int v177] <- struct (v184, v185) │
00:00:51 #2219 [Verbose] > │ let v186 : uint64 = v177 + 1UL │
00:00:51 #2220 [Verbose] > │ v175.l0 <- v186 │
00:00:51 #2221 [Verbose] > │ () │
00:00:51 #2222 [Verbose] > │ let v187 : uint64 = System.Convert.ToUInt64 v174.Length │
00:00:51 #2223 [Verbose] > │ let v188 : ((string []) []) = Array.zeroCreate<(string [])> │
00:00:51 #2224 [Verbose] > │ (System.Convert.ToInt32(v187)) │
00:00:51 #2225 [Verbose] > │ let v189 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2226 [Verbose] > │ while method4(v187, v189) do │
00:00:51 #2227 [Verbose] > │ let v191 : uint64 = v189.l0 │
00:00:51 #2228 [Verbose] > │ let struct (v192 : UH2, v193 : US0) = v174.[int v191] │
00:00:51 #2229 [Verbose] > │ let v194 : (string []) = method25(v192) │
00:00:51 #2230 [Verbose] > │ v188.[int v191] <- v194 │
00:00:51 #2231 [Verbose] > │ let v195 : uint64 = v191 + 1UL │
00:00:51 #2232 [Verbose] > │ v189.l0 <- v195 │
00:00:51 #2233 [Verbose] > │ () │
00:00:51 #2234 [Verbose] > │ let v196 : ((string []) []) = v188 |> Array.transpose │
00:00:51 #2235 [Verbose] > │ let v197 : uint64 = System.Convert.ToUInt64 v196.Length │
00:00:51 #2236 [Verbose] > │ let v198 : (int64 []) = Array.zeroCreate<int64> │
00:00:51 #2237 [Verbose] > │ (System.Convert.ToInt32(v197)) │
00:00:51 #2238 [Verbose] > │ let v199 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2239 [Verbose] > │ while method4(v197, v199) do │
00:00:51 #2240 [Verbose] > │ let v201 : uint64 = v199.l0 │
00:00:51 #2241 [Verbose] > │ let v202 : (string []) = v196.[int v201] │
00:00:51 #2242 [Verbose] > │ let v203 : uint64 = System.Convert.ToUInt64 v202.Length │
00:00:51 #2243 [Verbose] > │ let v204 : (int64 []) = Array.zeroCreate<int64> │
00:00:51 #2244 [Verbose] > │ (System.Convert.ToInt32(v203)) │
00:00:51 #2245 [Verbose] > │ let v205 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2246 [Verbose] > │ while method4(v203, v205) do │
00:00:51 #2247 [Verbose] > │ let v207 : uint64 = v205.l0 │
00:00:51 #2248 [Verbose] > │ let v208 : string = v202.[int v207] │
00:00:51 #2249 [Verbose] > │ let v209 : int64 = System.Convert.ToInt64 v208.Length │
00:00:51 #2250 [Verbose] > │ v204.[int v207] <- v209 │
00:00:51 #2251 [Verbose] > │ let v210 : uint64 = v207 + 1UL │
00:00:51 #2252 [Verbose] > │ v205.l0 <- v210 │
00:00:51 #2253 [Verbose] > │ () │
00:00:51 #2254 [Verbose] > │ let v211 : (int64 []) = v204 |> Array.sortDescending │
00:00:51 #2255 [Verbose] > │ let v212 : int64 option = v211 |> Array.tryItem 0 │
00:00:51 #2256 [Verbose] > │ let v213 : (int64 -> US1) = closure5() │
00:00:51 #2257 [Verbose] > │ let v214 : US1 = US1_0 │
00:00:51 #2258 [Verbose] > │ let v215 : US1 = v212 |> Option.map v213 |> Option.defaultValue v214 │
00:00:51 #2259 [Verbose] > │ let v218 : int64 = │
00:00:51 #2260 [Verbose] > │ match v215 with │
00:00:51 #2261 [Verbose] > │ | US1_0 -> (* None *) │
00:00:51 #2262 [Verbose] > │ 0L │
00:00:51 #2263 [Verbose] > │ | US1_1(v216) -> (* Some *) │
00:00:51 #2264 [Verbose] > │ v216 │
00:00:51 #2265 [Verbose] > │ v198.[int v201] <- v218 │
00:00:51 #2266 [Verbose] > │ let v219 : uint64 = v201 + 1UL │
00:00:51 #2267 [Verbose] > │ v199.l0 <- v219 │
00:00:51 #2268 [Verbose] > │ () │
00:00:51 #2269 [Verbose] > │ let v220 : uint64 = System.Convert.ToUInt64 v198.Length │
00:00:51 #2270 [Verbose] > │ let v221 : UH6 = UH6_1 │
00:00:51 #2271 [Verbose] > │ let v222 : Mut3 = {l0 = 0UL; l1 = v221; l2 = 0} : Mut3 │
00:00:51 #2272 [Verbose] > │ while method28(v220, v222) do │
00:00:51 #2273 [Verbose] > │ let v224 : uint64 = v222.l0 │
00:00:51 #2274 [Verbose] > │ let struct (v225 : UH6, v226 : int32) = v222.l1, v222.l2 │
00:00:51 #2275 [Verbose] > │ let v227 : int64 = v198.[int v224] │
00:00:51 #2276 [Verbose] > │ let v228 : int32 = v226 + 1 │
00:00:51 #2277 [Verbose] > │ let v229 : uint64 = v224 + 1UL │
00:00:51 #2278 [Verbose] > │ let v230 : UH6 = UH6_0(v226, v227, v225) │
00:00:51 #2279 [Verbose] > │ v222.l0 <- v229 │
00:00:51 #2280 [Verbose] > │ v222.l1 <- v230 │
00:00:51 #2281 [Verbose] > │ v222.l2 <- v228 │
00:00:51 #2282 [Verbose] > │ () │
00:00:51 #2283 [Verbose] > │ let struct (v231 : UH6, v232 : int32) = v222.l1, v222.l2 │
00:00:51 #2284 [Verbose] > │ let v233 : UH6 = UH6_1 │
00:00:51 #2285 [Verbose] > │ let v234 : UH6 = method29(v231, v233) │
00:00:51 #2286 [Verbose] > │ let v235 : (struct (int32 * int64) []) = method30(v234) │
00:00:51 #2287 [Verbose] > │ let v236 : Map<int32, int64> = v235 |> Array.map (fun (struct (a, b)) -> │
00:00:51 #2288 [Verbose] > │ a, b) |> Map.ofArray │
00:00:51 #2289 [Verbose] > │ let v237 : (struct ((string []) * US0) []) = Array.zeroCreate<struct │
00:00:51 #2290 [Verbose] > │ ((string []) * US0)> (System.Convert.ToInt32(v187)) │
00:00:51 #2291 [Verbose] > │ let v238 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2292 [Verbose] > │ while method4(v187, v238) do │
00:00:51 #2293 [Verbose] > │ let v240 : uint64 = v238.l0 │
00:00:51 #2294 [Verbose] > │ let struct (v241 : UH2, v242 : US0) = v174.[int v240] │
00:00:51 #2295 [Verbose] > │ let v243 : UH7 = UH7_1 │
00:00:51 #2296 [Verbose] > │ let v244 : int32 = 0 │
00:00:51 #2297 [Verbose] > │ let struct (v245 : UH7, v246 : int32) = method33(v241, v243, v244) │
00:00:51 #2298 [Verbose] > │ let v247 : UH7 = UH7_1 │
00:00:51 #2299 [Verbose] > │ let v248 : UH7 = method34(v245, v247) │
00:00:51 #2300 [Verbose] > │ let v249 : UH2 = UH2_1 │
00:00:51 #2301 [Verbose] > │ let v250 : UH2 = method35(v236, v248, v249) │
00:00:51 #2302 [Verbose] > │ let v251 : (string []) = method9(v250) │
00:00:51 #2303 [Verbose] > │ v237.[int v240] <- struct (v251, v242) │
00:00:51 #2304 [Verbose] > │ let v252 : uint64 = v240 + 1UL │
00:00:51 #2305 [Verbose] > │ v238.l0 <- v252 │
00:00:51 #2306 [Verbose] > │ () │
00:00:51 #2307 [Verbose] > │ System.Console.WriteLine v2 │
00:00:51 #2308 [Verbose] > │ let v253 : uint64 = System.Convert.ToUInt64 v237.Length │
00:00:51 #2309 [Verbose] > │ let v254 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2310 [Verbose] > │ while method4(v253, v254) do │
00:00:51 #2311 [Verbose] > │ let v256 : uint64 = v254.l0 │
00:00:51 #2312 [Verbose] > │ let struct (v257 : (string []), v258 : US0) = v237.[int v256] │
00:00:51 #2313 [Verbose] > │ match v258 with │
00:00:51 #2314 [Verbose] > │ | US0_0 -> (* None *) │
00:00:51 #2315 [Verbose] > │ let mutable result = None │
00:00:51 #2316 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:00:51 #2317 [Verbose] > │ () │
00:00:51 #2318 [Verbose] > │ #endif │
00:00:51 #2319 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:00:51 #2320 [Verbose] > │ () │
00:00:51 #2321 [Verbose] > │ #endif │
00:00:51 #2322 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:51 #2323 [Verbose] > │ System.Console.ResetColor () │
00:00:51 #2324 [Verbose] > │ () │
00:00:51 #2325 [Verbose] > │ #endif │
00:00:51 #2326 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:51 #2327 [Verbose] > │ System.Console.ResetColor () │
00:00:51 #2328 [Verbose] > │ () │
00:00:51 #2329 [Verbose] > │ #endif │
00:00:51 #2330 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:00:51 #2331 [Verbose] > │ System.Console.ResetColor () │
00:00:51 #2332 [Verbose] > │ () │
00:00:51 #2333 [Verbose] > │ #endif │
00:00:51 #2334 [Verbose] > │ |> fun x -> result <- Some x │
00:00:51 #2335 [Verbose] > │ result |> Option.get │
00:00:51 #2336 [Verbose] > │ () │
00:00:51 #2337 [Verbose] > │ | US0_1(v259) -> (* Some *) │
00:00:51 #2338 [Verbose] > │ let mutable result = None │
00:00:51 #2339 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:00:51 #2340 [Verbose] > │ () │
00:00:51 #2341 [Verbose] > │ #endif │
00:00:51 #2342 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:00:51 #2343 [Verbose] > │ () │
00:00:51 #2344 [Verbose] > │ #endif │
00:00:51 #2345 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:51 #2346 [Verbose] > │ System.Console.ForegroundColor <- v259 │
00:00:51 #2347 [Verbose] > │ () │
00:00:51 #2348 [Verbose] > │ #endif │
00:00:51 #2349 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:51 #2350 [Verbose] > │ System.Console.ForegroundColor <- v259 │
00:00:51 #2351 [Verbose] > │ () │
00:00:51 #2352 [Verbose] > │ #endif │
00:00:51 #2353 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:00:51 #2354 [Verbose] > │ System.Console.ForegroundColor <- v259 │
00:00:51 #2355 [Verbose] > │ () │
00:00:51 #2356 [Verbose] > │ #endif │
00:00:51 #2357 [Verbose] > │ |> fun x -> result <- Some x │
00:00:51 #2358 [Verbose] > │ result |> Option.get │
00:00:51 #2359 [Verbose] > │ () │
00:00:51 #2360 [Verbose] > │ let v260 : string = "\t| " │
00:00:51 #2361 [Verbose] > │ let v261 : string = System.String.Join (v260, v257) │
00:00:51 #2362 [Verbose] > │ System.Console.WriteLine v261 │
00:00:51 #2363 [Verbose] > │ let mutable result = None │
00:00:51 #2364 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:00:51 #2365 [Verbose] > │ () │
00:00:51 #2366 [Verbose] > │ #endif │
00:00:51 #2367 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:00:51 #2368 [Verbose] > │ () │
00:00:51 #2369 [Verbose] > │ #endif │
00:00:51 #2370 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:51 #2371 [Verbose] > │ System.Console.ResetColor () │
00:00:51 #2372 [Verbose] > │ () │
00:00:51 #2373 [Verbose] > │ #endif │
00:00:51 #2374 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:51 #2375 [Verbose] > │ System.Console.ResetColor () │
00:00:51 #2376 [Verbose] > │ () │
00:00:51 #2377 [Verbose] > │ #endif │
00:00:51 #2378 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:00:51 #2379 [Verbose] > │ System.Console.ResetColor () │
00:00:51 #2380 [Verbose] > │ () │
00:00:51 #2381 [Verbose] > │ #endif │
00:00:51 #2382 [Verbose] > │ |> fun x -> result <- Some x │
00:00:51 #2383 [Verbose] > │ result |> Option.get │
00:00:51 #2384 [Verbose] > │ let v262 : uint64 = v256 + 1UL │
00:00:51 #2385 [Verbose] > │ v254.l0 <- v262 │
00:00:51 #2386 [Verbose] > │ () │
00:00:51 #2387 [Verbose] > │ let v263 : ((float []) []) = Array.zeroCreate<(float [])> │
00:00:51 #2388 [Verbose] > │ (System.Convert.ToInt32(v99)) │
00:00:51 #2389 [Verbose] > │ let v264 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2390 [Verbose] > │ while method4(v99, v264) do │
00:00:51 #2391 [Verbose] > │ let v266 : uint64 = v264.l0 │
00:00:51 #2392 [Verbose] > │ let struct (v267 : string, v268 : string, v269 : string, v270 : │
00:00:51 #2393 [Verbose] > │ (int64 [])) = v24.[int v266] │
00:00:51 #2394 [Verbose] > │ let v271 : (int64 -> float) = float │
00:00:51 #2395 [Verbose] > │ let v272 : uint64 = System.Convert.ToUInt64 v270.Length │
00:00:51 #2396 [Verbose] > │ let v273 : (float []) = Array.zeroCreate<float> │
00:00:51 #2397 [Verbose] > │ (System.Convert.ToInt32(v272)) │
00:00:51 #2398 [Verbose] > │ let v274 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2399 [Verbose] > │ while method4(v272, v274) do │
00:00:51 #2400 [Verbose] > │ let v276 : uint64 = v274.l0 │
00:00:51 #2401 [Verbose] > │ let v277 : int64 = v270.[int v276] │
00:00:51 #2402 [Verbose] > │ let v278 : float = v271 v277 │
00:00:51 #2403 [Verbose] > │ v273.[int v276] <- v278 │
00:00:51 #2404 [Verbose] > │ let v279 : uint64 = v276 + 1UL │
00:00:51 #2405 [Verbose] > │ v274.l0 <- v279 │
00:00:51 #2406 [Verbose] > │ () │
00:00:51 #2407 [Verbose] > │ v263.[int v266] <- v273 │
00:00:51 #2408 [Verbose] > │ let v280 : uint64 = v266 + 1UL │
00:00:51 #2409 [Verbose] > │ v264.l0 <- v280 │
00:00:51 #2410 [Verbose] > │ () │
00:00:51 #2411 [Verbose] > │ let v281 : ((float []) []) = v263 |> Array.transpose │
00:00:51 #2412 [Verbose] > │ let v282 : uint64 = System.Convert.ToUInt64 v281.Length │
00:00:51 #2413 [Verbose] > │ let v283 : (float []) = Array.zeroCreate<float> │
00:00:51 #2414 [Verbose] > │ (System.Convert.ToInt32(v282)) │
00:00:51 #2415 [Verbose] > │ let v284 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2416 [Verbose] > │ while method4(v282, v284) do │
00:00:51 #2417 [Verbose] > │ let v286 : uint64 = v284.l0 │
00:00:51 #2418 [Verbose] > │ let v287 : (float []) = v281.[int v286] │
00:00:51 #2419 [Verbose] > │ let v288 : float = v287 |> Array.average │
00:00:51 #2420 [Verbose] > │ v283.[int v286] <- v288 │
00:00:51 #2421 [Verbose] > │ let v289 : uint64 = v286 + 1UL │
00:00:51 #2422 [Verbose] > │ v284.l0 <- v289 │
00:00:51 #2423 [Verbose] > │ () │
00:00:51 #2424 [Verbose] > │ let v290 : (float -> int64) = int64 │
00:00:51 #2425 [Verbose] > │ let v291 : uint64 = System.Convert.ToUInt64 v283.Length │
00:00:51 #2426 [Verbose] > │ let v292 : (int64 []) = Array.zeroCreate<int64> │
00:00:51 #2427 [Verbose] > │ (System.Convert.ToInt32(v291)) │
00:00:51 #2428 [Verbose] > │ let v293 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2429 [Verbose] > │ while method4(v291, v293) do │
00:00:51 #2430 [Verbose] > │ let v295 : uint64 = v293.l0 │
00:00:51 #2431 [Verbose] > │ let v296 : float = v283.[int v295] │
00:00:51 #2432 [Verbose] > │ let v297 : int64 = v290 v296 │
00:00:51 #2433 [Verbose] > │ v292.[int v295] <- v297 │
00:00:51 #2434 [Verbose] > │ let v298 : uint64 = v295 + 1UL │
00:00:51 #2435 [Verbose] > │ v293.l0 <- v298 │
00:00:51 #2436 [Verbose] > │ () │
00:00:51 #2437 [Verbose] > │ let v299 : uint64 = System.Convert.ToUInt64 v292.Length │
00:00:51 #2438 [Verbose] > │ let v300 : UH6 = UH6_1 │
00:00:51 #2439 [Verbose] > │ let v301 : Mut3 = {l0 = 0UL; l1 = v300; l2 = 0} : Mut3 │
00:00:51 #2440 [Verbose] > │ while method28(v299, v301) do │
00:00:51 #2441 [Verbose] > │ let v303 : uint64 = v301.l0 │
00:00:51 #2442 [Verbose] > │ let struct (v304 : UH6, v305 : int32) = v301.l1, v301.l2 │
00:00:51 #2443 [Verbose] > │ let v306 : int64 = v292.[int v303] │
00:00:51 #2444 [Verbose] > │ let v307 : int32 = v305 + 1 │
00:00:51 #2445 [Verbose] > │ let v308 : uint64 = v303 + 1UL │
00:00:51 #2446 [Verbose] > │ let v309 : UH6 = UH6_0(v305, v306, v304) │
00:00:51 #2447 [Verbose] > │ v301.l0 <- v308 │
00:00:51 #2448 [Verbose] > │ v301.l1 <- v309 │
00:00:51 #2449 [Verbose] > │ v301.l2 <- v307 │
00:00:51 #2450 [Verbose] > │ () │
00:00:51 #2451 [Verbose] > │ let struct (v310 : UH6, v311 : int32) = v301.l1, v301.l2 │
00:00:51 #2452 [Verbose] > │ let v312 : UH6 = UH6_1 │
00:00:51 #2453 [Verbose] > │ let v313 : UH6 = method29(v310, v312) │
00:00:51 #2454 [Verbose] > │ let v314 : (struct (int32 * int64) []) = method36(v313) │
00:00:51 #2455 [Verbose] > │ System.Console.WriteLine v2 │
00:00:51 #2456 [Verbose] > │ let v315 : string = "Average Ranking " │
00:00:51 #2457 [Verbose] > │ System.Console.WriteLine v315 │
00:00:51 #2458 [Verbose] > │ let v316 : (struct (int32 * int64) -> int64) = closure6() │
00:00:51 #2459 [Verbose] > │ let v317 : (struct (int32 * int64) []) = v314 |> Array.sortBy v316 │
00:00:51 #2460 [Verbose] > │ let v318 : uint64 = System.Convert.ToUInt64 v317.Length │
00:00:51 #2461 [Verbose] > │ let v319 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2462 [Verbose] > │ while method4(v318, v319) do │
00:00:51 #2463 [Verbose] > │ let v321 : uint64 = v319.l0 │
00:00:51 #2464 [Verbose] > │ let struct (v322 : int32, v323 : int64) = v317.[int v321] │
00:00:51 #2465 [Verbose] > │ let v324 : string = $"Test case %d{v322 + 1}. Average Time: %A{v323} │
00:00:51 #2466 [Verbose] > │ " │
00:00:51 #2467 [Verbose] > │ System.Console.WriteLine v324 │
00:00:51 #2468 [Verbose] > │ let v325 : uint64 = v321 + 1UL │
00:00:51 #2469 [Verbose] > │ v319.l0 <- v325 │
00:00:51 #2470 [Verbose] > │ () │
00:00:51 #2471 [Verbose] > │ () │
00:00:51 #2472 [Verbose] > │ and method0 () : unit = │
00:00:51 #2473 [Verbose] > │ let v0 : (unit -> unit) = closure0() │
00:00:51 #2474 [Verbose] > │ let v1 : string = nameof v0 │
00:00:51 #2475 [Verbose] > │ let v2 : string = "" │
00:00:51 #2476 [Verbose] > │ System.Console.WriteLine v2 │
00:00:51 #2477 [Verbose] > │ System.Console.WriteLine v2 │
00:00:51 #2478 [Verbose] > │ let v3 : string = $"Test: {v1}" │
00:00:51 #2479 [Verbose] > │ System.Console.WriteLine v3 │
00:00:51 #2480 [Verbose] > │ let v4 : string = "abc" │
00:00:51 #2481 [Verbose] > │ let v5 : string = "bca cab abc" │
00:00:51 #2482 [Verbose] > │ let v6 : string = "abcde" │
00:00:51 #2483 [Verbose] > │ let v7 : string = "bcdea cdeab deabc eabcd abcde" │
00:00:51 #2484 [Verbose] > │ let v8 : string = "abcdefghi" │
00:00:51 #2485 [Verbose] > │ let v9 : string = "bcdefghia cdefghiab defghiabc efghiabcd fghiabcde │
00:00:51 #2486 [Verbose] > │ ghiabcdef hiabcdefg iabcdefgh abcdefghi" │
00:00:51 #2487 [Verbose] > │ let v10 : string = "abab" │
00:00:51 #2488 [Verbose] > │ let v11 : string = "baba abab baba abab" │
00:00:51 #2489 [Verbose] > │ let v12 : string = "aa" │
00:00:51 #2490 [Verbose] > │ let v13 : string = "aa aa" │
00:00:51 #2491 [Verbose] > │ let v14 : string = "z" │
00:00:51 #2492 [Verbose] > │ let v15 : UH0 = UH0_1 │
00:00:51 #2493 [Verbose] > │ let v16 : UH0 = UH0_0(v14, v14, v15) │
00:00:51 #2494 [Verbose] > │ let v17 : UH0 = UH0_0(v12, v13, v16) │
00:00:51 #2495 [Verbose] > │ let v18 : UH0 = UH0_0(v10, v11, v17) │
00:00:51 #2496 [Verbose] > │ let v19 : UH0 = UH0_0(v8, v9, v18) │
00:00:51 #2497 [Verbose] > │ let v20 : UH0 = UH0_0(v6, v7, v19) │
00:00:51 #2498 [Verbose] > │ let v21 : UH0 = UH0_0(v4, v5, v20) │
00:00:51 #2499 [Verbose] > │ let v22 : (struct (string * string) []) = method1(v21) │
00:00:51 #2500 [Verbose] > │ let v23 : uint64 = System.Convert.ToUInt64 v22.Length │
00:00:51 #2501 [Verbose] > │ let v24 : (struct (string * string * string * (int64 [])) []) = │
00:00:51 #2502 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))> │
00:00:51 #2503 [Verbose] > │ (System.Convert.ToInt32(v23)) │
00:00:51 #2504 [Verbose] > │ let v25 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2505 [Verbose] > │ while method4(v23, v25) do │
00:00:51 #2506 [Verbose] > │ let v27 : uint64 = v25.l0 │
00:00:51 #2507 [Verbose] > │ let struct (v28 : string, v29 : string) = v22.[int v27] │
00:00:51 #2508 [Verbose] > │ let v30 : string = $"%A{v28}" │
00:00:51 #2509 [Verbose] > │ System.Console.WriteLine v2 │
00:00:51 #2510 [Verbose] > │ let v31 : string = $"Solution: {v30} " │
00:00:51 #2511 [Verbose] > │ System.Console.WriteLine v31 │
00:00:51 #2512 [Verbose] > │ let v32 : int32 = 0 │
00:00:51 #2513 [Verbose] > │ let v33 : string = "F" │
00:00:51 #2514 [Verbose] > │ let v34 : (string -> string) = closure1() │
00:00:51 #2515 [Verbose] > │ let v35 : int32 = 1 │
00:00:51 #2516 [Verbose] > │ let v36 : string = "FA" │
00:00:51 #2517 [Verbose] > │ let v37 : (string -> string) = closure2() │
00:00:51 #2518 [Verbose] > │ let v38 : UH3 = UH3_1 │
00:00:51 #2519 [Verbose] > │ let v39 : UH3 = UH3_0(v35, v36, v37, v38) │
00:00:51 #2520 [Verbose] > │ let v40 : UH3 = UH3_0(v32, v33, v34, v39) │
00:00:51 #2521 [Verbose] > │ let v41 : (struct (int32 * string * (string -> string)) []) = │
00:00:51 #2522 [Verbose] > │ method12(v40) │
00:00:51 #2523 [Verbose] > │ let v42 : uint64 = System.Convert.ToUInt64 v41.Length │
00:00:51 #2524 [Verbose] > │ let v43 : (struct (string * int64) []) = Array.zeroCreate<struct │
00:00:51 #2525 [Verbose] > │ (string * int64)> (System.Convert.ToInt32(v42)) │
00:00:51 #2526 [Verbose] > │ let v44 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2527 [Verbose] > │ while method4(v42, v44) do │
00:00:51 #2528 [Verbose] > │ let v46 : uint64 = v44.l0 │
00:00:51 #2529 [Verbose] > │ let struct (v47 : int32, v48 : string, v49 : (string -> string)) │
00:00:51 #2530 [Verbose] > │ = v41.[int v46] │
00:00:51 #2531 [Verbose] > │ let mutable result = None │
00:00:51 #2532 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:00:51 #2533 [Verbose] > │ () │
00:00:51 #2534 [Verbose] > │ #endif │
00:00:51 #2535 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:00:51 #2536 [Verbose] > │ () │
00:00:51 #2537 [Verbose] > │ #endif │
00:00:51 #2538 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:51 #2539 [Verbose] > │ System.GC.Collect () │
00:00:51 #2540 [Verbose] > │ () │
00:00:51 #2541 [Verbose] > │ #endif │
00:00:51 #2542 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:51 #2543 [Verbose] > │ System.GC.Collect () │
00:00:51 #2544 [Verbose] > │ () │
00:00:51 #2545 [Verbose] > │ #endif │
00:00:51 #2546 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:00:51 #2547 [Verbose] > │ System.GC.Collect () │
00:00:51 #2548 [Verbose] > │ () │
00:00:51 #2549 [Verbose] > │ #endif │
00:00:51 #2550 [Verbose] > │ |> fun x -> result <- Some x │
00:00:51 #2551 [Verbose] > │ result |> Option.get │
00:00:51 #2552 [Verbose] > │ let v50 : (unit -> System.Diagnostics.Stopwatch) = │
00:00:51 #2553 [Verbose] > │ System.Diagnostics.Stopwatch │
00:00:51 #2554 [Verbose] > │ let v51 : System.Diagnostics.Stopwatch = v50 () │
00:00:51 #2555 [Verbose] > │ v51.Start () │
00:00:51 #2556 [Verbose] > │ let v52 : int64 = v51.ElapsedMilliseconds │
00:00:51 #2557 [Verbose] > │ let v53 : (int32 []) = Array.zeroCreate<int32> (2000001) │
00:00:51 #2558 [Verbose] > │ let v54 : Mut1 = {l0 = 0} : Mut1 │
00:00:51 #2559 [Verbose] > │ while method15(v54) do │
00:00:51 #2560 [Verbose] > │ let v56 : int32 = v54.l0 │
00:00:51 #2561 [Verbose] > │ v53.[int v56] <- v56 │
00:00:51 #2562 [Verbose] > │ let v57 : int32 = v56 + 1 │
00:00:51 #2563 [Verbose] > │ v54.l0 <- v57 │
00:00:51 #2564 [Verbose] > │ () │
00:00:51 #2565 [Verbose] > │ let v58 : (int32 -> string) = closure3(v28, v49) │
00:00:51 #2566 [Verbose] > │ let v59 : (string []) = v53 |> Array.Parallel.map v58 │
00:00:51 #2567 [Verbose] > │ let v60 : int32 = v59.Length │
00:00:51 #2568 [Verbose] > │ let v61 : int32 = v60 - 1 │
00:00:51 #2569 [Verbose] > │ let v62 : string = v59.[int v61] │
00:00:51 #2570 [Verbose] > │ let v63 : int64 = v51.ElapsedMilliseconds │
00:00:51 #2571 [Verbose] > │ let v64 : int64 = v63 - v52 │
00:00:51 #2572 [Verbose] > │ let v65 : string = $"Test case {v47 + 1}. {v48}. Time: {v64} " │
00:00:51 #2573 [Verbose] > │ System.Console.WriteLine v65 │
00:00:51 #2574 [Verbose] > │ v43.[int v46] <- struct (v62, v64) │
00:00:51 #2575 [Verbose] > │ let v66 : uint64 = v46 + 1UL │
00:00:51 #2576 [Verbose] > │ v44.l0 <- v66 │
00:00:51 #2577 [Verbose] > │ () │
00:00:51 #2578 [Verbose] > │ let v67 : uint64 = System.Convert.ToUInt64 v43.Length │
00:00:51 #2579 [Verbose] > │ let v68 : (string []) = Array.zeroCreate<string> │
00:00:51 #2580 [Verbose] > │ (System.Convert.ToInt32(v67)) │
00:00:51 #2581 [Verbose] > │ let v69 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2582 [Verbose] > │ while method4(v67, v69) do │
00:00:51 #2583 [Verbose] > │ let v71 : uint64 = v69.l0 │
00:00:51 #2584 [Verbose] > │ let struct (v72 : string, v73 : int64) = v43.[int v71] │
00:00:51 #2585 [Verbose] > │ v68.[int v71] <- v72 │
00:00:51 #2586 [Verbose] > │ let v74 : uint64 = v71 + 1UL │
00:00:51 #2587 [Verbose] > │ v69.l0 <- v74 │
00:00:51 #2588 [Verbose] > │ () │
00:00:51 #2589 [Verbose] > │ let v75 : uint64 = System.Convert.ToUInt64 v68.Length │
00:00:51 #2590 [Verbose] > │ let v76 : bool = v75 <= 1UL │
00:00:51 #2591 [Verbose] > │ if v76 then │
00:00:51 #2592 [Verbose] > │ () │
00:00:51 #2593 [Verbose] > │ else │
00:00:51 #2594 [Verbose] > │ let v77 : string = v68.[int 0UL] │
00:00:51 #2595 [Verbose] > │ let v78 : uint64 = 0UL │
00:00:51 #2596 [Verbose] > │ let v79 : bool = method16(v77, v68, v78) │
00:00:51 #2597 [Verbose] > │ if v79 then │
00:00:51 #2598 [Verbose] > │ () │
00:00:51 #2599 [Verbose] > │ else │
00:00:51 #2600 [Verbose] > │ let v80 : string = $"Challenge error: {v68}" │
00:00:51 #2601 [Verbose] > │ failwith<unit> v80 │
00:00:51 #2602 [Verbose] > │ let v81 : string = $"%A{v29}" │
00:00:51 #2603 [Verbose] > │ let v82 : (string []) = Array.zeroCreate<string> │
00:00:51 #2604 [Verbose] > │ (System.Convert.ToInt32(v67)) │
00:00:51 #2605 [Verbose] > │ let v83 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2606 [Verbose] > │ while method4(v67, v83) do │
00:00:51 #2607 [Verbose] > │ let v85 : uint64 = v83.l0 │
00:00:51 #2608 [Verbose] > │ let struct (v86 : string, v87 : int64) = v43.[int v85] │
00:00:51 #2609 [Verbose] > │ v82.[int v85] <- v86 │
00:00:51 #2610 [Verbose] > │ let v88 : uint64 = v85 + 1UL │
00:00:51 #2611 [Verbose] > │ v83.l0 <- v88 │
00:00:51 #2612 [Verbose] > │ () │
00:00:51 #2613 [Verbose] > │ let v89 : string = v82.[int 0UL] │
00:00:51 #2614 [Verbose] > │ let v90 : string = $"%A{v89}" │
00:00:51 #2615 [Verbose] > │ let v91 : (int64 []) = Array.zeroCreate<int64> │
00:00:51 #2616 [Verbose] > │ (System.Convert.ToInt32(v67)) │
00:00:51 #2617 [Verbose] > │ let v92 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2618 [Verbose] > │ while method4(v67, v92) do │
00:00:51 #2619 [Verbose] > │ let v94 : uint64 = v92.l0 │
00:00:51 #2620 [Verbose] > │ let struct (v95 : string, v96 : int64) = v43.[int v94] │
00:00:51 #2621 [Verbose] > │ v91.[int v94] <- v96 │
00:00:51 #2622 [Verbose] > │ let v97 : uint64 = v94 + 1UL │
00:00:51 #2623 [Verbose] > │ v92.l0 <- v97 │
00:00:51 #2624 [Verbose] > │ () │
00:00:51 #2625 [Verbose] > │ v24.[int v27] <- struct (v81, v30, v90, v91) │
00:00:51 #2626 [Verbose] > │ let v98 : uint64 = v27 + 1UL │
00:00:51 #2627 [Verbose] > │ v25.l0 <- v98 │
00:00:51 #2628 [Verbose] > │ () │
00:00:51 #2629 [Verbose] > │ let v99 : uint64 = System.Convert.ToUInt64 v24.Length │
00:00:51 #2630 [Verbose] > │ let v100 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * │
00:00:51 #2631 [Verbose] > │ US0)> (System.Convert.ToInt32(v99)) │
00:00:51 #2632 [Verbose] > │ let v101 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2633 [Verbose] > │ while method4(v99, v101) do │
00:00:51 #2634 [Verbose] > │ let v103 : uint64 = v101.l0 │
00:00:51 #2635 [Verbose] > │ let struct (v104 : string, v105 : string, v106 : string, v107 : │
00:00:51 #2636 [Verbose] > │ (int64 [])) = v24.[int v103] │
00:00:51 #2637 [Verbose] > │ let v108 : uint64 = System.Convert.ToUInt64 v107.Length │
00:00:51 #2638 [Verbose] > │ let v109 : UH4 = UH4_1 │
00:00:51 #2639 [Verbose] > │ let v110 : Mut2 = {l0 = 0UL; l1 = v109; l2 = 0L} : Mut2 │
00:00:51 #2640 [Verbose] > │ while method17(v108, v110) do │
00:00:51 #2641 [Verbose] > │ let v112 : uint64 = v110.l0 │
00:00:51 #2642 [Verbose] > │ let struct (v113 : UH4, v114 : int64) = v110.l1, v110.l2 │
00:00:51 #2643 [Verbose] > │ let v115 : int64 = v107.[int v112] │
00:00:51 #2644 [Verbose] > │ let v116 : int64 = v114 + 1L │
00:00:51 #2645 [Verbose] > │ let v117 : uint64 = v112 + 1UL │
00:00:51 #2646 [Verbose] > │ let v118 : UH4 = UH4_0(v114, v115, v113) │
00:00:51 #2647 [Verbose] > │ v110.l0 <- v117 │
00:00:51 #2648 [Verbose] > │ v110.l1 <- v118 │
00:00:51 #2649 [Verbose] > │ v110.l2 <- v116 │
00:00:51 #2650 [Verbose] > │ () │
00:00:51 #2651 [Verbose] > │ let struct (v119 : UH4, v120 : int64) = v110.l1, v110.l2 │
00:00:51 #2652 [Verbose] > │ let v121 : UH4 = UH4_1 │
00:00:51 #2653 [Verbose] > │ let v122 : UH4 = method18(v119, v121) │
00:00:51 #2654 [Verbose] > │ let v123 : (struct (int64 * int64) []) = method19(v122) │
00:00:51 #2655 [Verbose] > │ let v124 : int32 = v123.Length │
00:00:51 #2656 [Verbose] > │ let v125 : (struct (int64 * int64) []) = Array.zeroCreate<struct │
00:00:51 #2657 [Verbose] > │ (int64 * int64)> (v124) │
00:00:51 #2658 [Verbose] > │ let v126 : Mut1 = {l0 = 0} : Mut1 │
00:00:51 #2659 [Verbose] > │ while method5(v124, v126) do │
00:00:51 #2660 [Verbose] > │ let v128 : int32 = v126.l0 │
00:00:51 #2661 [Verbose] > │ let struct (v129 : int64, v130 : int64) = v123.[int v128] │
00:00:51 #2662 [Verbose] > │ let v131 : int64 = v129 + 1L │
00:00:51 #2663 [Verbose] > │ v125.[int v128] <- struct (v131, v130) │
00:00:51 #2664 [Verbose] > │ let v132 : int32 = v128 + 1 │
00:00:51 #2665 [Verbose] > │ v126.l0 <- v132 │
00:00:51 #2666 [Verbose] > │ () │
00:00:51 #2667 [Verbose] > │ let v133 : (struct (int64 * int64) -> int64) = closure4() │
00:00:51 #2668 [Verbose] > │ let v134 : (struct (int64 * int64) []) = v125 |> Array.sortBy v133 │
00:00:51 #2669 [Verbose] > │ let struct (v135 : int64, v136 : int64) = v134.[int 0] │
00:00:51 #2670 [Verbose] > │ let v137 : string = $"%A{struct (v135, v136)}" │
00:00:51 #2671 [Verbose] > │ let v138 : bool = v104 = v106 │
00:00:51 #2672 [Verbose] > │ let v143 : US0 = │
00:00:51 #2673 [Verbose] > │ if v138 then │
00:00:51 #2674 [Verbose] > │ let v139 : System.ConsoleColor = │
00:00:51 #2675 [Verbose] > │ System.ConsoleColor.DarkGreen │
00:00:51 #2676 [Verbose] > │ US0_1(v139) │
00:00:51 #2677 [Verbose] > │ else │
00:00:51 #2678 [Verbose] > │ let v141 : System.ConsoleColor = System.ConsoleColor.DarkRed │
00:00:51 #2679 [Verbose] > │ US0_1(v141) │
00:00:51 #2680 [Verbose] > │ let v144 : UH2 = UH2_1 │
00:00:51 #2681 [Verbose] > │ let v145 : UH2 = UH2_0(v137, v144) │
00:00:51 #2682 [Verbose] > │ let v146 : UH2 = UH2_0(v106, v145) │
00:00:51 #2683 [Verbose] > │ let v147 : UH2 = UH2_0(v104, v146) │
00:00:51 #2684 [Verbose] > │ let v148 : UH2 = UH2_0(v105, v147) │
00:00:51 #2685 [Verbose] > │ v100.[int v103] <- struct (v148, v143) │
00:00:51 #2686 [Verbose] > │ let v149 : uint64 = v103 + 1UL │
00:00:51 #2687 [Verbose] > │ v101.l0 <- v149 │
00:00:51 #2688 [Verbose] > │ () │
00:00:51 #2689 [Verbose] > │ let v150 : string = "Input" │
00:00:51 #2690 [Verbose] > │ let v151 : string = "Expected" │
00:00:51 #2691 [Verbose] > │ let v152 : string = "Result" │
00:00:51 #2692 [Verbose] > │ let v153 : string = "Best" │
00:00:51 #2693 [Verbose] > │ let v154 : UH2 = UH2_1 │
00:00:51 #2694 [Verbose] > │ let v155 : UH2 = UH2_0(v153, v154) │
00:00:51 #2695 [Verbose] > │ let v156 : UH2 = UH2_0(v152, v155) │
00:00:51 #2696 [Verbose] > │ let v157 : UH2 = UH2_0(v151, v156) │
00:00:51 #2697 [Verbose] > │ let v158 : UH2 = UH2_0(v150, v157) │
00:00:51 #2698 [Verbose] > │ let v159 : US0 = US0_0 │
00:00:51 #2699 [Verbose] > │ let v160 : string = "---" │
00:00:51 #2700 [Verbose] > │ let v161 : UH2 = UH2_1 │
00:00:51 #2701 [Verbose] > │ let v162 : UH2 = UH2_0(v160, v161) │
00:00:51 #2702 [Verbose] > │ let v163 : UH2 = UH2_0(v160, v162) │
00:00:51 #2703 [Verbose] > │ let v164 : UH2 = UH2_0(v160, v163) │
00:00:51 #2704 [Verbose] > │ let v165 : UH2 = UH2_0(v160, v164) │
00:00:51 #2705 [Verbose] > │ let v166 : US0 = US0_0 │
00:00:51 #2706 [Verbose] > │ let v167 : UH5 = UH5_1 │
00:00:51 #2707 [Verbose] > │ let v168 : UH5 = UH5_0(v165, v166, v167) │
00:00:51 #2708 [Verbose] > │ let v169 : UH5 = UH5_0(v158, v159, v168) │
00:00:51 #2709 [Verbose] > │ let v170 : (struct (UH2 * US0) []) = method22(v169) │
00:00:51 #2710 [Verbose] > │ let v171 : uint64 = System.Convert.ToUInt64 v170.Length │
00:00:51 #2711 [Verbose] > │ let v172 : uint64 = System.Convert.ToUInt64 v100.Length │
00:00:51 #2712 [Verbose] > │ let v173 : uint64 = v171 + v172 │
00:00:51 #2713 [Verbose] > │ let v174 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * │
00:00:51 #2714 [Verbose] > │ US0)> (System.Convert.ToInt32(v173)) │
00:00:51 #2715 [Verbose] > │ let v175 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2716 [Verbose] > │ while method4(v173, v175) do │
00:00:51 #2717 [Verbose] > │ let v177 : uint64 = v175.l0 │
00:00:51 #2718 [Verbose] > │ let v178 : bool = v177 < v171 │
00:00:51 #2719 [Verbose] > │ let struct (v184 : UH2, v185 : US0) = │
00:00:51 #2720 [Verbose] > │ if v178 then │
00:00:51 #2721 [Verbose] > │ let struct (v179 : UH2, v180 : US0) = v170.[int v177] │
00:00:51 #2722 [Verbose] > │ struct (v179, v180) │
00:00:51 #2723 [Verbose] > │ else │
00:00:51 #2724 [Verbose] > │ let v181 : uint64 = v177 - v171 │
00:00:51 #2725 [Verbose] > │ let struct (v182 : UH2, v183 : US0) = v100.[int v181] │
00:00:51 #2726 [Verbose] > │ struct (v182, v183) │
00:00:51 #2727 [Verbose] > │ v174.[int v177] <- struct (v184, v185) │
00:00:51 #2728 [Verbose] > │ let v186 : uint64 = v177 + 1UL │
00:00:51 #2729 [Verbose] > │ v175.l0 <- v186 │
00:00:51 #2730 [Verbose] > │ () │
00:00:51 #2731 [Verbose] > │ let v187 : uint64 = System.Convert.ToUInt64 v174.Length │
00:00:51 #2732 [Verbose] > │ let v188 : ((string []) []) = Array.zeroCreate<(string [])> │
00:00:51 #2733 [Verbose] > │ (System.Convert.ToInt32(v187)) │
00:00:51 #2734 [Verbose] > │ let v189 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2735 [Verbose] > │ while method4(v187, v189) do │
00:00:51 #2736 [Verbose] > │ let v191 : uint64 = v189.l0 │
00:00:51 #2737 [Verbose] > │ let struct (v192 : UH2, v193 : US0) = v174.[int v191] │
00:00:51 #2738 [Verbose] > │ let v194 : (string []) = method25(v192) │
00:00:51 #2739 [Verbose] > │ v188.[int v191] <- v194 │
00:00:51 #2740 [Verbose] > │ let v195 : uint64 = v191 + 1UL │
00:00:51 #2741 [Verbose] > │ v189.l0 <- v195 │
00:00:51 #2742 [Verbose] > │ () │
00:00:51 #2743 [Verbose] > │ let v196 : ((string []) []) = v188 |> Array.transpose │
00:00:51 #2744 [Verbose] > │ let v197 : uint64 = System.Convert.ToUInt64 v196.Length │
00:00:51 #2745 [Verbose] > │ let v198 : (int64 []) = Array.zeroCreate<int64> │
00:00:51 #2746 [Verbose] > │ (System.Convert.ToInt32(v197)) │
00:00:51 #2747 [Verbose] > │ let v199 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2748 [Verbose] > │ while method4(v197, v199) do │
00:00:51 #2749 [Verbose] > │ let v201 : uint64 = v199.l0 │
00:00:51 #2750 [Verbose] > │ let v202 : (string []) = v196.[int v201] │
00:00:51 #2751 [Verbose] > │ let v203 : uint64 = System.Convert.ToUInt64 v202.Length │
00:00:51 #2752 [Verbose] > │ let v204 : (int64 []) = Array.zeroCreate<int64> │
00:00:51 #2753 [Verbose] > │ (System.Convert.ToInt32(v203)) │
00:00:51 #2754 [Verbose] > │ let v205 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2755 [Verbose] > │ while method4(v203, v205) do │
00:00:51 #2756 [Verbose] > │ let v207 : uint64 = v205.l0 │
00:00:51 #2757 [Verbose] > │ let v208 : string = v202.[int v207] │
00:00:51 #2758 [Verbose] > │ let v209 : int64 = System.Convert.ToInt64 v208.Length │
00:00:51 #2759 [Verbose] > │ v204.[int v207] <- v209 │
00:00:51 #2760 [Verbose] > │ let v210 : uint64 = v207 + 1UL │
00:00:51 #2761 [Verbose] > │ v205.l0 <- v210 │
00:00:51 #2762 [Verbose] > │ () │
00:00:51 #2763 [Verbose] > │ let v211 : (int64 []) = v204 |> Array.sortDescending │
00:00:51 #2764 [Verbose] > │ let v212 : int64 option = v211 |> Array.tryItem 0 │
00:00:51 #2765 [Verbose] > │ let v213 : (int64 -> US1) = closure5() │
00:00:51 #2766 [Verbose] > │ let v214 : US1 = US1_0 │
00:00:51 #2767 [Verbose] > │ let v215 : US1 = v212 |> Option.map v213 |> Option.defaultValue v214 │
00:00:51 #2768 [Verbose] > │ let v218 : int64 = │
00:00:51 #2769 [Verbose] > │ match v215 with │
00:00:51 #2770 [Verbose] > │ | US1_0 -> (* None *) │
00:00:51 #2771 [Verbose] > │ 0L │
00:00:51 #2772 [Verbose] > │ | US1_1(v216) -> (* Some *) │
00:00:51 #2773 [Verbose] > │ v216 │
00:00:51 #2774 [Verbose] > │ v198.[int v201] <- v218 │
00:00:51 #2775 [Verbose] > │ let v219 : uint64 = v201 + 1UL │
00:00:51 #2776 [Verbose] > │ v199.l0 <- v219 │
00:00:51 #2777 [Verbose] > │ () │
00:00:51 #2778 [Verbose] > │ let v220 : uint64 = System.Convert.ToUInt64 v198.Length │
00:00:51 #2779 [Verbose] > │ let v221 : UH6 = UH6_1 │
00:00:51 #2780 [Verbose] > │ let v222 : Mut3 = {l0 = 0UL; l1 = v221; l2 = 0} : Mut3 │
00:00:51 #2781 [Verbose] > │ while method28(v220, v222) do │
00:00:51 #2782 [Verbose] > │ let v224 : uint64 = v222.l0 │
00:00:51 #2783 [Verbose] > │ let struct (v225 : UH6, v226 : int32) = v222.l1, v222.l2 │
00:00:51 #2784 [Verbose] > │ let v227 : int64 = v198.[int v224] │
00:00:51 #2785 [Verbose] > │ let v228 : int32 = v226 + 1 │
00:00:51 #2786 [Verbose] > │ let v229 : uint64 = v224 + 1UL │
00:00:51 #2787 [Verbose] > │ let v230 : UH6 = UH6_0(v226, v227, v225) │
00:00:51 #2788 [Verbose] > │ v222.l0 <- v229 │
00:00:51 #2789 [Verbose] > │ v222.l1 <- v230 │
00:00:51 #2790 [Verbose] > │ v222.l2 <- v228 │
00:00:51 #2791 [Verbose] > │ () │
00:00:51 #2792 [Verbose] > │ let struct (v231 : UH6, v232 : int32) = v222.l1, v222.l2 │
00:00:51 #2793 [Verbose] > │ let v233 : UH6 = UH6_1 │
00:00:51 #2794 [Verbose] > │ let v234 : UH6 = method29(v231, v233) │
00:00:51 #2795 [Verbose] > │ let v235 : (struct (int32 * int64) []) = method30(v234) │
00:00:51 #2796 [Verbose] > │ let v236 : Map<int32, int64> = v235 |> Array.map (fun (struct (a, b)) -> │
00:00:51 #2797 [Verbose] > │ a, b) |> Map.ofArray │
00:00:51 #2798 [Verbose] > │ let v237 : (struct ((string []) * US0) []) = Array.zeroCreate<struct │
00:00:51 #2799 [Verbose] > │ ((string []) * US0)> (System.Convert.ToInt32(v187)) │
00:00:51 #2800 [Verbose] > │ let v238 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2801 [Verbose] > │ while method4(v187, v238) do │
00:00:51 #2802 [Verbose] > │ let v240 : uint64 = v238.l0 │
00:00:51 #2803 [Verbose] > │ let struct (v241 : UH2, v242 : US0) = v174.[int v240] │
00:00:51 #2804 [Verbose] > │ let v243 : UH7 = UH7_1 │
00:00:51 #2805 [Verbose] > │ let v244 : int32 = 0 │
00:00:51 #2806 [Verbose] > │ let struct (v245 : UH7, v246 : int32) = method33(v241, v243, v244) │
00:00:51 #2807 [Verbose] > │ let v247 : UH7 = UH7_1 │
00:00:51 #2808 [Verbose] > │ let v248 : UH7 = method34(v245, v247) │
00:00:51 #2809 [Verbose] > │ let v249 : UH2 = UH2_1 │
00:00:51 #2810 [Verbose] > │ let v250 : UH2 = method35(v236, v248, v249) │
00:00:51 #2811 [Verbose] > │ let v251 : (string []) = method9(v250) │
00:00:51 #2812 [Verbose] > │ v237.[int v240] <- struct (v251, v242) │
00:00:51 #2813 [Verbose] > │ let v252 : uint64 = v240 + 1UL │
00:00:51 #2814 [Verbose] > │ v238.l0 <- v252 │
00:00:51 #2815 [Verbose] > │ () │
00:00:51 #2816 [Verbose] > │ System.Console.WriteLine v2 │
00:00:51 #2817 [Verbose] > │ let v253 : uint64 = System.Convert.ToUInt64 v237.Length │
00:00:51 #2818 [Verbose] > │ let v254 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2819 [Verbose] > │ while method4(v253, v254) do │
00:00:51 #2820 [Verbose] > │ let v256 : uint64 = v254.l0 │
00:00:51 #2821 [Verbose] > │ let struct (v257 : (string []), v258 : US0) = v237.[int v256] │
00:00:51 #2822 [Verbose] > │ match v258 with │
00:00:51 #2823 [Verbose] > │ | US0_0 -> (* None *) │
00:00:51 #2824 [Verbose] > │ let mutable result = None │
00:00:51 #2825 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:00:51 #2826 [Verbose] > │ () │
00:00:51 #2827 [Verbose] > │ #endif │
00:00:51 #2828 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:00:51 #2829 [Verbose] > │ () │
00:00:51 #2830 [Verbose] > │ #endif │
00:00:51 #2831 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:51 #2832 [Verbose] > │ System.Console.ResetColor () │
00:00:51 #2833 [Verbose] > │ () │
00:00:51 #2834 [Verbose] > │ #endif │
00:00:51 #2835 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:51 #2836 [Verbose] > │ System.Console.ResetColor () │
00:00:51 #2837 [Verbose] > │ () │
00:00:51 #2838 [Verbose] > │ #endif │
00:00:51 #2839 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:00:51 #2840 [Verbose] > │ System.Console.ResetColor () │
00:00:51 #2841 [Verbose] > │ () │
00:00:51 #2842 [Verbose] > │ #endif │
00:00:51 #2843 [Verbose] > │ |> fun x -> result <- Some x │
00:00:51 #2844 [Verbose] > │ result |> Option.get │
00:00:51 #2845 [Verbose] > │ () │
00:00:51 #2846 [Verbose] > │ | US0_1(v259) -> (* Some *) │
00:00:51 #2847 [Verbose] > │ let mutable result = None │
00:00:51 #2848 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:00:51 #2849 [Verbose] > │ () │
00:00:51 #2850 [Verbose] > │ #endif │
00:00:51 #2851 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:00:51 #2852 [Verbose] > │ () │
00:00:51 #2853 [Verbose] > │ #endif │
00:00:51 #2854 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:51 #2855 [Verbose] > │ System.Console.ForegroundColor <- v259 │
00:00:51 #2856 [Verbose] > │ () │
00:00:51 #2857 [Verbose] > │ #endif │
00:00:51 #2858 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:51 #2859 [Verbose] > │ System.Console.ForegroundColor <- v259 │
00:00:51 #2860 [Verbose] > │ () │
00:00:51 #2861 [Verbose] > │ #endif │
00:00:51 #2862 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:00:51 #2863 [Verbose] > │ System.Console.ForegroundColor <- v259 │
00:00:51 #2864 [Verbose] > │ () │
00:00:51 #2865 [Verbose] > │ #endif │
00:00:51 #2866 [Verbose] > │ |> fun x -> result <- Some x │
00:00:51 #2867 [Verbose] > │ result |> Option.get │
00:00:51 #2868 [Verbose] > │ () │
00:00:51 #2869 [Verbose] > │ let v260 : string = "\t| " │
00:00:51 #2870 [Verbose] > │ let v261 : string = System.String.Join (v260, v257) │
00:00:51 #2871 [Verbose] > │ System.Console.WriteLine v261 │
00:00:51 #2872 [Verbose] > │ let mutable result = None │
00:00:51 #2873 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:00:51 #2874 [Verbose] > │ () │
00:00:51 #2875 [Verbose] > │ #endif │
00:00:51 #2876 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:00:51 #2877 [Verbose] > │ () │
00:00:51 #2878 [Verbose] > │ #endif │
00:00:51 #2879 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:51 #2880 [Verbose] > │ System.Console.ResetColor () │
00:00:51 #2881 [Verbose] > │ () │
00:00:51 #2882 [Verbose] > │ #endif │
00:00:51 #2883 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:51 #2884 [Verbose] > │ System.Console.ResetColor () │
00:00:51 #2885 [Verbose] > │ () │
00:00:51 #2886 [Verbose] > │ #endif │
00:00:51 #2887 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:00:51 #2888 [Verbose] > │ System.Console.ResetColor () │
00:00:51 #2889 [Verbose] > │ () │
00:00:51 #2890 [Verbose] > │ #endif │
00:00:51 #2891 [Verbose] > │ |> fun x -> result <- Some x │
00:00:51 #2892 [Verbose] > │ result |> Option.get │
00:00:51 #2893 [Verbose] > │ let v262 : uint64 = v256 + 1UL │
00:00:51 #2894 [Verbose] > │ v254.l0 <- v262 │
00:00:51 #2895 [Verbose] > │ () │
00:00:51 #2896 [Verbose] > │ let v263 : ((float []) []) = Array.zeroCreate<(float [])> │
00:00:51 #2897 [Verbose] > │ (System.Convert.ToInt32(v99)) │
00:00:51 #2898 [Verbose] > │ let v264 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2899 [Verbose] > │ while method4(v99, v264) do │
00:00:51 #2900 [Verbose] > │ let v266 : uint64 = v264.l0 │
00:00:51 #2901 [Verbose] > │ let struct (v267 : string, v268 : string, v269 : string, v270 : │
00:00:51 #2902 [Verbose] > │ (int64 [])) = v24.[int v266] │
00:00:51 #2903 [Verbose] > │ let v271 : (int64 -> float) = float │
00:00:51 #2904 [Verbose] > │ let v272 : uint64 = System.Convert.ToUInt64 v270.Length │
00:00:51 #2905 [Verbose] > │ let v273 : (float []) = Array.zeroCreate<float> │
00:00:51 #2906 [Verbose] > │ (System.Convert.ToInt32(v272)) │
00:00:51 #2907 [Verbose] > │ let v274 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2908 [Verbose] > │ while method4(v272, v274) do │
00:00:51 #2909 [Verbose] > │ let v276 : uint64 = v274.l0 │
00:00:51 #2910 [Verbose] > │ let v277 : int64 = v270.[int v276] │
00:00:51 #2911 [Verbose] > │ let v278 : float = v271 v277 │
00:00:51 #2912 [Verbose] > │ v273.[int v276] <- v278 │
00:00:51 #2913 [Verbose] > │ let v279 : uint64 = v276 + 1UL │
00:00:51 #2914 [Verbose] > │ v274.l0 <- v279 │
00:00:51 #2915 [Verbose] > │ () │
00:00:51 #2916 [Verbose] > │ v263.[int v266] <- v273 │
00:00:51 #2917 [Verbose] > │ let v280 : uint64 = v266 + 1UL │
00:00:51 #2918 [Verbose] > │ v264.l0 <- v280 │
00:00:51 #2919 [Verbose] > │ () │
00:00:51 #2920 [Verbose] > │ let v281 : ((float []) []) = v263 |> Array.transpose │
00:00:51 #2921 [Verbose] > │ let v282 : uint64 = System.Convert.ToUInt64 v281.Length │
00:00:51 #2922 [Verbose] > │ let v283 : (float []) = Array.zeroCreate<float> │
00:00:51 #2923 [Verbose] > │ (System.Convert.ToInt32(v282)) │
00:00:51 #2924 [Verbose] > │ let v284 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2925 [Verbose] > │ while method4(v282, v284) do │
00:00:51 #2926 [Verbose] > │ let v286 : uint64 = v284.l0 │
00:00:51 #2927 [Verbose] > │ let v287 : (float []) = v281.[int v286] │
00:00:51 #2928 [Verbose] > │ let v288 : float = v287 |> Array.average │
00:00:51 #2929 [Verbose] > │ v283.[int v286] <- v288 │
00:00:51 #2930 [Verbose] > │ let v289 : uint64 = v286 + 1UL │
00:00:51 #2931 [Verbose] > │ v284.l0 <- v289 │
00:00:51 #2932 [Verbose] > │ () │
00:00:51 #2933 [Verbose] > │ let v290 : (float -> int64) = int64 │
00:00:51 #2934 [Verbose] > │ let v291 : uint64 = System.Convert.ToUInt64 v283.Length │
00:00:51 #2935 [Verbose] > │ let v292 : (int64 []) = Array.zeroCreate<int64> │
00:00:51 #2936 [Verbose] > │ (System.Convert.ToInt32(v291)) │
00:00:51 #2937 [Verbose] > │ let v293 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2938 [Verbose] > │ while method4(v291, v293) do │
00:00:51 #2939 [Verbose] > │ let v295 : uint64 = v293.l0 │
00:00:51 #2940 [Verbose] > │ let v296 : float = v283.[int v295] │
00:00:51 #2941 [Verbose] > │ let v297 : int64 = v290 v296 │
00:00:51 #2942 [Verbose] > │ v292.[int v295] <- v297 │
00:00:51 #2943 [Verbose] > │ let v298 : uint64 = v295 + 1UL │
00:00:51 #2944 [Verbose] > │ v293.l0 <- v298 │
00:00:51 #2945 [Verbose] > │ () │
00:00:51 #2946 [Verbose] > │ let v299 : uint64 = System.Convert.ToUInt64 v292.Length │
00:00:51 #2947 [Verbose] > │ let v300 : UH6 = UH6_1 │
00:00:51 #2948 [Verbose] > │ let v301 : Mut3 = {l0 = 0UL; l1 = v300; l2 = 0} : Mut3 │
00:00:51 #2949 [Verbose] > │ while method28(v299, v301) do │
00:00:51 #2950 [Verbose] > │ let v303 : uint64 = v301.l0 │
00:00:51 #2951 [Verbose] > │ let struct (v304 : UH6, v305 : int32) = v301.l1, v301.l2 │
00:00:51 #2952 [Verbose] > │ let v306 : int64 = v292.[int v303] │
00:00:51 #2953 [Verbose] > │ let v307 : int32 = v305 + 1 │
00:00:51 #2954 [Verbose] > │ let v308 : uint64 = v303 + 1UL │
00:00:51 #2955 [Verbose] > │ let v309 : UH6 = UH6_0(v305, v306, v304) │
00:00:51 #2956 [Verbose] > │ v301.l0 <- v308 │
00:00:51 #2957 [Verbose] > │ v301.l1 <- v309 │
00:00:51 #2958 [Verbose] > │ v301.l2 <- v307 │
00:00:51 #2959 [Verbose] > │ () │
00:00:51 #2960 [Verbose] > │ let struct (v310 : UH6, v311 : int32) = v301.l1, v301.l2 │
00:00:51 #2961 [Verbose] > │ let v312 : UH6 = UH6_1 │
00:00:51 #2962 [Verbose] > │ let v313 : UH6 = method29(v310, v312) │
00:00:51 #2963 [Verbose] > │ let v314 : (struct (int32 * int64) []) = method36(v313) │
00:00:51 #2964 [Verbose] > │ System.Console.WriteLine v2 │
00:00:51 #2965 [Verbose] > │ let v315 : string = "Average Ranking " │
00:00:51 #2966 [Verbose] > │ System.Console.WriteLine v315 │
00:00:51 #2967 [Verbose] > │ let v316 : (struct (int32 * int64) -> int64) = closure6() │
00:00:51 #2968 [Verbose] > │ let v317 : (struct (int32 * int64) []) = v314 |> Array.sortBy v316 │
00:00:51 #2969 [Verbose] > │ let v318 : uint64 = System.Convert.ToUInt64 v317.Length │
00:00:51 #2970 [Verbose] > │ let v319 : Mut0 = {l0 = 0UL} : Mut0 │
00:00:51 #2971 [Verbose] > │ while method4(v318, v319) do │
00:00:51 #2972 [Verbose] > │ let v321 : uint64 = v319.l0 │
00:00:51 #2973 [Verbose] > │ let struct (v322 : int32, v323 : int64) = v317.[int v321] │
00:00:51 #2974 [Verbose] > │ let v324 : string = $"Test case %d{v322 + 1}. Average Time: %A{v323} │
00:00:51 #2975 [Verbose] > │ " │
00:00:51 #2976 [Verbose] > │ System.Console.WriteLine v324 │
00:00:51 #2977 [Verbose] > │ let v325 : uint64 = v321 + 1UL │
00:00:51 #2978 [Verbose] > │ v319.l0 <- v325 │
00:00:51 #2979 [Verbose] > │ () │
00:00:51 #2980 [Verbose] > │ () │
00:00:51 #2981 [Verbose] > │ method0() │
00:00:51 #2982 [Verbose] > │ │
00:00:51 #2983 [Verbose] > │ │
00:00:51 #2984 [Verbose] > │ │
00:00:51 #2985 [Verbose] > │ Test: v0 │
00:00:51 #2986 [Verbose] > │ │
00:00:51 #2987 [Verbose] > │ Solution: "abc" │
00:00:51 #2988 [Verbose] > │ Test case 1. F. Time: 1114 │
00:00:51 #2989 [Verbose] > │ Test case 2. FA. Time: 1364 │
00:00:51 #2990 [Verbose] > │ │
00:00:51 #2991 [Verbose] > │ Solution: "abcde" │
00:00:51 #2992 [Verbose] > │ Test case 1. F. Time: 1428 │
00:00:51 #2993 [Verbose] > │ Test case 2. FA. Time: 2009 │
00:00:51 #2994 [Verbose] > │ │
00:00:51 #2995 [Verbose] > │ Solution: "abcdefghi" │
00:00:51 #2996 [Verbose] > │ Test case 1. F. Time: 2056 │
00:00:51 #2997 [Verbose] > │ Test case 2. FA. Time: 2332 │
00:00:51 #2998 [Verbose] > │ │
00:00:51 #2999 [Verbose] > │ Solution: "abab" │
00:00:51 #3000 [Verbose] > │ Test case 1. F. Time: 1141 │
00:00:51 #3001 [Verbose] > │ Test case 2. FA. Time: 1218 │
00:00:51 #3002 [Verbose] > │ │
00:00:51 #3003 [Verbose] > │ Solution: "aa" │
00:00:51 #3004 [Verbose] > │ Test case 1. F. Time: 719 │
00:00:51 #3005 [Verbose] > │ Test case 2. FA. Time: 977 │
00:00:51 #3006 [Verbose] > │ │
00:00:51 #3007 [Verbose] > │ Solution: "z" │
00:00:51 #3008 [Verbose] > │ Test case 1. F. Time: 245 │
00:00:51 #3009 [Verbose] > │ Test case 2. FA. Time: 206 │
00:00:51 #3010 [Verbose] > │ │
00:00:51 #3011 [Verbose] > │ Input | Expected │
00:00:51 #3012 [Verbose] > │ │
00:00:51 #3013 [Verbose] > │ | Result │
00:00:51 #3014 [Verbose] > │ │
00:00:51 #3015 [Verbose] > │ | Best │
00:00:51 #3016 [Verbose] > │ --- | --- │
00:00:51 #3017 [Verbose] > │ │
00:00:51 #3018 [Verbose] > │ | --- │
00:00:51 #3019 [Verbose] > │ │
00:00:51 #3020 [Verbose] > │ | --- │
00:00:51 #3021 [Verbose] > │ "abc" | "bca cab abc" │
00:00:51 #3022 [Verbose] > │ │
00:00:51 #3023 [Verbose] > │ | "bca cab abc" │
00:00:51 #3024 [Verbose] > │ │
00:00:51 #3025 [Verbose] > │ | struct (1L, 1114L) │
00:00:51 #3026 [Verbose] > │ "abcde" | "bcdea cdeab deabc eabcd abcde" │
00:00:51 #3027 [Verbose] > │ | "bcdea cdeab deabc eabcd abcde" │
00:00:51 #3028 [Verbose] > │ | struct (1L, 1428L) │
00:00:51 #3029 [Verbose] > │ "abcdefghi" | "bcdefghia cdefghiab defghiabc efghiabcd fghiabcde ghiabcdef │
00:00:51 #3030 [Verbose] > │ hiabcdefg iabcdefgh abcdefghi" | "bcdefghia cdefghiab defghiabc efghiabcd │
00:00:51 #3031 [Verbose] > │ fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi" | struct (1L, 2056L) │
00:00:51 #3032 [Verbose] > │ "abab" | "baba abab baba abab" │
00:00:51 #3033 [Verbose] > │ | "baba abab baba abab" │
00:00:51 #3034 [Verbose] > │ | struct (1L, 1141L) │
00:00:51 #3035 [Verbose] > │ "aa" | "aa aa" │
00:00:51 #3036 [Verbose] > │ │
00:00:51 #3037 [Verbose] > │ | "aa aa" │
00:00:51 #3038 [Verbose] > │ │
00:00:51 #3039 [Verbose] > │ | struct (1L, 719L) │
00:00:51 #3040 [Verbose] > │ "z" | "z" │
00:00:51 #3041 [Verbose] > │ │
00:00:51 #3042 [Verbose] > │ | "z" │
00:00:51 #3043 [Verbose] > │ │
00:00:51 #3044 [Verbose] > │ | struct (2L, 206L) │
00:00:51 #3045 [Verbose] > │ │
00:00:51 #3046 [Verbose] > │ Average Ranking │
00:00:51 #3047 [Verbose] > │ Test case 1. Average Time: 1117L │
00:00:51 #3048 [Verbose] > │ Test case 2. Average Time: 1351L │
00:00:51 #3049 [Verbose] > │ │
00:00:51 #3050 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:51 #3051 [Verbose] >
00:00:51 #3052 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:51 #3053 [Verbose] > // // test
00:00:51 #3054 [Verbose] > // // rust=
00:00:51 #3055 [Verbose] > // // print_code=false
00:00:51 #3056 [Verbose] >
00:00:51 #3057 [Verbose] > // rotate_strings_tests ()
00:00:52 #3058 [Verbose] >
00:00:52 #3059 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:52 #3060 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:52 #3061 [Verbose] > │ ## binary_search_tests │
00:00:52 #3062 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:52 #3063 [Verbose] >
00:00:52 #3064 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:52 #3065 [Verbose] > // // test
00:00:52 #3066 [Verbose] > // // timeout=90000
00:00:52 #3067 [Verbose] > // // print_code=true
00:00:52 #3068 [Verbose] >
00:00:52 #3069 [Verbose] > inl binary_search_semi_open_1 arr target left right =
00:00:52 #3070 [Verbose] > inl rec body left right =
00:00:52 #3071 [Verbose] > if left >= right
00:00:52 #3072 [Verbose] > then None
00:00:52 #3073 [Verbose] > else
00:00:52 #3074 [Verbose] > inl mid = (left + right) / 2
00:00:52 #3075 [Verbose] > inl item = index arr mid
00:00:52 #3076 [Verbose] > if item = target
00:00:52 #3077 [Verbose] > then Some mid
00:00:52 #3078 [Verbose] > elif item < target
00:00:52 #3079 [Verbose] > then loop (mid + 1) right
00:00:52 #3080 [Verbose] > else loop left mid
00:00:52 #3081 [Verbose] > and inl loop left right =
00:00:52 #3082 [Verbose] > if var_is right |> not
00:00:52 #3083 [Verbose] > then body left right
00:00:52 #3084 [Verbose] > else
00:00:52 #3085 [Verbose] > inl left = dyn left
00:00:52 #3086 [Verbose] > join body left right
00:00:52 #3087 [Verbose] > loop left right
00:00:52 #3088 [Verbose] >
00:00:52 #3089 [Verbose] > inl binary_search_closed_1 arr target left right =
00:00:52 #3090 [Verbose] > inl rec body left right =
00:00:52 #3091 [Verbose] > if left > right
00:00:52 #3092 [Verbose] > then None
00:00:52 #3093 [Verbose] > else
00:00:52 #3094 [Verbose] > inl mid = (left + right) / 2
00:00:52 #3095 [Verbose] > inl item = index arr mid
00:00:52 #3096 [Verbose] > if item = target
00:00:52 #3097 [Verbose] > then Some mid
00:00:52 #3098 [Verbose] > elif item < target
00:00:52 #3099 [Verbose] > then loop (mid + 1) right
00:00:52 #3100 [Verbose] > else loop left (mid - 1)
00:00:52 #3101 [Verbose] > and inl loop left right =
00:00:52 #3102 [Verbose] > if var_is right |> not
00:00:52 #3103 [Verbose] > then body left right
00:00:52 #3104 [Verbose] > else
00:00:52 #3105 [Verbose] > inl left = dyn left
00:00:52 #3106 [Verbose] > join body left right
00:00:52 #3107 [Verbose] > loop left right
00:00:52 #3108 [Verbose] >
00:00:52 #3109 [Verbose] > inl binary_search_semi_open_2 arr target left right =
00:00:52 #3110 [Verbose] > let rec body left right =
00:00:52 #3111 [Verbose] > if left >= right
00:00:52 #3112 [Verbose] > then None
00:00:52 #3113 [Verbose] > else
00:00:52 #3114 [Verbose] > inl mid = (left + right) / 2
00:00:52 #3115 [Verbose] > inl item = index arr mid
00:00:52 #3116 [Verbose] > if item = target
00:00:52 #3117 [Verbose] > then Some mid
00:00:52 #3118 [Verbose] > elif item < target
00:00:52 #3119 [Verbose] > then loop (mid + 1) right
00:00:52 #3120 [Verbose] > else loop left mid
00:00:52 #3121 [Verbose] > and inl loop left right = body left right
00:00:52 #3122 [Verbose] > loop left right
00:00:52 #3123 [Verbose] >
00:00:52 #3124 [Verbose] > inl binary_search_closed_2 arr target left right =
00:00:52 #3125 [Verbose] > let rec body left right =
00:00:52 #3126 [Verbose] > if left > right
00:00:52 #3127 [Verbose] > then None
00:00:52 #3128 [Verbose] > else
00:00:52 #3129 [Verbose] > inl mid = (left + right) / 2
00:00:52 #3130 [Verbose] > inl item = index arr mid
00:00:52 #3131 [Verbose] > if item = target
00:00:52 #3132 [Verbose] > then Some mid
00:00:52 #3133 [Verbose] > elif item < target
00:00:52 #3134 [Verbose] > then loop (mid + 1) right
00:00:52 #3135 [Verbose] > else loop left (mid - 1)
00:00:52 #3136 [Verbose] > and inl loop left right = body left right
00:00:52 #3137 [Verbose] > loop left right
00:00:52 #3138 [Verbose] >
00:00:52 #3139 [Verbose] > inl get_solutions () =
00:00:52 #3140 [Verbose] > [[
00:00:52 #3141 [Verbose] > "semi_open_1",
00:00:52 #3142 [Verbose] > fun (arr, (target, len)) =>
00:00:52 #3143 [Verbose] > binary_search_semi_open_1 arr target 0 len
00:00:52 #3144 [Verbose] >
00:00:52 #3145 [Verbose] > "closed_1",
00:00:52 #3146 [Verbose] > fun (arr, (target, len)) =>
00:00:52 #3147 [Verbose] > binary_search_closed_1 arr target 0 (len - 1)
00:00:52 #3148 [Verbose] >
00:00:52 #3149 [Verbose] > "semi_open_2",
00:00:52 #3150 [Verbose] > fun (arr, (target, len)) =>
00:00:52 #3151 [Verbose] > binary_search_semi_open_2 arr target 0 len
00:00:52 #3152 [Verbose] >
00:00:52 #3153 [Verbose] > "closed_2",
00:00:52 #3154 [Verbose] > fun (arr, (target, len)) =>
00:00:52 #3155 [Verbose] > binary_search_closed_2 arr target 0 (len - 1)
00:00:52 #3156 [Verbose] > ]]
00:00:52 #3157 [Verbose] >
00:00:52 #3158 [Verbose] > inl rec binary_search_tests () =
00:00:52 #3159 [Verbose] > inl arr_with_len target len arr =
00:00:52 #3160 [Verbose] > arr, (target, (len |> optionm'.default_with fun () => length arr))
00:00:52 #3161 [Verbose] >
00:00:52 #3162 [Verbose] > inl test_cases = [[
00:00:52 #3163 [Verbose] > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 6 None), (Some 3i32)
00:00:52 #3164 [Verbose] > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 1 None), (Some 0i32)
00:00:52 #3165 [Verbose] > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 11 None), (Some 6i32)
00:00:52 #3166 [Verbose] > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 12 None), None
00:00:52 #3167 [Verbose] > ((am'.init_series 1i32 100 1) |> arr_with_len 60 None), (Some 59)
00:00:52 #3168 [Verbose] >
00:00:52 #3169 [Verbose] > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 6 (Some 7)), (Some
00:00:52 #3170 [Verbose] > 3i32)
00:00:52 #3171 [Verbose] > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 1 (Some 7)), (Some
00:00:52 #3172 [Verbose] > 0i32)
00:00:52 #3173 [Verbose] > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 11 (Some 7)), (Some
00:00:52 #3174 [Verbose] > 6i32)
00:00:52 #3175 [Verbose] > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 12 (Some 7)), None
00:00:52 #3176 [Verbose] > ((am'.init_series 1i32 100 1) |> arr_with_len 60 (Some 100)), (Some 59)
00:00:52 #3177 [Verbose] > ]]
00:00:52 #3178 [Verbose] >
00:00:52 #3179 [Verbose] > inl solutions = get_solutions ()
00:00:52 #3180 [Verbose] >
00:00:52 #3181 [Verbose] > // inl is_fast () = true
00:00:52 #3182 [Verbose] >
00:00:52 #3183 [Verbose] > inl count =
00:00:52 #3184 [Verbose] > if is_fast ()
00:00:52 #3185 [Verbose] > then 1000i32
00:00:52 #3186 [Verbose] > else 8000000i32
00:00:52 #3187 [Verbose] >
00:00:52 #3188 [Verbose] > run_all (nameof binary_search_tests) count solutions test_cases
00:00:52 #3189 [Verbose] > |> sort_result_list
00:00:52 #3190 [Verbose] >
00:00:52 #3191 [Verbose] >
00:00:52 #3192 [Verbose] > let main () =
00:00:52 #3193 [Verbose] > binary_search_tests ()
00:01:17 #3194 [Verbose] >
00:01:18 #3195 [Verbose] > ╭─[ 25.83s - stdout ]──────────────────────────────────────────────────────────╮
00:01:18 #3196 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:01:18 #3197 [Verbose] > │ and [<Struct>] US0 = │
00:01:18 #3198 [Verbose] > │ | US0_0 │
00:01:18 #3199 [Verbose] > │ | US0_1 of f1_0 : int32 │
00:01:18 #3200 [Verbose] > │ and UH0 = │
00:01:18 #3201 [Verbose] > │ | UH0_0 of (int32 []) * int32 * int32 * US0 * UH0 │
00:01:18 #3202 [Verbose] > │ | UH0_1 │
00:01:18 #3203 [Verbose] > │ and Mut1 = {mutable l0 : uint64} │
00:01:18 #3204 [Verbose] > │ and UH1 = │
00:01:18 #3205 [Verbose] > │ | UH1_0 of int32 * string * (struct ((int32 []) * int32 * int32) -> US0) │
00:01:18 #3206 [Verbose] > │ * UH1 │
00:01:18 #3207 [Verbose] > │ | UH1_1 │
00:01:18 #3208 [Verbose] > │ and UH2 = │
00:01:18 #3209 [Verbose] > │ | UH2_0 of string * UH2 │
00:01:18 #3210 [Verbose] > │ | UH2_1 │
00:01:18 #3211 [Verbose] > │ and [<Struct>] US1 = │
00:01:18 #3212 [Verbose] > │ | US1_0 │
00:01:18 #3213 [Verbose] > │ | US1_1 of f1_0 : System.ConsoleColor │
00:01:18 #3214 [Verbose] > │ and UH3 = │
00:01:18 #3215 [Verbose] > │ | UH3_0 of int64 * int64 * UH3 │
00:01:18 #3216 [Verbose] > │ | UH3_1 │
00:01:18 #3217 [Verbose] > │ and Mut2 = {mutable l0 : uint64; mutable l1 : UH3; mutable l2 : int64} │
00:01:18 #3218 [Verbose] > │ and UH4 = │
00:01:18 #3219 [Verbose] > │ | UH4_0 of UH2 * US1 * UH4 │
00:01:18 #3220 [Verbose] > │ | UH4_1 │
00:01:18 #3221 [Verbose] > │ and [<Struct>] US2 = │
00:01:18 #3222 [Verbose] > │ | US2_0 │
00:01:18 #3223 [Verbose] > │ | US2_1 of f1_0 : int64 │
00:01:18 #3224 [Verbose] > │ and UH5 = │
00:01:18 #3225 [Verbose] > │ | UH5_0 of int32 * int64 * UH5 │
00:01:18 #3226 [Verbose] > │ | UH5_1 │
00:01:18 #3227 [Verbose] > │ and Mut3 = {mutable l0 : uint64; mutable l1 : UH5; mutable l2 : int32} │
00:01:18 #3228 [Verbose] > │ and UH6 = │
00:01:18 #3229 [Verbose] > │ | UH6_0 of int32 * string * UH6 │
00:01:18 #3230 [Verbose] > │ | UH6_1 │
00:01:18 #3231 [Verbose] > │ let rec method1 (v0 : (int32 [])) : (int32 []) = │
00:01:18 #3232 [Verbose] > │ v0 │
00:01:18 #3233 [Verbose] > │ and method2 (v0 : Mut0) : bool = │
00:01:18 #3234 [Verbose] > │ let v1 : int32 = v0.l0 │
00:01:18 #3235 [Verbose] > │ let v2 : bool = v1 < 100 │
00:01:18 #3236 [Verbose] > │ v2 │
00:01:18 #3237 [Verbose] > │ and method4 (v0 : UH0, v1 : uint64) : uint64 = │
00:01:18 #3238 [Verbose] > │ match v0 with │
00:01:18 #3239 [Verbose] > │ | UH0_0(v2, v3, v4, v5, v6) -> (* Cons *) │
00:01:18 #3240 [Verbose] > │ let v7 : uint64 = v1 + 1UL │
00:01:18 #3241 [Verbose] > │ method4(v6, v7) │
00:01:18 #3242 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:01:18 #3243 [Verbose] > │ v1 │
00:01:18 #3244 [Verbose] > │ and method5 (v0 : (struct ((int32 []) * int32 * int32 * US0) []), v1 : UH0, │
00:01:18 #3245 [Verbose] > │ v2 : uint64) : uint64 = │
00:01:18 #3246 [Verbose] > │ match v1 with │
00:01:18 #3247 [Verbose] > │ | UH0_0(v3, v4, v5, v6, v7) -> (* Cons *) │
00:01:18 #3248 [Verbose] > │ v0.[int v2] <- struct (v3, v4, v5, v6) │
00:01:18 #3249 [Verbose] > │ let v8 : uint64 = v2 + 1UL │
00:01:18 #3250 [Verbose] > │ method5(v0, v7, v8) │
00:01:18 #3251 [Verbose] > │ | UH0_1 -> (* Nil *) │
00:01:18 #3252 [Verbose] > │ v2 │
00:01:18 #3253 [Verbose] > │ and method3 (v0 : UH0) : (struct ((int32 []) * int32 * int32 * US0) []) = │
00:01:18 #3254 [Verbose] > │ let v1 : uint64 = 0UL │
00:01:18 #3255 [Verbose] > │ let v2 : uint64 = method4(v0, v1) │
00:01:18 #3256 [Verbose] > │ let v3 : (struct ((int32 []) * int32 * int32 * US0) []) = │
00:01:18 #3257 [Verbose] > │ Array.zeroCreate<struct ((int32 []) * int32 * int32 * US0)> │
00:01:18 #3258 [Verbose] > │ (System.Convert.ToInt32(v2)) │
00:01:18 #3259 [Verbose] > │ let v4 : uint64 = 0UL │
00:01:18 #3260 [Verbose] > │ let v5 : uint64 = method5(v3, v0, v4) │
00:01:18 #3261 [Verbose] > │ v3 │
00:01:18 #3262 [Verbose] > │ and method6 (v0 : uint64, v1 : Mut1) : bool = │
00:01:18 #3263 [Verbose] > │ let v2 : uint64 = v1.l0 │
00:01:18 #3264 [Verbose] > │ let v3 : bool = v2 < v0 │
00:01:18 #3265 [Verbose] > │ v3 │
00:01:18 #3266 [Verbose] > │ and method7 (v0 : (int32 []), v1 : int32, v2 : int32, v3 : int32) : US0 = │
00:01:18 #3267 [Verbose] > │ let v4 : bool = v3 >= v2 │
00:01:18 #3268 [Verbose] > │ if v4 then │
00:01:18 #3269 [Verbose] > │ US0_0 │
00:01:18 #3270 [Verbose] > │ else │
00:01:18 #3271 [Verbose] > │ let v6 : int32 = v3 + v2 │
00:01:18 #3272 [Verbose] > │ let v7 : int32 = v6 / 2 │
00:01:18 #3273 [Verbose] > │ let v8 : int32 = v0.[int v7] │
00:01:18 #3274 [Verbose] > │ let v9 : bool = v8 = v1 │
00:01:18 #3275 [Verbose] > │ if v9 then │
00:01:18 #3276 [Verbose] > │ US0_1(v7) │
00:01:18 #3277 [Verbose] > │ else │
00:01:18 #3278 [Verbose] > │ let v11 : bool = v8 < v1 │
00:01:18 #3279 [Verbose] > │ if v11 then │
00:01:18 #3280 [Verbose] > │ let v12 : int32 = v7 + 1 │
00:01:18 #3281 [Verbose] > │ method7(v0, v1, v2, v12) │
00:01:18 #3282 [Verbose] > │ else │
00:01:18 #3283 [Verbose] > │ method7(v0, v1, v7, v3) │
00:01:18 #3284 [Verbose] > │ and closure1 () struct (v0 : (int32 []), v1 : int32, v2 : int32) : US0 = │
00:01:18 #3285 [Verbose] > │ let v3 : int32 = 0 │
00:01:18 #3286 [Verbose] > │ method7(v0, v1, v2, v3) │
00:01:18 #3287 [Verbose] > │ and method8 (v0 : (int32 []), v1 : int32, v2 : int32, v3 : int32) : US0 = │
00:01:18 #3288 [Verbose] > │ let v4 : bool = v3 > v2 │
00:01:18 #3289 [Verbose] > │ if v4 then │
00:01:18 #3290 [Verbose] > │ US0_0 │
00:01:18 #3291 [Verbose] > │ else │
00:01:18 #3292 [Verbose] > │ let v6 : int32 = v3 + v2 │
00:01:18 #3293 [Verbose] > │ let v7 : int32 = v6 / 2 │
00:01:18 #3294 [Verbose] > │ let v8 : int32 = v0.[int v7] │
00:01:18 #3295 [Verbose] > │ let v9 : bool = v8 = v1 │
00:01:18 #3296 [Verbose] > │ if v9 then │
00:01:18 #3297 [Verbose] > │ US0_1(v7) │
00:01:18 #3298 [Verbose] > │ else │
00:01:18 #3299 [Verbose] > │ let v11 : bool = v8 < v1 │
00:01:18 #3300 [Verbose] > │ if v11 then │
00:01:18 #3301 [Verbose] > │ let v12 : int32 = v7 + 1 │
00:01:18 #3302 [Verbose] > │ method8(v0, v1, v2, v12) │
00:01:18 #3303 [Verbose] > │ else │
00:01:18 #3304 [Verbose] > │ let v14 : int32 = v7 - 1 │
00:01:18 #3305 [Verbose] > │ method8(v0, v1, v14, v3) │
00:01:18 #3306 [Verbose] > │ and closure2 () struct (v0 : (int32 []), v1 : int32, v2 : int32) : US0 = │
00:01:18 #3307 [Verbose] > │ let v3 : int32 = v2 - 1 │
00:01:18 #3308 [Verbose] > │ let v4 : int32 = 0 │
00:01:18 #3309 [Verbose] > │ method8(v0, v1, v3, v4) │
00:01:18 #3310 [Verbose] > │ and method9 (v0 : (int32 []), v1 : int32, v2 : int32, v3 : int32) : US0 = │
00:01:18 #3311 [Verbose] > │ let v4 : bool = v2 >= v3 │
00:01:18 #3312 [Verbose] > │ if v4 then │
00:01:18 #3313 [Verbose] > │ US0_0 │
00:01:18 #3314 [Verbose] > │ else │
00:01:18 #3315 [Verbose] > │ let v6 : int32 = v2 + v3 │
00:01:18 #3316 [Verbose] > │ let v7 : int32 = v6 / 2 │
00:01:18 #3317 [Verbose] > │ let v8 : int32 = v0.[int v7] │
00:01:18 #3318 [Verbose] > │ let v9 : bool = v8 = v1 │
00:01:18 #3319 [Verbose] > │ if v9 then │
00:01:18 #3320 [Verbose] > │ US0_1(v7) │
00:01:18 #3321 [Verbose] > │ else │
00:01:18 #3322 [Verbose] > │ let v11 : bool = v8 < v1 │
00:01:18 #3323 [Verbose] > │ if v11 then │
00:01:18 #3324 [Verbose] > │ let v12 : int32 = v7 + 1 │
00:01:18 #3325 [Verbose] > │ method9(v0, v1, v12, v3) │
00:01:18 #3326 [Verbose] > │ else │
00:01:18 #3327 [Verbose] > │ method9(v0, v1, v2, v7) │
00:01:18 #3328 [Verbose] > │ and closure3 () struct (v0 : (int32 []), v1 : int32, v2 : int32) : US0 = │
00:01:18 #3329 [Verbose] > │ let v3 : int32 = 0 │
00:01:18 #3330 [Verbose] > │ method9(v0, v1, v3, v2) │
00:01:18 #3331 [Verbose] > │ and method10 (v0 : (int32 []), v1 : int32, v2 : int32, v3 : int32) : US0 = │
00:01:18 #3332 [Verbose] > │ let v4 : bool = v2 > v3 │
00:01:18 #3333 [Verbose] > │ if v4 then │
00:01:18 #3334 [Verbose] > │ US0_0 │
00:01:18 #3335 [Verbose] > │ else │
00:01:18 #3336 [Verbose] > │ let v6 : int32 = v2 + v3 │
00:01:18 #3337 [Verbose] > │ let v7 : int32 = v6 / 2 │
00:01:18 #3338 [Verbose] > │ let v8 : int32 = v0.[int v7] │
00:01:18 #3339 [Verbose] > │ let v9 : bool = v8 = v1 │
00:01:18 #3340 [Verbose] > │ if v9 then │
00:01:18 #3341 [Verbose] > │ US0_1(v7) │
00:01:18 #3342 [Verbose] > │ else │
00:01:18 #3343 [Verbose] > │ let v11 : bool = v8 < v1 │
00:01:18 #3344 [Verbose] > │ if v11 then │
00:01:18 #3345 [Verbose] > │ let v12 : int32 = v7 + 1 │
00:01:18 #3346 [Verbose] > │ method10(v0, v1, v12, v3) │
00:01:18 #3347 [Verbose] > │ else │
00:01:18 #3348 [Verbose] > │ let v14 : int32 = v7 - 1 │
00:01:18 #3349 [Verbose] > │ method10(v0, v1, v2, v14) │
00:01:18 #3350 [Verbose] > │ and closure4 () struct (v0 : (int32 []), v1 : int32, v2 : int32) : US0 = │
00:01:18 #3351 [Verbose] > │ let v3 : int32 = v2 - 1 │
00:01:18 #3352 [Verbose] > │ let v4 : int32 = 0 │
00:01:18 #3353 [Verbose] > │ method10(v0, v1, v4, v3) │
00:01:18 #3354 [Verbose] > │ and method12 (v0 : UH1, v1 : uint64) : uint64 = │
00:01:18 #3355 [Verbose] > │ match v0 with │
00:01:18 #3356 [Verbose] > │ | UH1_0(v2, v3, v4, v5) -> (* Cons *) │
00:01:18 #3357 [Verbose] > │ let v6 : uint64 = v1 + 1UL │
00:01:18 #3358 [Verbose] > │ method12(v5, v6) │
00:01:18 #3359 [Verbose] > │ | UH1_1 -> (* Nil *) │
00:01:18 #3360 [Verbose] > │ v1 │
00:01:18 #3361 [Verbose] > │ and method13 (v0 : (struct (int32 * string * (struct ((int32 []) * int32 * │
00:01:18 #3362 [Verbose] > │ int32) -> US0)) []), v1 : UH1, v2 : uint64) : uint64 = │
00:01:18 #3363 [Verbose] > │ match v1 with │
00:01:18 #3364 [Verbose] > │ | UH1_0(v3, v4, v5, v6) -> (* Cons *) │
00:01:18 #3365 [Verbose] > │ v0.[int v2] <- struct (v3, v4, v5) │
00:01:18 #3366 [Verbose] > │ let v7 : uint64 = v2 + 1UL │
00:01:18 #3367 [Verbose] > │ method13(v0, v6, v7) │
00:01:18 #3368 [Verbose] > │ | UH1_1 -> (* Nil *) │
00:01:18 #3369 [Verbose] > │ v2 │
00:01:18 #3370 [Verbose] > │ and method11 (v0 : UH1) : (struct (int32 * string * (struct ((int32 []) * │
00:01:18 #3371 [Verbose] > │ int32 * int32) -> US0)) []) = │
00:01:18 #3372 [Verbose] > │ let v1 : uint64 = 0UL │
00:01:18 #3373 [Verbose] > │ let v2 : uint64 = method12(v0, v1) │
00:01:18 #3374 [Verbose] > │ let v3 : (struct (int32 * string * (struct ((int32 []) * int32 * int32) │
00:01:18 #3375 [Verbose] > │ -> US0)) []) = Array.zeroCreate<struct (int32 * string * (struct ((int32 []) │
00:01:18 #3376 [Verbose] > │ * int32 * int32) -> US0))> (System.Convert.ToInt32(v2)) │
00:01:18 #3377 [Verbose] > │ let v4 : uint64 = 0UL │
00:01:18 #3378 [Verbose] > │ let v5 : uint64 = method13(v3, v0, v4) │
00:01:18 #3379 [Verbose] > │ v3 │
00:01:18 #3380 [Verbose] > │ and method14 (v0 : Mut0) : bool = │
00:01:18 #3381 [Verbose] > │ let v1 : int32 = v0.l0 │
00:01:18 #3382 [Verbose] > │ let v2 : bool = v1 < 8000001 │
00:01:18 #3383 [Verbose] > │ v2 │
00:01:18 #3384 [Verbose] > │ and closure5 (v0 : (int32 []), v1 : int32, v2 : int32, v3 : (struct ((int32 │
00:01:18 #3385 [Verbose] > │ []) * int32 * int32) -> US0)) (v4 : int32) : US0 = │
00:01:18 #3386 [Verbose] > │ v3 struct (v0, v1, v2) │
00:01:18 #3387 [Verbose] > │ and method15 (v0 : US0, v1 : (US0 []), v2 : uint64) : bool = │
00:01:18 #3388 [Verbose] > │ let v3 : uint64 = System.Convert.ToUInt64 v1.Length │
00:01:18 #3389 [Verbose] > │ let v4 : bool = v2 < v3 │
00:01:18 #3390 [Verbose] > │ if v4 then │
00:01:18 #3391 [Verbose] > │ let v5 : US0 = v1.[int v2] │
00:01:18 #3392 [Verbose] > │ let v9 : bool = │
00:01:18 #3393 [Verbose] > │ match v0, v5 with │
00:01:18 #3394 [Verbose] > │ | US0_0, US0_0 -> (* None *) │
00:01:18 #3395 [Verbose] > │ true │
00:01:18 #3396 [Verbose] > │ | US0_1(v6), US0_1(v7) -> (* Some *) │
00:01:18 #3397 [Verbose] > │ let v8 : bool = v6 = v7 │
00:01:18 #3398 [Verbose] > │ v8 │
00:01:18 #3399 [Verbose] > │ | _ -> │
00:01:18 #3400 [Verbose] > │ false │
00:01:18 #3401 [Verbose] > │ if v9 then │
00:01:18 #3402 [Verbose] > │ let v10 : uint64 = v2 + 1UL │
00:01:18 #3403 [Verbose] > │ method15(v0, v1, v10) │
00:01:18 #3404 [Verbose] > │ else │
00:01:18 #3405 [Verbose] > │ false │
00:01:18 #3406 [Verbose] > │ else │
00:01:18 #3407 [Verbose] > │ true │
00:01:18 #3408 [Verbose] > │ and method16 (v0 : uint64, v1 : Mut2) : bool = │
00:01:18 #3409 [Verbose] > │ let v2 : uint64 = v1.l0 │
00:01:18 #3410 [Verbose] > │ let v3 : bool = v2 < v0 │
00:01:18 #3411 [Verbose] > │ v3 │
00:01:18 #3412 [Verbose] > │ and method17 (v0 : UH3, v1 : UH3) : UH3 = │
00:01:18 #3413 [Verbose] > │ match v0 with │
00:01:18 #3414 [Verbose] > │ | UH3_0(v2, v3, v4) -> (* Cons *) │
00:01:18 #3415 [Verbose] > │ let v5 : UH3 = UH3_0(v2, v3, v1) │
00:01:18 #3416 [Verbose] > │ method17(v4, v5) │
00:01:18 #3417 [Verbose] > │ | UH3_1 -> (* Nil *) │
00:01:18 #3418 [Verbose] > │ v1 │
00:01:18 #3419 [Verbose] > │ and method19 (v0 : UH3, v1 : int32) : int32 = │
00:01:18 #3420 [Verbose] > │ match v0 with │
00:01:18 #3421 [Verbose] > │ | UH3_0(v2, v3, v4) -> (* Cons *) │
00:01:18 #3422 [Verbose] > │ let v5 : int32 = v1 + 1 │
00:01:18 #3423 [Verbose] > │ method19(v4, v5) │
00:01:18 #3424 [Verbose] > │ | UH3_1 -> (* Nil *) │
00:01:18 #3425 [Verbose] > │ v1 │
00:01:18 #3426 [Verbose] > │ and method20 (v0 : (struct (int64 * int64) []), v1 : UH3, v2 : int32) : │
00:01:18 #3427 [Verbose] > │ int32 = │
00:01:18 #3428 [Verbose] > │ match v1 with │
00:01:18 #3429 [Verbose] > │ | UH3_0(v3, v4, v5) -> (* Cons *) │
00:01:18 #3430 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:01:18 #3431 [Verbose] > │ let v6 : int32 = v2 + 1 │
00:01:18 #3432 [Verbose] > │ method20(v0, v5, v6) │
00:01:18 #3433 [Verbose] > │ | UH3_1 -> (* Nil *) │
00:01:18 #3434 [Verbose] > │ v2 │
00:01:18 #3435 [Verbose] > │ and method18 (v0 : UH3) : (struct (int64 * int64) []) = │
00:01:18 #3436 [Verbose] > │ let v1 : int32 = 0 │
00:01:18 #3437 [Verbose] > │ let v2 : int32 = method19(v0, v1) │
00:01:18 #3438 [Verbose] > │ let v3 : (struct (int64 * int64) []) = Array.zeroCreate<struct (int64 * │
00:01:18 #3439 [Verbose] > │ int64)> (v2) │
00:01:18 #3440 [Verbose] > │ let v4 : int32 = 0 │
00:01:18 #3441 [Verbose] > │ let v5 : int32 = method20(v3, v0, v4) │
00:01:18 #3442 [Verbose] > │ v3 │
00:01:18 #3443 [Verbose] > │ and method21 (v0 : int32, v1 : Mut0) : bool = │
00:01:18 #3444 [Verbose] > │ let v2 : int32 = v1.l0 │
00:01:18 #3445 [Verbose] > │ let v3 : bool = v2 < v0 │
00:01:18 #3446 [Verbose] > │ v3 │
00:01:18 #3447 [Verbose] > │ and closure6 () struct (v0 : int64, v1 : int64) : int64 = │
00:01:18 #3448 [Verbose] > │ v1 │
00:01:18 #3449 [Verbose] > │ and method23 (v0 : UH4, v1 : uint64) : uint64 = │
00:01:18 #3450 [Verbose] > │ match v0 with │
00:01:18 #3451 [Verbose] > │ | UH4_0(v2, v3, v4) -> (* Cons *) │
00:01:18 #3452 [Verbose] > │ let v5 : uint64 = v1 + 1UL │
00:01:18 #3453 [Verbose] > │ method23(v4, v5) │
00:01:18 #3454 [Verbose] > │ | UH4_1 -> (* Nil *) │
00:01:18 #3455 [Verbose] > │ v1 │
00:01:18 #3456 [Verbose] > │ and method24 (v0 : (struct (UH2 * US1) []), v1 : UH4, v2 : uint64) : uint64 │
00:01:18 #3457 [Verbose] > │ = │
00:01:18 #3458 [Verbose] > │ match v1 with │
00:01:18 #3459 [Verbose] > │ | UH4_0(v3, v4, v5) -> (* Cons *) │
00:01:18 #3460 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:01:18 #3461 [Verbose] > │ let v6 : uint64 = v2 + 1UL │
00:01:18 #3462 [Verbose] > │ method24(v0, v5, v6) │
00:01:18 #3463 [Verbose] > │ | UH4_1 -> (* Nil *) │
00:01:18 #3464 [Verbose] > │ v2 │
00:01:18 #3465 [Verbose] > │ and method22 (v0 : UH4) : (struct (UH2 * US1) []) = │
00:01:18 #3466 [Verbose] > │ let v1 : uint64 = 0UL │
00:01:18 #3467 [Verbose] > │ let v2 : uint64 = method23(v0, v1) │
00:01:18 #3468 [Verbose] > │ let v3 : (struct (UH2 * US1) []) = Array.zeroCreate<struct (UH2 * US1)> │
00:01:18 #3469 [Verbose] > │ (System.Convert.ToInt32(v2)) │
00:01:18 #3470 [Verbose] > │ let v4 : uint64 = 0UL │
00:01:18 #3471 [Verbose] > │ let v5 : uint64 = method24(v3, v0, v4) │
00:01:18 #3472 [Verbose] > │ v3 │
00:01:18 #3473 [Verbose] > │ and method26 (v0 : UH2, v1 : uint64) : uint64 = │
00:01:18 #3474 [Verbose] > │ match v0 with │
00:01:18 #3475 [Verbose] > │ | UH2_0(v2, v3) -> (* Cons *) │
00:01:18 #3476 [Verbose] > │ let v4 : uint64 = v1 + 1UL │
00:01:18 #3477 [Verbose] > │ method26(v3, v4) │
00:01:18 #3478 [Verbose] > │ | UH2_1 -> (* Nil *) │
00:01:18 #3479 [Verbose] > │ v1 │
00:01:18 #3480 [Verbose] > │ and method27 (v0 : (string []), v1 : UH2, v2 : uint64) : uint64 = │
00:01:18 #3481 [Verbose] > │ match v1 with │
00:01:18 #3482 [Verbose] > │ | UH2_0(v3, v4) -> (* Cons *) │
00:01:18 #3483 [Verbose] > │ v0.[int v2] <- v3 │
00:01:18 #3484 [Verbose] > │ let v5 : uint64 = v2 + 1UL │
00:01:18 #3485 [Verbose] > │ method27(v0, v4, v5) │
00:01:18 #3486 [Verbose] > │ | UH2_1 -> (* Nil *) │
00:01:18 #3487 [Verbose] > │ v2 │
00:01:18 #3488 [Verbose] > │ and method25 (v0 : UH2) : (string []) = │
00:01:18 #3489 [Verbose] > │ let v1 : uint64 = 0UL │
00:01:18 #3490 [Verbose] > │ let v2 : uint64 = method26(v0, v1) │
00:01:18 #3491 [Verbose] > │ let v3 : (string []) = Array.zeroCreate<string> │
00:01:18 #3492 [Verbose] > │ (System.Convert.ToInt32(v2)) │
00:01:18 #3493 [Verbose] > │ let v4 : uint64 = 0UL │
00:01:18 #3494 [Verbose] > │ let v5 : uint64 = method27(v3, v0, v4) │
00:01:18 #3495 [Verbose] > │ v3 │
00:01:18 #3496 [Verbose] > │ and closure7 () (v0 : int64) : US2 = │
00:01:18 #3497 [Verbose] > │ US2_1(v0) │
00:01:18 #3498 [Verbose] > │ and method28 (v0 : uint64, v1 : Mut3) : bool = │
00:01:18 #3499 [Verbose] > │ let v2 : uint64 = v1.l0 │
00:01:18 #3500 [Verbose] > │ let v3 : bool = v2 < v0 │
00:01:18 #3501 [Verbose] > │ v3 │
00:01:18 #3502 [Verbose] > │ and method29 (v0 : UH5, v1 : UH5) : UH5 = │
00:01:18 #3503 [Verbose] > │ match v0 with │
00:01:18 #3504 [Verbose] > │ | UH5_0(v2, v3, v4) -> (* Cons *) │
00:01:18 #3505 [Verbose] > │ let v5 : UH5 = UH5_0(v2, v3, v1) │
00:01:18 #3506 [Verbose] > │ method29(v4, v5) │
00:01:18 #3507 [Verbose] > │ | UH5_1 -> (* Nil *) │
00:01:18 #3508 [Verbose] > │ v1 │
00:01:18 #3509 [Verbose] > │ and method31 (v0 : UH5, v1 : int32) : int32 = │
00:01:18 #3510 [Verbose] > │ match v0 with │
00:01:18 #3511 [Verbose] > │ | UH5_0(v2, v3, v4) -> (* Cons *) │
00:01:18 #3512 [Verbose] > │ let v5 : int32 = v1 + 1 │
00:01:18 #3513 [Verbose] > │ method31(v4, v5) │
00:01:18 #3514 [Verbose] > │ | UH5_1 -> (* Nil *) │
00:01:18 #3515 [Verbose] > │ v1 │
00:01:18 #3516 [Verbose] > │ and method32 (v0 : (struct (int32 * int64) []), v1 : UH5, v2 : int32) : │
00:01:18 #3517 [Verbose] > │ int32 = │
00:01:18 #3518 [Verbose] > │ match v1 with │
00:01:18 #3519 [Verbose] > │ | UH5_0(v3, v4, v5) -> (* Cons *) │
00:01:18 #3520 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:01:18 #3521 [Verbose] > │ let v6 : int32 = v2 + 1 │
00:01:18 #3522 [Verbose] > │ method32(v0, v5, v6) │
00:01:18 #3523 [Verbose] > │ | UH5_1 -> (* Nil *) │
00:01:18 #3524 [Verbose] > │ v2 │
00:01:18 #3525 [Verbose] > │ and method30 (v0 : UH5) : (struct (int32 * int64) []) = │
00:01:18 #3526 [Verbose] > │ let v1 : int32 = 0 │
00:01:18 #3527 [Verbose] > │ let v2 : int32 = method31(v0, v1) │
00:01:18 #3528 [Verbose] > │ let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 * │
00:01:18 #3529 [Verbose] > │ int64)> (v2) │
00:01:18 #3530 [Verbose] > │ let v4 : int32 = 0 │
00:01:18 #3531 [Verbose] > │ let v5 : int32 = method32(v3, v0, v4) │
00:01:18 #3532 [Verbose] > │ v3 │
00:01:18 #3533 [Verbose] > │ and method33 (v0 : UH2, v1 : UH6, v2 : int32) : struct (UH6 * int32) = │
00:01:18 #3534 [Verbose] > │ match v0 with │
00:01:18 #3535 [Verbose] > │ | UH2_0(v3, v4) -> (* Cons *) │
00:01:18 #3536 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:01:18 #3537 [Verbose] > │ let v6 : UH6 = UH6_0(v2, v3, v1) │
00:01:18 #3538 [Verbose] > │ method33(v4, v6, v5) │
00:01:18 #3539 [Verbose] > │ | UH2_1 -> (* Nil *) │
00:01:18 #3540 [Verbose] > │ struct (v1, v2) │
00:01:18 #3541 [Verbose] > │ and method34 (v0 : UH6, v1 : UH6) : UH6 = │
00:01:18 #3542 [Verbose] > │ match v0 with │
00:01:18 #3543 [Verbose] > │ | UH6_0(v2, v3, v4) -> (* Cons *) │
00:01:18 #3544 [Verbose] > │ let v5 : UH6 = UH6_0(v2, v3, v1) │
00:01:18 #3545 [Verbose] > │ method34(v4, v5) │
00:01:18 #3546 [Verbose] > │ | UH6_1 -> (* Nil *) │
00:01:18 #3547 [Verbose] > │ v1 │
00:01:18 #3548 [Verbose] > │ and method35 (v0 : Map<int32, int64>, v1 : UH6, v2 : UH2) : UH2 = │
00:01:18 #3549 [Verbose] > │ match v1 with │
00:01:18 #3550 [Verbose] > │ | UH6_0(v3, v4, v5) -> (* Cons *) │
00:01:18 #3551 [Verbose] > │ let v6 : UH2 = method35(v0, v5, v2) │
00:01:18 #3552 [Verbose] > │ let v7 : int64 = v0.[v3] │
00:01:18 #3553 [Verbose] > │ let v8 : int32 = int32 v7 │
00:01:18 #3554 [Verbose] > │ let v9 : string = v4.PadRight v8 │
00:01:18 #3555 [Verbose] > │ UH2_0(v9, v6) │
00:01:18 #3556 [Verbose] > │ | UH6_1 -> (* Nil *) │
00:01:18 #3557 [Verbose] > │ v2 │
00:01:18 #3558 [Verbose] > │ and method37 (v0 : UH2, v1 : int32) : int32 = │
00:01:18 #3559 [Verbose] > │ match v0 with │
00:01:18 #3560 [Verbose] > │ | UH2_0(v2, v3) -> (* Cons *) │
00:01:18 #3561 [Verbose] > │ let v4 : int32 = v1 + 1 │
00:01:18 #3562 [Verbose] > │ method37(v3, v4) │
00:01:18 #3563 [Verbose] > │ | UH2_1 -> (* Nil *) │
00:01:18 #3564 [Verbose] > │ v1 │
00:01:18 #3565 [Verbose] > │ and method38 (v0 : (string []), v1 : UH2, v2 : int32) : int32 = │
00:01:18 #3566 [Verbose] > │ match v1 with │
00:01:18 #3567 [Verbose] > │ | UH2_0(v3, v4) -> (* Cons *) │
00:01:18 #3568 [Verbose] > │ v0.[int v2] <- v3 │
00:01:18 #3569 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:01:18 #3570 [Verbose] > │ method38(v0, v4, v5) │
00:01:18 #3571 [Verbose] > │ | UH2_1 -> (* Nil *) │
00:01:18 #3572 [Verbose] > │ v2 │
00:01:18 #3573 [Verbose] > │ and method36 (v0 : UH2) : (string []) = │
00:01:18 #3574 [Verbose] > │ let v1 : int32 = 0 │
00:01:18 #3575 [Verbose] > │ let v2 : int32 = method37(v0, v1) │
00:01:18 #3576 [Verbose] > │ let v3 : (string []) = Array.zeroCreate<string> (v2) │
00:01:18 #3577 [Verbose] > │ let v4 : int32 = 0 │
00:01:18 #3578 [Verbose] > │ let v5 : int32 = method38(v3, v0, v4) │
00:01:18 #3579 [Verbose] > │ v3 │
00:01:18 #3580 [Verbose] > │ and method40 (v0 : UH5, v1 : uint64) : uint64 = │
00:01:18 #3581 [Verbose] > │ match v0 with │
00:01:18 #3582 [Verbose] > │ | UH5_0(v2, v3, v4) -> (* Cons *) │
00:01:18 #3583 [Verbose] > │ let v5 : uint64 = v1 + 1UL │
00:01:18 #3584 [Verbose] > │ method40(v4, v5) │
00:01:18 #3585 [Verbose] > │ | UH5_1 -> (* Nil *) │
00:01:18 #3586 [Verbose] > │ v1 │
00:01:18 #3587 [Verbose] > │ and method41 (v0 : (struct (int32 * int64) []), v1 : UH5, v2 : uint64) : │
00:01:18 #3588 [Verbose] > │ uint64 = │
00:01:18 #3589 [Verbose] > │ match v1 with │
00:01:18 #3590 [Verbose] > │ | UH5_0(v3, v4, v5) -> (* Cons *) │
00:01:18 #3591 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:01:18 #3592 [Verbose] > │ let v6 : uint64 = v2 + 1UL │
00:01:18 #3593 [Verbose] > │ method41(v0, v5, v6) │
00:01:18 #3594 [Verbose] > │ | UH5_1 -> (* Nil *) │
00:01:18 #3595 [Verbose] > │ v2 │
00:01:18 #3596 [Verbose] > │ and method39 (v0 : UH5) : (struct (int32 * int64) []) = │
00:01:18 #3597 [Verbose] > │ let v1 : uint64 = 0UL │
00:01:18 #3598 [Verbose] > │ let v2 : uint64 = method40(v0, v1) │
00:01:18 #3599 [Verbose] > │ let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 * │
00:01:18 #3600 [Verbose] > │ int64)> (System.Convert.ToInt32(v2)) │
00:01:18 #3601 [Verbose] > │ let v4 : uint64 = 0UL │
00:01:18 #3602 [Verbose] > │ let v5 : uint64 = method41(v3, v0, v4) │
00:01:18 #3603 [Verbose] > │ v3 │
00:01:18 #3604 [Verbose] > │ and closure8 () struct (v0 : int32, v1 : int64) : int64 = │
00:01:18 #3605 [Verbose] > │ v1 │
00:01:18 #3606 [Verbose] > │ and closure0 () () : unit = │
00:01:18 #3607 [Verbose] > │ let v0 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:18 #3608 [Verbose] > │ let v1 : (int32 []) = method1(v0) │
00:01:18 #3609 [Verbose] > │ let v2 : int32 = v1.Length │
00:01:18 #3610 [Verbose] > │ let v3 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:18 #3611 [Verbose] > │ let v4 : (int32 []) = method1(v3) │
00:01:18 #3612 [Verbose] > │ let v5 : int32 = v4.Length │
00:01:18 #3613 [Verbose] > │ let v6 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:18 #3614 [Verbose] > │ let v7 : (int32 []) = method1(v6) │
00:01:18 #3615 [Verbose] > │ let v8 : int32 = v7.Length │
00:01:18 #3616 [Verbose] > │ let v9 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:18 #3617 [Verbose] > │ let v10 : (int32 []) = method1(v9) │
00:01:18 #3618 [Verbose] > │ let v11 : int32 = v10.Length │
00:01:18 #3619 [Verbose] > │ let v12 : (int32 []) = Array.zeroCreate<int32> (100) │
00:01:18 #3620 [Verbose] > │ let v13 : Mut0 = {l0 = 0} : Mut0 │
00:01:18 #3621 [Verbose] > │ while method2(v13) do │
00:01:18 #3622 [Verbose] > │ let v15 : int32 = v13.l0 │
00:01:18 #3623 [Verbose] > │ let v16 : int32 = 1 + v15 │
00:01:18 #3624 [Verbose] > │ v12.[int v15] <- v16 │
00:01:18 #3625 [Verbose] > │ let v17 : int32 = v15 + 1 │
00:01:18 #3626 [Verbose] > │ v13.l0 <- v17 │
00:01:18 #3627 [Verbose] > │ () │
00:01:18 #3628 [Verbose] > │ let v18 : int32 = v12.Length │
00:01:18 #3629 [Verbose] > │ let v19 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:18 #3630 [Verbose] > │ let v20 : (int32 []) = method1(v19) │
00:01:18 #3631 [Verbose] > │ let v21 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:18 #3632 [Verbose] > │ let v22 : (int32 []) = method1(v21) │
00:01:18 #3633 [Verbose] > │ let v23 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:18 #3634 [Verbose] > │ let v24 : (int32 []) = method1(v23) │
00:01:18 #3635 [Verbose] > │ let v25 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:18 #3636 [Verbose] > │ let v26 : (int32 []) = method1(v25) │
00:01:18 #3637 [Verbose] > │ let v27 : (int32 []) = Array.zeroCreate<int32> (100) │
00:01:18 #3638 [Verbose] > │ let v28 : Mut0 = {l0 = 0} : Mut0 │
00:01:18 #3639 [Verbose] > │ while method2(v28) do │
00:01:18 #3640 [Verbose] > │ let v30 : int32 = v28.l0 │
00:01:18 #3641 [Verbose] > │ let v31 : int32 = 1 + v30 │
00:01:18 #3642 [Verbose] > │ v27.[int v30] <- v31 │
00:01:18 #3643 [Verbose] > │ let v32 : int32 = v30 + 1 │
00:01:18 #3644 [Verbose] > │ v28.l0 <- v32 │
00:01:18 #3645 [Verbose] > │ () │
00:01:18 #3646 [Verbose] > │ let v33 : (unit -> unit) = closure0() │
00:01:18 #3647 [Verbose] > │ let v34 : string = nameof v33 │
00:01:18 #3648 [Verbose] > │ let v35 : string = "" │
00:01:18 #3649 [Verbose] > │ System.Console.WriteLine v35 │
00:01:18 #3650 [Verbose] > │ System.Console.WriteLine v35 │
00:01:18 #3651 [Verbose] > │ let v36 : string = $"Test: {v34}" │
00:01:18 #3652 [Verbose] > │ System.Console.WriteLine v36 │
00:01:18 #3653 [Verbose] > │ let v37 : int32 = 6 │
00:01:18 #3654 [Verbose] > │ let v38 : int32 = 3 │
00:01:18 #3655 [Verbose] > │ let v39 : US0 = US0_1(v38) │
00:01:18 #3656 [Verbose] > │ let v40 : int32 = 1 │
00:01:18 #3657 [Verbose] > │ let v41 : int32 = 0 │
00:01:18 #3658 [Verbose] > │ let v42 : US0 = US0_1(v41) │
00:01:18 #3659 [Verbose] > │ let v43 : int32 = 11 │
00:01:18 #3660 [Verbose] > │ let v44 : int32 = 6 │
00:01:18 #3661 [Verbose] > │ let v45 : US0 = US0_1(v44) │
00:01:18 #3662 [Verbose] > │ let v46 : int32 = 12 │
00:01:18 #3663 [Verbose] > │ let v47 : US0 = US0_0 │
00:01:18 #3664 [Verbose] > │ let v48 : int32 = 60 │
00:01:18 #3665 [Verbose] > │ let v49 : int32 = 59 │
00:01:18 #3666 [Verbose] > │ let v50 : US0 = US0_1(v49) │
00:01:18 #3667 [Verbose] > │ let v51 : int32 = 6 │
00:01:18 #3668 [Verbose] > │ let v52 : int32 = 7 │
00:01:18 #3669 [Verbose] > │ let v53 : int32 = 3 │
00:01:18 #3670 [Verbose] > │ let v54 : US0 = US0_1(v53) │
00:01:18 #3671 [Verbose] > │ let v55 : int32 = 1 │
00:01:18 #3672 [Verbose] > │ let v56 : int32 = 7 │
00:01:18 #3673 [Verbose] > │ let v57 : int32 = 0 │
00:01:18 #3674 [Verbose] > │ let v58 : US0 = US0_1(v57) │
00:01:18 #3675 [Verbose] > │ let v59 : int32 = 11 │
00:01:18 #3676 [Verbose] > │ let v60 : int32 = 7 │
00:01:18 #3677 [Verbose] > │ let v61 : int32 = 6 │
00:01:18 #3678 [Verbose] > │ let v62 : US0 = US0_1(v61) │
00:01:18 #3679 [Verbose] > │ let v63 : int32 = 12 │
00:01:18 #3680 [Verbose] > │ let v64 : int32 = 7 │
00:01:18 #3681 [Verbose] > │ let v65 : US0 = US0_0 │
00:01:18 #3682 [Verbose] > │ let v66 : int32 = 60 │
00:01:18 #3683 [Verbose] > │ let v67 : int32 = 100 │
00:01:18 #3684 [Verbose] > │ let v68 : int32 = 59 │
00:01:18 #3685 [Verbose] > │ let v69 : US0 = US0_1(v68) │
00:01:18 #3686 [Verbose] > │ let v70 : UH0 = UH0_1 │
00:01:18 #3687 [Verbose] > │ let v71 : UH0 = UH0_0(v27, v66, v67, v69, v70) │
00:01:18 #3688 [Verbose] > │ let v72 : UH0 = UH0_0(v26, v63, v64, v65, v71) │
00:01:18 #3689 [Verbose] > │ let v73 : UH0 = UH0_0(v24, v59, v60, v62, v72) │
00:01:18 #3690 [Verbose] > │ let v74 : UH0 = UH0_0(v22, v55, v56, v58, v73) │
00:01:18 #3691 [Verbose] > │ let v75 : UH0 = UH0_0(v20, v51, v52, v54, v74) │
00:01:18 #3692 [Verbose] > │ let v76 : UH0 = UH0_0(v12, v48, v18, v50, v75) │
00:01:18 #3693 [Verbose] > │ let v77 : UH0 = UH0_0(v10, v46, v11, v47, v76) │
00:01:18 #3694 [Verbose] > │ let v78 : UH0 = UH0_0(v7, v43, v8, v45, v77) │
00:01:18 #3695 [Verbose] > │ let v79 : UH0 = UH0_0(v4, v40, v5, v42, v78) │
00:01:18 #3696 [Verbose] > │ let v80 : UH0 = UH0_0(v1, v37, v2, v39, v79) │
00:01:18 #3697 [Verbose] > │ let v81 : (struct ((int32 []) * int32 * int32 * US0) []) = method3(v80) │
00:01:18 #3698 [Verbose] > │ let v82 : uint64 = System.Convert.ToUInt64 v81.Length │
00:01:18 #3699 [Verbose] > │ let v83 : (struct (string * string * string * (int64 [])) []) = │
00:01:18 #3700 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))> │
00:01:18 #3701 [Verbose] > │ (System.Convert.ToInt32(v82)) │
00:01:18 #3702 [Verbose] > │ let v84 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #3703 [Verbose] > │ while method6(v82, v84) do │
00:01:18 #3704 [Verbose] > │ let v86 : uint64 = v84.l0 │
00:01:18 #3705 [Verbose] > │ let struct (v87 : (int32 []), v88 : int32, v89 : int32, v90 : US0) = │
00:01:18 #3706 [Verbose] > │ v81.[int v86] │
00:01:18 #3707 [Verbose] > │ let v91 : string = $"%A{struct (v87, v88, v89)}" │
00:01:18 #3708 [Verbose] > │ System.Console.WriteLine v35 │
00:01:18 #3709 [Verbose] > │ let v92 : string = $"Solution: {v91} " │
00:01:18 #3710 [Verbose] > │ System.Console.WriteLine v92 │
00:01:18 #3711 [Verbose] > │ let v93 : int32 = 0 │
00:01:18 #3712 [Verbose] > │ let v94 : string = "semi_open_1" │
00:01:18 #3713 [Verbose] > │ let v95 : (struct ((int32 []) * int32 * int32) -> US0) = closure1() │
00:01:18 #3714 [Verbose] > │ let v96 : int32 = 1 │
00:01:18 #3715 [Verbose] > │ let v97 : string = "closed_1" │
00:01:18 #3716 [Verbose] > │ let v98 : (struct ((int32 []) * int32 * int32) -> US0) = closure2() │
00:01:18 #3717 [Verbose] > │ let v99 : int32 = 2 │
00:01:18 #3718 [Verbose] > │ let v100 : string = "semi_open_2" │
00:01:18 #3719 [Verbose] > │ let v101 : (struct ((int32 []) * int32 * int32) -> US0) = closure3() │
00:01:18 #3720 [Verbose] > │ let v102 : int32 = 3 │
00:01:18 #3721 [Verbose] > │ let v103 : string = "closed_2" │
00:01:18 #3722 [Verbose] > │ let v104 : (struct ((int32 []) * int32 * int32) -> US0) = closure4() │
00:01:18 #3723 [Verbose] > │ let v105 : UH1 = UH1_1 │
00:01:18 #3724 [Verbose] > │ let v106 : UH1 = UH1_0(v102, v103, v104, v105) │
00:01:18 #3725 [Verbose] > │ let v107 : UH1 = UH1_0(v99, v100, v101, v106) │
00:01:18 #3726 [Verbose] > │ let v108 : UH1 = UH1_0(v96, v97, v98, v107) │
00:01:18 #3727 [Verbose] > │ let v109 : UH1 = UH1_0(v93, v94, v95, v108) │
00:01:18 #3728 [Verbose] > │ let v110 : (struct (int32 * string * (struct ((int32 []) * int32 * │
00:01:18 #3729 [Verbose] > │ int32) -> US0)) []) = method11(v109) │
00:01:18 #3730 [Verbose] > │ let v111 : uint64 = System.Convert.ToUInt64 v110.Length │
00:01:18 #3731 [Verbose] > │ let v112 : (struct (US0 * int64) []) = Array.zeroCreate<struct (US0 │
00:01:18 #3732 [Verbose] > │ * int64)> (System.Convert.ToInt32(v111)) │
00:01:18 #3733 [Verbose] > │ let v113 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #3734 [Verbose] > │ while method6(v111, v113) do │
00:01:18 #3735 [Verbose] > │ let v115 : uint64 = v113.l0 │
00:01:18 #3736 [Verbose] > │ let struct (v116 : int32, v117 : string, v118 : (struct ((int32 │
00:01:18 #3737 [Verbose] > │ []) * int32 * int32) -> US0)) = v110.[int v115] │
00:01:18 #3738 [Verbose] > │ let mutable result = None │
00:01:18 #3739 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:01:18 #3740 [Verbose] > │ () │
00:01:18 #3741 [Verbose] > │ #endif │
00:01:18 #3742 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:18 #3743 [Verbose] > │ () │
00:01:18 #3744 [Verbose] > │ #endif │
00:01:18 #3745 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:18 #3746 [Verbose] > │ System.GC.Collect () │
00:01:18 #3747 [Verbose] > │ () │
00:01:18 #3748 [Verbose] > │ #endif │
00:01:18 #3749 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:18 #3750 [Verbose] > │ System.GC.Collect () │
00:01:18 #3751 [Verbose] > │ () │
00:01:18 #3752 [Verbose] > │ #endif │
00:01:18 #3753 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:18 #3754 [Verbose] > │ System.GC.Collect () │
00:01:18 #3755 [Verbose] > │ () │
00:01:18 #3756 [Verbose] > │ #endif │
00:01:18 #3757 [Verbose] > │ |> fun x -> result <- Some x │
00:01:18 #3758 [Verbose] > │ result |> Option.get │
00:01:18 #3759 [Verbose] > │ let v119 : (unit -> System.Diagnostics.Stopwatch) = │
00:01:18 #3760 [Verbose] > │ System.Diagnostics.Stopwatch │
00:01:18 #3761 [Verbose] > │ let v120 : System.Diagnostics.Stopwatch = v119 () │
00:01:18 #3762 [Verbose] > │ v120.Start () │
00:01:18 #3763 [Verbose] > │ let v121 : int64 = v120.ElapsedMilliseconds │
00:01:18 #3764 [Verbose] > │ let v122 : (int32 []) = Array.zeroCreate<int32> (8000001) │
00:01:18 #3765 [Verbose] > │ let v123 : Mut0 = {l0 = 0} : Mut0 │
00:01:18 #3766 [Verbose] > │ while method14(v123) do │
00:01:18 #3767 [Verbose] > │ let v125 : int32 = v123.l0 │
00:01:18 #3768 [Verbose] > │ v122.[int v125] <- v125 │
00:01:18 #3769 [Verbose] > │ let v126 : int32 = v125 + 1 │
00:01:18 #3770 [Verbose] > │ v123.l0 <- v126 │
00:01:18 #3771 [Verbose] > │ () │
00:01:18 #3772 [Verbose] > │ let v127 : (int32 -> US0) = closure5(v87, v88, v89, v118) │
00:01:18 #3773 [Verbose] > │ let v128 : (US0 []) = v122 |> Array.Parallel.map v127 │
00:01:18 #3774 [Verbose] > │ let v129 : int32 = v128.Length │
00:01:18 #3775 [Verbose] > │ let v130 : int32 = v129 - 1 │
00:01:18 #3776 [Verbose] > │ let v131 : US0 = v128.[int v130] │
00:01:18 #3777 [Verbose] > │ let v132 : int64 = v120.ElapsedMilliseconds │
00:01:18 #3778 [Verbose] > │ let v133 : int64 = v132 - v121 │
00:01:18 #3779 [Verbose] > │ let v134 : string = $"Test case {v116 + 1}. {v117}. Time: {v133} │
00:01:18 #3780 [Verbose] > │ " │
00:01:18 #3781 [Verbose] > │ System.Console.WriteLine v134 │
00:01:18 #3782 [Verbose] > │ v112.[int v115] <- struct (v131, v133) │
00:01:18 #3783 [Verbose] > │ let v135 : uint64 = v115 + 1UL │
00:01:18 #3784 [Verbose] > │ v113.l0 <- v135 │
00:01:18 #3785 [Verbose] > │ () │
00:01:18 #3786 [Verbose] > │ let v136 : uint64 = System.Convert.ToUInt64 v112.Length │
00:01:18 #3787 [Verbose] > │ let v137 : (US0 []) = Array.zeroCreate<US0> │
00:01:18 #3788 [Verbose] > │ (System.Convert.ToInt32(v136)) │
00:01:18 #3789 [Verbose] > │ let v138 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #3790 [Verbose] > │ while method6(v136, v138) do │
00:01:18 #3791 [Verbose] > │ let v140 : uint64 = v138.l0 │
00:01:18 #3792 [Verbose] > │ let struct (v141 : US0, v142 : int64) = v112.[int v140] │
00:01:18 #3793 [Verbose] > │ v137.[int v140] <- v141 │
00:01:18 #3794 [Verbose] > │ let v143 : uint64 = v140 + 1UL │
00:01:18 #3795 [Verbose] > │ v138.l0 <- v143 │
00:01:18 #3796 [Verbose] > │ () │
00:01:18 #3797 [Verbose] > │ let v144 : uint64 = System.Convert.ToUInt64 v137.Length │
00:01:18 #3798 [Verbose] > │ let v145 : bool = v144 <= 1UL │
00:01:18 #3799 [Verbose] > │ if v145 then │
00:01:18 #3800 [Verbose] > │ () │
00:01:18 #3801 [Verbose] > │ else │
00:01:18 #3802 [Verbose] > │ let v146 : US0 = v137.[int 0UL] │
00:01:18 #3803 [Verbose] > │ let v147 : uint64 = 0UL │
00:01:18 #3804 [Verbose] > │ let v148 : bool = method15(v146, v137, v147) │
00:01:18 #3805 [Verbose] > │ if v148 then │
00:01:18 #3806 [Verbose] > │ () │
00:01:18 #3807 [Verbose] > │ else │
00:01:18 #3808 [Verbose] > │ let v149 : string = $"Challenge error: {v137}" │
00:01:18 #3809 [Verbose] > │ failwith<unit> v149 │
00:01:18 #3810 [Verbose] > │ let v150 : string = $"%A{v90}" │
00:01:18 #3811 [Verbose] > │ let v151 : (US0 []) = Array.zeroCreate<US0> │
00:01:18 #3812 [Verbose] > │ (System.Convert.ToInt32(v136)) │
00:01:18 #3813 [Verbose] > │ let v152 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #3814 [Verbose] > │ while method6(v136, v152) do │
00:01:18 #3815 [Verbose] > │ let v154 : uint64 = v152.l0 │
00:01:18 #3816 [Verbose] > │ let struct (v155 : US0, v156 : int64) = v112.[int v154] │
00:01:18 #3817 [Verbose] > │ v151.[int v154] <- v155 │
00:01:18 #3818 [Verbose] > │ let v157 : uint64 = v154 + 1UL │
00:01:18 #3819 [Verbose] > │ v152.l0 <- v157 │
00:01:18 #3820 [Verbose] > │ () │
00:01:18 #3821 [Verbose] > │ let v158 : US0 = v151.[int 0UL] │
00:01:18 #3822 [Verbose] > │ let v159 : string = $"%A{v158}" │
00:01:18 #3823 [Verbose] > │ let v160 : (int64 []) = Array.zeroCreate<int64> │
00:01:18 #3824 [Verbose] > │ (System.Convert.ToInt32(v136)) │
00:01:18 #3825 [Verbose] > │ let v161 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #3826 [Verbose] > │ while method6(v136, v161) do │
00:01:18 #3827 [Verbose] > │ let v163 : uint64 = v161.l0 │
00:01:18 #3828 [Verbose] > │ let struct (v164 : US0, v165 : int64) = v112.[int v163] │
00:01:18 #3829 [Verbose] > │ v160.[int v163] <- v165 │
00:01:18 #3830 [Verbose] > │ let v166 : uint64 = v163 + 1UL │
00:01:18 #3831 [Verbose] > │ v161.l0 <- v166 │
00:01:18 #3832 [Verbose] > │ () │
00:01:18 #3833 [Verbose] > │ v83.[int v86] <- struct (v150, v91, v159, v160) │
00:01:18 #3834 [Verbose] > │ let v167 : uint64 = v86 + 1UL │
00:01:18 #3835 [Verbose] > │ v84.l0 <- v167 │
00:01:18 #3836 [Verbose] > │ () │
00:01:18 #3837 [Verbose] > │ let v168 : uint64 = System.Convert.ToUInt64 v83.Length │
00:01:18 #3838 [Verbose] > │ let v169 : (struct (UH2 * US1) []) = Array.zeroCreate<struct (UH2 * │
00:01:18 #3839 [Verbose] > │ US1)> (System.Convert.ToInt32(v168)) │
00:01:18 #3840 [Verbose] > │ let v170 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #3841 [Verbose] > │ while method6(v168, v170) do │
00:01:18 #3842 [Verbose] > │ let v172 : uint64 = v170.l0 │
00:01:18 #3843 [Verbose] > │ let struct (v173 : string, v174 : string, v175 : string, v176 : │
00:01:18 #3844 [Verbose] > │ (int64 [])) = v83.[int v172] │
00:01:18 #3845 [Verbose] > │ let v177 : uint64 = System.Convert.ToUInt64 v176.Length │
00:01:18 #3846 [Verbose] > │ let v178 : UH3 = UH3_1 │
00:01:18 #3847 [Verbose] > │ let v179 : Mut2 = {l0 = 0UL; l1 = v178; l2 = 0L} : Mut2 │
00:01:18 #3848 [Verbose] > │ while method16(v177, v179) do │
00:01:18 #3849 [Verbose] > │ let v181 : uint64 = v179.l0 │
00:01:18 #3850 [Verbose] > │ let struct (v182 : UH3, v183 : int64) = v179.l1, v179.l2 │
00:01:18 #3851 [Verbose] > │ let v184 : int64 = v176.[int v181] │
00:01:18 #3852 [Verbose] > │ let v185 : int64 = v183 + 1L │
00:01:18 #3853 [Verbose] > │ let v186 : uint64 = v181 + 1UL │
00:01:18 #3854 [Verbose] > │ let v187 : UH3 = UH3_0(v183, v184, v182) │
00:01:18 #3855 [Verbose] > │ v179.l0 <- v186 │
00:01:18 #3856 [Verbose] > │ v179.l1 <- v187 │
00:01:18 #3857 [Verbose] > │ v179.l2 <- v185 │
00:01:18 #3858 [Verbose] > │ () │
00:01:18 #3859 [Verbose] > │ let struct (v188 : UH3, v189 : int64) = v179.l1, v179.l2 │
00:01:18 #3860 [Verbose] > │ let v190 : UH3 = UH3_1 │
00:01:18 #3861 [Verbose] > │ let v191 : UH3 = method17(v188, v190) │
00:01:18 #3862 [Verbose] > │ let v192 : (struct (int64 * int64) []) = method18(v191) │
00:01:18 #3863 [Verbose] > │ let v193 : int32 = v192.Length │
00:01:18 #3864 [Verbose] > │ let v194 : (struct (int64 * int64) []) = Array.zeroCreate<struct │
00:01:18 #3865 [Verbose] > │ (int64 * int64)> (v193) │
00:01:18 #3866 [Verbose] > │ let v195 : Mut0 = {l0 = 0} : Mut0 │
00:01:18 #3867 [Verbose] > │ while method21(v193, v195) do │
00:01:18 #3868 [Verbose] > │ let v197 : int32 = v195.l0 │
00:01:18 #3869 [Verbose] > │ let struct (v198 : int64, v199 : int64) = v192.[int v197] │
00:01:18 #3870 [Verbose] > │ let v200 : int64 = v198 + 1L │
00:01:18 #3871 [Verbose] > │ v194.[int v197] <- struct (v200, v199) │
00:01:18 #3872 [Verbose] > │ let v201 : int32 = v197 + 1 │
00:01:18 #3873 [Verbose] > │ v195.l0 <- v201 │
00:01:18 #3874 [Verbose] > │ () │
00:01:18 #3875 [Verbose] > │ let v202 : (struct (int64 * int64) -> int64) = closure6() │
00:01:18 #3876 [Verbose] > │ let v203 : (struct (int64 * int64) []) = v194 |> Array.sortBy v202 │
00:01:18 #3877 [Verbose] > │ let struct (v204 : int64, v205 : int64) = v203.[int 0] │
00:01:18 #3878 [Verbose] > │ let v206 : string = $"%A{struct (v204, v205)}" │
00:01:18 #3879 [Verbose] > │ let v207 : bool = v173 = v175 │
00:01:18 #3880 [Verbose] > │ let v212 : US1 = │
00:01:18 #3881 [Verbose] > │ if v207 then │
00:01:18 #3882 [Verbose] > │ let v208 : System.ConsoleColor = │
00:01:18 #3883 [Verbose] > │ System.ConsoleColor.DarkGreen │
00:01:18 #3884 [Verbose] > │ US1_1(v208) │
00:01:18 #3885 [Verbose] > │ else │
00:01:18 #3886 [Verbose] > │ let v210 : System.ConsoleColor = System.ConsoleColor.DarkRed │
00:01:18 #3887 [Verbose] > │ US1_1(v210) │
00:01:18 #3888 [Verbose] > │ let v213 : UH2 = UH2_1 │
00:01:18 #3889 [Verbose] > │ let v214 : UH2 = UH2_0(v206, v213) │
00:01:18 #3890 [Verbose] > │ let v215 : UH2 = UH2_0(v175, v214) │
00:01:18 #3891 [Verbose] > │ let v216 : UH2 = UH2_0(v173, v215) │
00:01:18 #3892 [Verbose] > │ let v217 : UH2 = UH2_0(v174, v216) │
00:01:18 #3893 [Verbose] > │ v169.[int v172] <- struct (v217, v212) │
00:01:18 #3894 [Verbose] > │ let v218 : uint64 = v172 + 1UL │
00:01:18 #3895 [Verbose] > │ v170.l0 <- v218 │
00:01:18 #3896 [Verbose] > │ () │
00:01:18 #3897 [Verbose] > │ let v219 : string = "Input" │
00:01:18 #3898 [Verbose] > │ let v220 : string = "Expected" │
00:01:18 #3899 [Verbose] > │ let v221 : string = "Result" │
00:01:18 #3900 [Verbose] > │ let v222 : string = "Best" │
00:01:18 #3901 [Verbose] > │ let v223 : UH2 = UH2_1 │
00:01:18 #3902 [Verbose] > │ let v224 : UH2 = UH2_0(v222, v223) │
00:01:18 #3903 [Verbose] > │ let v225 : UH2 = UH2_0(v221, v224) │
00:01:18 #3904 [Verbose] > │ let v226 : UH2 = UH2_0(v220, v225) │
00:01:18 #3905 [Verbose] > │ let v227 : UH2 = UH2_0(v219, v226) │
00:01:18 #3906 [Verbose] > │ let v228 : US1 = US1_0 │
00:01:18 #3907 [Verbose] > │ let v229 : string = "---" │
00:01:18 #3908 [Verbose] > │ let v230 : UH2 = UH2_1 │
00:01:18 #3909 [Verbose] > │ let v231 : UH2 = UH2_0(v229, v230) │
00:01:18 #3910 [Verbose] > │ let v232 : UH2 = UH2_0(v229, v231) │
00:01:18 #3911 [Verbose] > │ let v233 : UH2 = UH2_0(v229, v232) │
00:01:18 #3912 [Verbose] > │ let v234 : UH2 = UH2_0(v229, v233) │
00:01:18 #3913 [Verbose] > │ let v235 : US1 = US1_0 │
00:01:18 #3914 [Verbose] > │ let v236 : UH4 = UH4_1 │
00:01:18 #3915 [Verbose] > │ let v237 : UH4 = UH4_0(v234, v235, v236) │
00:01:18 #3916 [Verbose] > │ let v238 : UH4 = UH4_0(v227, v228, v237) │
00:01:18 #3917 [Verbose] > │ let v239 : (struct (UH2 * US1) []) = method22(v238) │
00:01:18 #3918 [Verbose] > │ let v240 : uint64 = System.Convert.ToUInt64 v239.Length │
00:01:18 #3919 [Verbose] > │ let v241 : uint64 = System.Convert.ToUInt64 v169.Length │
00:01:18 #3920 [Verbose] > │ let v242 : uint64 = v240 + v241 │
00:01:18 #3921 [Verbose] > │ let v243 : (struct (UH2 * US1) []) = Array.zeroCreate<struct (UH2 * │
00:01:18 #3922 [Verbose] > │ US1)> (System.Convert.ToInt32(v242)) │
00:01:18 #3923 [Verbose] > │ let v244 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #3924 [Verbose] > │ while method6(v242, v244) do │
00:01:18 #3925 [Verbose] > │ let v246 : uint64 = v244.l0 │
00:01:18 #3926 [Verbose] > │ let v247 : bool = v246 < v240 │
00:01:18 #3927 [Verbose] > │ let struct (v253 : UH2, v254 : US1) = │
00:01:18 #3928 [Verbose] > │ if v247 then │
00:01:18 #3929 [Verbose] > │ let struct (v248 : UH2, v249 : US1) = v239.[int v246] │
00:01:18 #3930 [Verbose] > │ struct (v248, v249) │
00:01:18 #3931 [Verbose] > │ else │
00:01:18 #3932 [Verbose] > │ let v250 : uint64 = v246 - v240 │
00:01:18 #3933 [Verbose] > │ let struct (v251 : UH2, v252 : US1) = v169.[int v250] │
00:01:18 #3934 [Verbose] > │ struct (v251, v252) │
00:01:18 #3935 [Verbose] > │ v243.[int v246] <- struct (v253, v254) │
00:01:18 #3936 [Verbose] > │ let v255 : uint64 = v246 + 1UL │
00:01:18 #3937 [Verbose] > │ v244.l0 <- v255 │
00:01:18 #3938 [Verbose] > │ () │
00:01:18 #3939 [Verbose] > │ let v256 : uint64 = System.Convert.ToUInt64 v243.Length │
00:01:18 #3940 [Verbose] > │ let v257 : ((string []) []) = Array.zeroCreate<(string [])> │
00:01:18 #3941 [Verbose] > │ (System.Convert.ToInt32(v256)) │
00:01:18 #3942 [Verbose] > │ let v258 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #3943 [Verbose] > │ while method6(v256, v258) do │
00:01:18 #3944 [Verbose] > │ let v260 : uint64 = v258.l0 │
00:01:18 #3945 [Verbose] > │ let struct (v261 : UH2, v262 : US1) = v243.[int v260] │
00:01:18 #3946 [Verbose] > │ let v263 : (string []) = method25(v261) │
00:01:18 #3947 [Verbose] > │ v257.[int v260] <- v263 │
00:01:18 #3948 [Verbose] > │ let v264 : uint64 = v260 + 1UL │
00:01:18 #3949 [Verbose] > │ v258.l0 <- v264 │
00:01:18 #3950 [Verbose] > │ () │
00:01:18 #3951 [Verbose] > │ let v265 : ((string []) []) = v257 |> Array.transpose │
00:01:18 #3952 [Verbose] > │ let v266 : uint64 = System.Convert.ToUInt64 v265.Length │
00:01:18 #3953 [Verbose] > │ let v267 : (int64 []) = Array.zeroCreate<int64> │
00:01:18 #3954 [Verbose] > │ (System.Convert.ToInt32(v266)) │
00:01:18 #3955 [Verbose] > │ let v268 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #3956 [Verbose] > │ while method6(v266, v268) do │
00:01:18 #3957 [Verbose] > │ let v270 : uint64 = v268.l0 │
00:01:18 #3958 [Verbose] > │ let v271 : (string []) = v265.[int v270] │
00:01:18 #3959 [Verbose] > │ let v272 : uint64 = System.Convert.ToUInt64 v271.Length │
00:01:18 #3960 [Verbose] > │ let v273 : (int64 []) = Array.zeroCreate<int64> │
00:01:18 #3961 [Verbose] > │ (System.Convert.ToInt32(v272)) │
00:01:18 #3962 [Verbose] > │ let v274 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #3963 [Verbose] > │ while method6(v272, v274) do │
00:01:18 #3964 [Verbose] > │ let v276 : uint64 = v274.l0 │
00:01:18 #3965 [Verbose] > │ let v277 : string = v271.[int v276] │
00:01:18 #3966 [Verbose] > │ let v278 : int64 = System.Convert.ToInt64 v277.Length │
00:01:18 #3967 [Verbose] > │ v273.[int v276] <- v278 │
00:01:18 #3968 [Verbose] > │ let v279 : uint64 = v276 + 1UL │
00:01:18 #3969 [Verbose] > │ v274.l0 <- v279 │
00:01:18 #3970 [Verbose] > │ () │
00:01:18 #3971 [Verbose] > │ let v280 : (int64 []) = v273 |> Array.sortDescending │
00:01:18 #3972 [Verbose] > │ let v281 : int64 option = v280 |> Array.tryItem 0 │
00:01:18 #3973 [Verbose] > │ let v282 : (int64 -> US2) = closure7() │
00:01:18 #3974 [Verbose] > │ let v283 : US2 = US2_0 │
00:01:18 #3975 [Verbose] > │ let v284 : US2 = v281 |> Option.map v282 |> Option.defaultValue v283 │
00:01:18 #3976 [Verbose] > │ let v287 : int64 = │
00:01:18 #3977 [Verbose] > │ match v284 with │
00:01:18 #3978 [Verbose] > │ | US2_0 -> (* None *) │
00:01:18 #3979 [Verbose] > │ 0L │
00:01:18 #3980 [Verbose] > │ | US2_1(v285) -> (* Some *) │
00:01:18 #3981 [Verbose] > │ v285 │
00:01:18 #3982 [Verbose] > │ v267.[int v270] <- v287 │
00:01:18 #3983 [Verbose] > │ let v288 : uint64 = v270 + 1UL │
00:01:18 #3984 [Verbose] > │ v268.l0 <- v288 │
00:01:18 #3985 [Verbose] > │ () │
00:01:18 #3986 [Verbose] > │ let v289 : uint64 = System.Convert.ToUInt64 v267.Length │
00:01:18 #3987 [Verbose] > │ let v290 : UH5 = UH5_1 │
00:01:18 #3988 [Verbose] > │ let v291 : Mut3 = {l0 = 0UL; l1 = v290; l2 = 0} : Mut3 │
00:01:18 #3989 [Verbose] > │ while method28(v289, v291) do │
00:01:18 #3990 [Verbose] > │ let v293 : uint64 = v291.l0 │
00:01:18 #3991 [Verbose] > │ let struct (v294 : UH5, v295 : int32) = v291.l1, v291.l2 │
00:01:18 #3992 [Verbose] > │ let v296 : int64 = v267.[int v293] │
00:01:18 #3993 [Verbose] > │ let v297 : int32 = v295 + 1 │
00:01:18 #3994 [Verbose] > │ let v298 : uint64 = v293 + 1UL │
00:01:18 #3995 [Verbose] > │ let v299 : UH5 = UH5_0(v295, v296, v294) │
00:01:18 #3996 [Verbose] > │ v291.l0 <- v298 │
00:01:18 #3997 [Verbose] > │ v291.l1 <- v299 │
00:01:18 #3998 [Verbose] > │ v291.l2 <- v297 │
00:01:18 #3999 [Verbose] > │ () │
00:01:18 #4000 [Verbose] > │ let struct (v300 : UH5, v301 : int32) = v291.l1, v291.l2 │
00:01:18 #4001 [Verbose] > │ let v302 : UH5 = UH5_1 │
00:01:18 #4002 [Verbose] > │ let v303 : UH5 = method29(v300, v302) │
00:01:18 #4003 [Verbose] > │ let v304 : (struct (int32 * int64) []) = method30(v303) │
00:01:18 #4004 [Verbose] > │ let v305 : Map<int32, int64> = v304 |> Array.map (fun (struct (a, b)) -> │
00:01:18 #4005 [Verbose] > │ a, b) |> Map.ofArray │
00:01:18 #4006 [Verbose] > │ let v306 : (struct ((string []) * US1) []) = Array.zeroCreate<struct │
00:01:18 #4007 [Verbose] > │ ((string []) * US1)> (System.Convert.ToInt32(v256)) │
00:01:18 #4008 [Verbose] > │ let v307 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #4009 [Verbose] > │ while method6(v256, v307) do │
00:01:18 #4010 [Verbose] > │ let v309 : uint64 = v307.l0 │
00:01:18 #4011 [Verbose] > │ let struct (v310 : UH2, v311 : US1) = v243.[int v309] │
00:01:18 #4012 [Verbose] > │ let v312 : UH6 = UH6_1 │
00:01:18 #4013 [Verbose] > │ let v313 : int32 = 0 │
00:01:18 #4014 [Verbose] > │ let struct (v314 : UH6, v315 : int32) = method33(v310, v312, v313) │
00:01:18 #4015 [Verbose] > │ let v316 : UH6 = UH6_1 │
00:01:18 #4016 [Verbose] > │ let v317 : UH6 = method34(v314, v316) │
00:01:18 #4017 [Verbose] > │ let v318 : UH2 = UH2_1 │
00:01:18 #4018 [Verbose] > │ let v319 : UH2 = method35(v305, v317, v318) │
00:01:18 #4019 [Verbose] > │ let v320 : (string []) = method36(v319) │
00:01:18 #4020 [Verbose] > │ v306.[int v309] <- struct (v320, v311) │
00:01:18 #4021 [Verbose] > │ let v321 : uint64 = v309 + 1UL │
00:01:18 #4022 [Verbose] > │ v307.l0 <- v321 │
00:01:18 #4023 [Verbose] > │ () │
00:01:18 #4024 [Verbose] > │ System.Console.WriteLine v35 │
00:01:18 #4025 [Verbose] > │ let v322 : uint64 = System.Convert.ToUInt64 v306.Length │
00:01:18 #4026 [Verbose] > │ let v323 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #4027 [Verbose] > │ while method6(v322, v323) do │
00:01:18 #4028 [Verbose] > │ let v325 : uint64 = v323.l0 │
00:01:18 #4029 [Verbose] > │ let struct (v326 : (string []), v327 : US1) = v306.[int v325] │
00:01:18 #4030 [Verbose] > │ match v327 with │
00:01:18 #4031 [Verbose] > │ | US1_0 -> (* None *) │
00:01:18 #4032 [Verbose] > │ let mutable result = None │
00:01:18 #4033 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:01:18 #4034 [Verbose] > │ () │
00:01:18 #4035 [Verbose] > │ #endif │
00:01:18 #4036 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:18 #4037 [Verbose] > │ () │
00:01:18 #4038 [Verbose] > │ #endif │
00:01:18 #4039 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:18 #4040 [Verbose] > │ System.Console.ResetColor () │
00:01:18 #4041 [Verbose] > │ () │
00:01:18 #4042 [Verbose] > │ #endif │
00:01:18 #4043 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:18 #4044 [Verbose] > │ System.Console.ResetColor () │
00:01:18 #4045 [Verbose] > │ () │
00:01:18 #4046 [Verbose] > │ #endif │
00:01:18 #4047 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:18 #4048 [Verbose] > │ System.Console.ResetColor () │
00:01:18 #4049 [Verbose] > │ () │
00:01:18 #4050 [Verbose] > │ #endif │
00:01:18 #4051 [Verbose] > │ |> fun x -> result <- Some x │
00:01:18 #4052 [Verbose] > │ result |> Option.get │
00:01:18 #4053 [Verbose] > │ () │
00:01:18 #4054 [Verbose] > │ | US1_1(v328) -> (* Some *) │
00:01:18 #4055 [Verbose] > │ let mutable result = None │
00:01:18 #4056 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:01:18 #4057 [Verbose] > │ () │
00:01:18 #4058 [Verbose] > │ #endif │
00:01:18 #4059 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:18 #4060 [Verbose] > │ () │
00:01:18 #4061 [Verbose] > │ #endif │
00:01:18 #4062 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:18 #4063 [Verbose] > │ System.Console.ForegroundColor <- v328 │
00:01:18 #4064 [Verbose] > │ () │
00:01:18 #4065 [Verbose] > │ #endif │
00:01:18 #4066 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:18 #4067 [Verbose] > │ System.Console.ForegroundColor <- v328 │
00:01:18 #4068 [Verbose] > │ () │
00:01:18 #4069 [Verbose] > │ #endif │
00:01:18 #4070 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:18 #4071 [Verbose] > │ System.Console.ForegroundColor <- v328 │
00:01:18 #4072 [Verbose] > │ () │
00:01:18 #4073 [Verbose] > │ #endif │
00:01:18 #4074 [Verbose] > │ |> fun x -> result <- Some x │
00:01:18 #4075 [Verbose] > │ result |> Option.get │
00:01:18 #4076 [Verbose] > │ () │
00:01:18 #4077 [Verbose] > │ let v329 : string = "\t| " │
00:01:18 #4078 [Verbose] > │ let v330 : string = System.String.Join (v329, v326) │
00:01:18 #4079 [Verbose] > │ System.Console.WriteLine v330 │
00:01:18 #4080 [Verbose] > │ let mutable result = None │
00:01:18 #4081 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:01:18 #4082 [Verbose] > │ () │
00:01:18 #4083 [Verbose] > │ #endif │
00:01:18 #4084 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:18 #4085 [Verbose] > │ () │
00:01:18 #4086 [Verbose] > │ #endif │
00:01:18 #4087 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:18 #4088 [Verbose] > │ System.Console.ResetColor () │
00:01:18 #4089 [Verbose] > │ () │
00:01:18 #4090 [Verbose] > │ #endif │
00:01:18 #4091 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:18 #4092 [Verbose] > │ System.Console.ResetColor () │
00:01:18 #4093 [Verbose] > │ () │
00:01:18 #4094 [Verbose] > │ #endif │
00:01:18 #4095 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:18 #4096 [Verbose] > │ System.Console.ResetColor () │
00:01:18 #4097 [Verbose] > │ () │
00:01:18 #4098 [Verbose] > │ #endif │
00:01:18 #4099 [Verbose] > │ |> fun x -> result <- Some x │
00:01:18 #4100 [Verbose] > │ result |> Option.get │
00:01:18 #4101 [Verbose] > │ let v331 : uint64 = v325 + 1UL │
00:01:18 #4102 [Verbose] > │ v323.l0 <- v331 │
00:01:18 #4103 [Verbose] > │ () │
00:01:18 #4104 [Verbose] > │ let v332 : ((float []) []) = Array.zeroCreate<(float [])> │
00:01:18 #4105 [Verbose] > │ (System.Convert.ToInt32(v168)) │
00:01:18 #4106 [Verbose] > │ let v333 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #4107 [Verbose] > │ while method6(v168, v333) do │
00:01:18 #4108 [Verbose] > │ let v335 : uint64 = v333.l0 │
00:01:18 #4109 [Verbose] > │ let struct (v336 : string, v337 : string, v338 : string, v339 : │
00:01:18 #4110 [Verbose] > │ (int64 [])) = v83.[int v335] │
00:01:18 #4111 [Verbose] > │ let v340 : (int64 -> float) = float │
00:01:18 #4112 [Verbose] > │ let v341 : uint64 = System.Convert.ToUInt64 v339.Length │
00:01:18 #4113 [Verbose] > │ let v342 : (float []) = Array.zeroCreate<float> │
00:01:18 #4114 [Verbose] > │ (System.Convert.ToInt32(v341)) │
00:01:18 #4115 [Verbose] > │ let v343 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #4116 [Verbose] > │ while method6(v341, v343) do │
00:01:18 #4117 [Verbose] > │ let v345 : uint64 = v343.l0 │
00:01:18 #4118 [Verbose] > │ let v346 : int64 = v339.[int v345] │
00:01:18 #4119 [Verbose] > │ let v347 : float = v340 v346 │
00:01:18 #4120 [Verbose] > │ v342.[int v345] <- v347 │
00:01:18 #4121 [Verbose] > │ let v348 : uint64 = v345 + 1UL │
00:01:18 #4122 [Verbose] > │ v343.l0 <- v348 │
00:01:18 #4123 [Verbose] > │ () │
00:01:18 #4124 [Verbose] > │ v332.[int v335] <- v342 │
00:01:18 #4125 [Verbose] > │ let v349 : uint64 = v335 + 1UL │
00:01:18 #4126 [Verbose] > │ v333.l0 <- v349 │
00:01:18 #4127 [Verbose] > │ () │
00:01:18 #4128 [Verbose] > │ let v350 : ((float []) []) = v332 |> Array.transpose │
00:01:18 #4129 [Verbose] > │ let v351 : uint64 = System.Convert.ToUInt64 v350.Length │
00:01:18 #4130 [Verbose] > │ let v352 : (float []) = Array.zeroCreate<float> │
00:01:18 #4131 [Verbose] > │ (System.Convert.ToInt32(v351)) │
00:01:18 #4132 [Verbose] > │ let v353 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #4133 [Verbose] > │ while method6(v351, v353) do │
00:01:18 #4134 [Verbose] > │ let v355 : uint64 = v353.l0 │
00:01:18 #4135 [Verbose] > │ let v356 : (float []) = v350.[int v355] │
00:01:18 #4136 [Verbose] > │ let v357 : float = v356 |> Array.average │
00:01:18 #4137 [Verbose] > │ v352.[int v355] <- v357 │
00:01:18 #4138 [Verbose] > │ let v358 : uint64 = v355 + 1UL │
00:01:18 #4139 [Verbose] > │ v353.l0 <- v358 │
00:01:18 #4140 [Verbose] > │ () │
00:01:18 #4141 [Verbose] > │ let v359 : (float -> int64) = int64 │
00:01:18 #4142 [Verbose] > │ let v360 : uint64 = System.Convert.ToUInt64 v352.Length │
00:01:18 #4143 [Verbose] > │ let v361 : (int64 []) = Array.zeroCreate<int64> │
00:01:18 #4144 [Verbose] > │ (System.Convert.ToInt32(v360)) │
00:01:18 #4145 [Verbose] > │ let v362 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #4146 [Verbose] > │ while method6(v360, v362) do │
00:01:18 #4147 [Verbose] > │ let v364 : uint64 = v362.l0 │
00:01:18 #4148 [Verbose] > │ let v365 : float = v352.[int v364] │
00:01:18 #4149 [Verbose] > │ let v366 : int64 = v359 v365 │
00:01:18 #4150 [Verbose] > │ v361.[int v364] <- v366 │
00:01:18 #4151 [Verbose] > │ let v367 : uint64 = v364 + 1UL │
00:01:18 #4152 [Verbose] > │ v362.l0 <- v367 │
00:01:18 #4153 [Verbose] > │ () │
00:01:18 #4154 [Verbose] > │ let v368 : uint64 = System.Convert.ToUInt64 v361.Length │
00:01:18 #4155 [Verbose] > │ let v369 : UH5 = UH5_1 │
00:01:18 #4156 [Verbose] > │ let v370 : Mut3 = {l0 = 0UL; l1 = v369; l2 = 0} : Mut3 │
00:01:18 #4157 [Verbose] > │ while method28(v368, v370) do │
00:01:18 #4158 [Verbose] > │ let v372 : uint64 = v370.l0 │
00:01:18 #4159 [Verbose] > │ let struct (v373 : UH5, v374 : int32) = v370.l1, v370.l2 │
00:01:18 #4160 [Verbose] > │ let v375 : int64 = v361.[int v372] │
00:01:18 #4161 [Verbose] > │ let v376 : int32 = v374 + 1 │
00:01:18 #4162 [Verbose] > │ let v377 : uint64 = v372 + 1UL │
00:01:18 #4163 [Verbose] > │ let v378 : UH5 = UH5_0(v374, v375, v373) │
00:01:18 #4164 [Verbose] > │ v370.l0 <- v377 │
00:01:18 #4165 [Verbose] > │ v370.l1 <- v378 │
00:01:18 #4166 [Verbose] > │ v370.l2 <- v376 │
00:01:18 #4167 [Verbose] > │ () │
00:01:18 #4168 [Verbose] > │ let struct (v379 : UH5, v380 : int32) = v370.l1, v370.l2 │
00:01:18 #4169 [Verbose] > │ let v381 : UH5 = UH5_1 │
00:01:18 #4170 [Verbose] > │ let v382 : UH5 = method29(v379, v381) │
00:01:18 #4171 [Verbose] > │ let v383 : (struct (int32 * int64) []) = method39(v382) │
00:01:18 #4172 [Verbose] > │ System.Console.WriteLine v35 │
00:01:18 #4173 [Verbose] > │ let v384 : string = "Average Ranking " │
00:01:18 #4174 [Verbose] > │ System.Console.WriteLine v384 │
00:01:18 #4175 [Verbose] > │ let v385 : (struct (int32 * int64) -> int64) = closure8() │
00:01:18 #4176 [Verbose] > │ let v386 : (struct (int32 * int64) []) = v383 |> Array.sortBy v385 │
00:01:18 #4177 [Verbose] > │ let v387 : uint64 = System.Convert.ToUInt64 v386.Length │
00:01:18 #4178 [Verbose] > │ let v388 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #4179 [Verbose] > │ while method6(v387, v388) do │
00:01:18 #4180 [Verbose] > │ let v390 : uint64 = v388.l0 │
00:01:18 #4181 [Verbose] > │ let struct (v391 : int32, v392 : int64) = v386.[int v390] │
00:01:18 #4182 [Verbose] > │ let v393 : string = $"Test case %d{v391 + 1}. Average Time: %A{v392} │
00:01:18 #4183 [Verbose] > │ " │
00:01:18 #4184 [Verbose] > │ System.Console.WriteLine v393 │
00:01:18 #4185 [Verbose] > │ let v394 : uint64 = v390 + 1UL │
00:01:18 #4186 [Verbose] > │ v388.l0 <- v394 │
00:01:18 #4187 [Verbose] > │ () │
00:01:18 #4188 [Verbose] > │ () │
00:01:18 #4189 [Verbose] > │ and method0 () : unit = │
00:01:18 #4190 [Verbose] > │ let v0 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:18 #4191 [Verbose] > │ let v1 : (int32 []) = method1(v0) │
00:01:18 #4192 [Verbose] > │ let v2 : int32 = v1.Length │
00:01:18 #4193 [Verbose] > │ let v3 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:18 #4194 [Verbose] > │ let v4 : (int32 []) = method1(v3) │
00:01:18 #4195 [Verbose] > │ let v5 : int32 = v4.Length │
00:01:18 #4196 [Verbose] > │ let v6 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:18 #4197 [Verbose] > │ let v7 : (int32 []) = method1(v6) │
00:01:18 #4198 [Verbose] > │ let v8 : int32 = v7.Length │
00:01:18 #4199 [Verbose] > │ let v9 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:18 #4200 [Verbose] > │ let v10 : (int32 []) = method1(v9) │
00:01:18 #4201 [Verbose] > │ let v11 : int32 = v10.Length │
00:01:18 #4202 [Verbose] > │ let v12 : (int32 []) = Array.zeroCreate<int32> (100) │
00:01:18 #4203 [Verbose] > │ let v13 : Mut0 = {l0 = 0} : Mut0 │
00:01:18 #4204 [Verbose] > │ while method2(v13) do │
00:01:18 #4205 [Verbose] > │ let v15 : int32 = v13.l0 │
00:01:18 #4206 [Verbose] > │ let v16 : int32 = 1 + v15 │
00:01:18 #4207 [Verbose] > │ v12.[int v15] <- v16 │
00:01:18 #4208 [Verbose] > │ let v17 : int32 = v15 + 1 │
00:01:18 #4209 [Verbose] > │ v13.l0 <- v17 │
00:01:18 #4210 [Verbose] > │ () │
00:01:18 #4211 [Verbose] > │ let v18 : int32 = v12.Length │
00:01:18 #4212 [Verbose] > │ let v19 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:18 #4213 [Verbose] > │ let v20 : (int32 []) = method1(v19) │
00:01:18 #4214 [Verbose] > │ let v21 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:18 #4215 [Verbose] > │ let v22 : (int32 []) = method1(v21) │
00:01:18 #4216 [Verbose] > │ let v23 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:18 #4217 [Verbose] > │ let v24 : (int32 []) = method1(v23) │
00:01:18 #4218 [Verbose] > │ let v25 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:18 #4219 [Verbose] > │ let v26 : (int32 []) = method1(v25) │
00:01:18 #4220 [Verbose] > │ let v27 : (int32 []) = Array.zeroCreate<int32> (100) │
00:01:18 #4221 [Verbose] > │ let v28 : Mut0 = {l0 = 0} : Mut0 │
00:01:18 #4222 [Verbose] > │ while method2(v28) do │
00:01:18 #4223 [Verbose] > │ let v30 : int32 = v28.l0 │
00:01:18 #4224 [Verbose] > │ let v31 : int32 = 1 + v30 │
00:01:18 #4225 [Verbose] > │ v27.[int v30] <- v31 │
00:01:18 #4226 [Verbose] > │ let v32 : int32 = v30 + 1 │
00:01:18 #4227 [Verbose] > │ v28.l0 <- v32 │
00:01:18 #4228 [Verbose] > │ () │
00:01:18 #4229 [Verbose] > │ let v33 : (unit -> unit) = closure0() │
00:01:18 #4230 [Verbose] > │ let v34 : string = nameof v33 │
00:01:18 #4231 [Verbose] > │ let v35 : string = "" │
00:01:18 #4232 [Verbose] > │ System.Console.WriteLine v35 │
00:01:18 #4233 [Verbose] > │ System.Console.WriteLine v35 │
00:01:18 #4234 [Verbose] > │ let v36 : string = $"Test: {v34}" │
00:01:18 #4235 [Verbose] > │ System.Console.WriteLine v36 │
00:01:18 #4236 [Verbose] > │ let v37 : int32 = 6 │
00:01:18 #4237 [Verbose] > │ let v38 : int32 = 3 │
00:01:18 #4238 [Verbose] > │ let v39 : US0 = US0_1(v38) │
00:01:18 #4239 [Verbose] > │ let v40 : int32 = 1 │
00:01:18 #4240 [Verbose] > │ let v41 : int32 = 0 │
00:01:18 #4241 [Verbose] > │ let v42 : US0 = US0_1(v41) │
00:01:18 #4242 [Verbose] > │ let v43 : int32 = 11 │
00:01:18 #4243 [Verbose] > │ let v44 : int32 = 6 │
00:01:18 #4244 [Verbose] > │ let v45 : US0 = US0_1(v44) │
00:01:18 #4245 [Verbose] > │ let v46 : int32 = 12 │
00:01:18 #4246 [Verbose] > │ let v47 : US0 = US0_0 │
00:01:18 #4247 [Verbose] > │ let v48 : int32 = 60 │
00:01:18 #4248 [Verbose] > │ let v49 : int32 = 59 │
00:01:18 #4249 [Verbose] > │ let v50 : US0 = US0_1(v49) │
00:01:18 #4250 [Verbose] > │ let v51 : int32 = 6 │
00:01:18 #4251 [Verbose] > │ let v52 : int32 = 7 │
00:01:18 #4252 [Verbose] > │ let v53 : int32 = 3 │
00:01:18 #4253 [Verbose] > │ let v54 : US0 = US0_1(v53) │
00:01:18 #4254 [Verbose] > │ let v55 : int32 = 1 │
00:01:18 #4255 [Verbose] > │ let v56 : int32 = 7 │
00:01:18 #4256 [Verbose] > │ let v57 : int32 = 0 │
00:01:18 #4257 [Verbose] > │ let v58 : US0 = US0_1(v57) │
00:01:18 #4258 [Verbose] > │ let v59 : int32 = 11 │
00:01:18 #4259 [Verbose] > │ let v60 : int32 = 7 │
00:01:18 #4260 [Verbose] > │ let v61 : int32 = 6 │
00:01:18 #4261 [Verbose] > │ let v62 : US0 = US0_1(v61) │
00:01:18 #4262 [Verbose] > │ let v63 : int32 = 12 │
00:01:18 #4263 [Verbose] > │ let v64 : int32 = 7 │
00:01:18 #4264 [Verbose] > │ let v65 : US0 = US0_0 │
00:01:18 #4265 [Verbose] > │ let v66 : int32 = 60 │
00:01:18 #4266 [Verbose] > │ let v67 : int32 = 100 │
00:01:18 #4267 [Verbose] > │ let v68 : int32 = 59 │
00:01:18 #4268 [Verbose] > │ let v69 : US0 = US0_1(v68) │
00:01:18 #4269 [Verbose] > │ let v70 : UH0 = UH0_1 │
00:01:18 #4270 [Verbose] > │ let v71 : UH0 = UH0_0(v27, v66, v67, v69, v70) │
00:01:18 #4271 [Verbose] > │ let v72 : UH0 = UH0_0(v26, v63, v64, v65, v71) │
00:01:18 #4272 [Verbose] > │ let v73 : UH0 = UH0_0(v24, v59, v60, v62, v72) │
00:01:18 #4273 [Verbose] > │ let v74 : UH0 = UH0_0(v22, v55, v56, v58, v73) │
00:01:18 #4274 [Verbose] > │ let v75 : UH0 = UH0_0(v20, v51, v52, v54, v74) │
00:01:18 #4275 [Verbose] > │ let v76 : UH0 = UH0_0(v12, v48, v18, v50, v75) │
00:01:18 #4276 [Verbose] > │ let v77 : UH0 = UH0_0(v10, v46, v11, v47, v76) │
00:01:18 #4277 [Verbose] > │ let v78 : UH0 = UH0_0(v7, v43, v8, v45, v77) │
00:01:18 #4278 [Verbose] > │ let v79 : UH0 = UH0_0(v4, v40, v5, v42, v78) │
00:01:18 #4279 [Verbose] > │ let v80 : UH0 = UH0_0(v1, v37, v2, v39, v79) │
00:01:18 #4280 [Verbose] > │ let v81 : (struct ((int32 []) * int32 * int32 * US0) []) = method3(v80) │
00:01:18 #4281 [Verbose] > │ let v82 : uint64 = System.Convert.ToUInt64 v81.Length │
00:01:18 #4282 [Verbose] > │ let v83 : (struct (string * string * string * (int64 [])) []) = │
00:01:18 #4283 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))> │
00:01:18 #4284 [Verbose] > │ (System.Convert.ToInt32(v82)) │
00:01:18 #4285 [Verbose] > │ let v84 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #4286 [Verbose] > │ while method6(v82, v84) do │
00:01:18 #4287 [Verbose] > │ let v86 : uint64 = v84.l0 │
00:01:18 #4288 [Verbose] > │ let struct (v87 : (int32 []), v88 : int32, v89 : int32, v90 : US0) = │
00:01:18 #4289 [Verbose] > │ v81.[int v86] │
00:01:18 #4290 [Verbose] > │ let v91 : string = $"%A{struct (v87, v88, v89)}" │
00:01:18 #4291 [Verbose] > │ System.Console.WriteLine v35 │
00:01:18 #4292 [Verbose] > │ let v92 : string = $"Solution: {v91} " │
00:01:18 #4293 [Verbose] > │ System.Console.WriteLine v92 │
00:01:18 #4294 [Verbose] > │ let v93 : int32 = 0 │
00:01:18 #4295 [Verbose] > │ let v94 : string = "semi_open_1" │
00:01:18 #4296 [Verbose] > │ let v95 : (struct ((int32 []) * int32 * int32) -> US0) = closure1() │
00:01:18 #4297 [Verbose] > │ let v96 : int32 = 1 │
00:01:18 #4298 [Verbose] > │ let v97 : string = "closed_1" │
00:01:18 #4299 [Verbose] > │ let v98 : (struct ((int32 []) * int32 * int32) -> US0) = closure2() │
00:01:18 #4300 [Verbose] > │ let v99 : int32 = 2 │
00:01:18 #4301 [Verbose] > │ let v100 : string = "semi_open_2" │
00:01:18 #4302 [Verbose] > │ let v101 : (struct ((int32 []) * int32 * int32) -> US0) = closure3() │
00:01:18 #4303 [Verbose] > │ let v102 : int32 = 3 │
00:01:18 #4304 [Verbose] > │ let v103 : string = "closed_2" │
00:01:18 #4305 [Verbose] > │ let v104 : (struct ((int32 []) * int32 * int32) -> US0) = closure4() │
00:01:18 #4306 [Verbose] > │ let v105 : UH1 = UH1_1 │
00:01:18 #4307 [Verbose] > │ let v106 : UH1 = UH1_0(v102, v103, v104, v105) │
00:01:18 #4308 [Verbose] > │ let v107 : UH1 = UH1_0(v99, v100, v101, v106) │
00:01:18 #4309 [Verbose] > │ let v108 : UH1 = UH1_0(v96, v97, v98, v107) │
00:01:18 #4310 [Verbose] > │ let v109 : UH1 = UH1_0(v93, v94, v95, v108) │
00:01:18 #4311 [Verbose] > │ let v110 : (struct (int32 * string * (struct ((int32 []) * int32 * │
00:01:18 #4312 [Verbose] > │ int32) -> US0)) []) = method11(v109) │
00:01:18 #4313 [Verbose] > │ let v111 : uint64 = System.Convert.ToUInt64 v110.Length │
00:01:18 #4314 [Verbose] > │ let v112 : (struct (US0 * int64) []) = Array.zeroCreate<struct (US0 │
00:01:18 #4315 [Verbose] > │ * int64)> (System.Convert.ToInt32(v111)) │
00:01:18 #4316 [Verbose] > │ let v113 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #4317 [Verbose] > │ while method6(v111, v113) do │
00:01:18 #4318 [Verbose] > │ let v115 : uint64 = v113.l0 │
00:01:18 #4319 [Verbose] > │ let struct (v116 : int32, v117 : string, v118 : (struct ((int32 │
00:01:18 #4320 [Verbose] > │ []) * int32 * int32) -> US0)) = v110.[int v115] │
00:01:18 #4321 [Verbose] > │ let mutable result = None │
00:01:18 #4322 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:01:18 #4323 [Verbose] > │ () │
00:01:18 #4324 [Verbose] > │ #endif │
00:01:18 #4325 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:18 #4326 [Verbose] > │ () │
00:01:18 #4327 [Verbose] > │ #endif │
00:01:18 #4328 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:18 #4329 [Verbose] > │ System.GC.Collect () │
00:01:18 #4330 [Verbose] > │ () │
00:01:18 #4331 [Verbose] > │ #endif │
00:01:18 #4332 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:18 #4333 [Verbose] > │ System.GC.Collect () │
00:01:18 #4334 [Verbose] > │ () │
00:01:18 #4335 [Verbose] > │ #endif │
00:01:18 #4336 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:18 #4337 [Verbose] > │ System.GC.Collect () │
00:01:18 #4338 [Verbose] > │ () │
00:01:18 #4339 [Verbose] > │ #endif │
00:01:18 #4340 [Verbose] > │ |> fun x -> result <- Some x │
00:01:18 #4341 [Verbose] > │ result |> Option.get │
00:01:18 #4342 [Verbose] > │ let v119 : (unit -> System.Diagnostics.Stopwatch) = │
00:01:18 #4343 [Verbose] > │ System.Diagnostics.Stopwatch │
00:01:18 #4344 [Verbose] > │ let v120 : System.Diagnostics.Stopwatch = v119 () │
00:01:18 #4345 [Verbose] > │ v120.Start () │
00:01:18 #4346 [Verbose] > │ let v121 : int64 = v120.ElapsedMilliseconds │
00:01:18 #4347 [Verbose] > │ let v122 : (int32 []) = Array.zeroCreate<int32> (8000001) │
00:01:18 #4348 [Verbose] > │ let v123 : Mut0 = {l0 = 0} : Mut0 │
00:01:18 #4349 [Verbose] > │ while method14(v123) do │
00:01:18 #4350 [Verbose] > │ let v125 : int32 = v123.l0 │
00:01:18 #4351 [Verbose] > │ v122.[int v125] <- v125 │
00:01:18 #4352 [Verbose] > │ let v126 : int32 = v125 + 1 │
00:01:18 #4353 [Verbose] > │ v123.l0 <- v126 │
00:01:18 #4354 [Verbose] > │ () │
00:01:18 #4355 [Verbose] > │ let v127 : (int32 -> US0) = closure5(v87, v88, v89, v118) │
00:01:18 #4356 [Verbose] > │ let v128 : (US0 []) = v122 |> Array.Parallel.map v127 │
00:01:18 #4357 [Verbose] > │ let v129 : int32 = v128.Length │
00:01:18 #4358 [Verbose] > │ let v130 : int32 = v129 - 1 │
00:01:18 #4359 [Verbose] > │ let v131 : US0 = v128.[int v130] │
00:01:18 #4360 [Verbose] > │ let v132 : int64 = v120.ElapsedMilliseconds │
00:01:18 #4361 [Verbose] > │ let v133 : int64 = v132 - v121 │
00:01:18 #4362 [Verbose] > │ let v134 : string = $"Test case {v116 + 1}. {v117}. Time: {v133} │
00:01:18 #4363 [Verbose] > │ " │
00:01:18 #4364 [Verbose] > │ System.Console.WriteLine v134 │
00:01:18 #4365 [Verbose] > │ v112.[int v115] <- struct (v131, v133) │
00:01:18 #4366 [Verbose] > │ let v135 : uint64 = v115 + 1UL │
00:01:18 #4367 [Verbose] > │ v113.l0 <- v135 │
00:01:18 #4368 [Verbose] > │ () │
00:01:18 #4369 [Verbose] > │ let v136 : uint64 = System.Convert.ToUInt64 v112.Length │
00:01:18 #4370 [Verbose] > │ let v137 : (US0 []) = Array.zeroCreate<US0> │
00:01:18 #4371 [Verbose] > │ (System.Convert.ToInt32(v136)) │
00:01:18 #4372 [Verbose] > │ let v138 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #4373 [Verbose] > │ while method6(v136, v138) do │
00:01:18 #4374 [Verbose] > │ let v140 : uint64 = v138.l0 │
00:01:18 #4375 [Verbose] > │ let struct (v141 : US0, v142 : int64) = v112.[int v140] │
00:01:18 #4376 [Verbose] > │ v137.[int v140] <- v141 │
00:01:18 #4377 [Verbose] > │ let v143 : uint64 = v140 + 1UL │
00:01:18 #4378 [Verbose] > │ v138.l0 <- v143 │
00:01:18 #4379 [Verbose] > │ () │
00:01:18 #4380 [Verbose] > │ let v144 : uint64 = System.Convert.ToUInt64 v137.Length │
00:01:18 #4381 [Verbose] > │ let v145 : bool = v144 <= 1UL │
00:01:18 #4382 [Verbose] > │ if v145 then │
00:01:18 #4383 [Verbose] > │ () │
00:01:18 #4384 [Verbose] > │ else │
00:01:18 #4385 [Verbose] > │ let v146 : US0 = v137.[int 0UL] │
00:01:18 #4386 [Verbose] > │ let v147 : uint64 = 0UL │
00:01:18 #4387 [Verbose] > │ let v148 : bool = method15(v146, v137, v147) │
00:01:18 #4388 [Verbose] > │ if v148 then │
00:01:18 #4389 [Verbose] > │ () │
00:01:18 #4390 [Verbose] > │ else │
00:01:18 #4391 [Verbose] > │ let v149 : string = $"Challenge error: {v137}" │
00:01:18 #4392 [Verbose] > │ failwith<unit> v149 │
00:01:18 #4393 [Verbose] > │ let v150 : string = $"%A{v90}" │
00:01:18 #4394 [Verbose] > │ let v151 : (US0 []) = Array.zeroCreate<US0> │
00:01:18 #4395 [Verbose] > │ (System.Convert.ToInt32(v136)) │
00:01:18 #4396 [Verbose] > │ let v152 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #4397 [Verbose] > │ while method6(v136, v152) do │
00:01:18 #4398 [Verbose] > │ let v154 : uint64 = v152.l0 │
00:01:18 #4399 [Verbose] > │ let struct (v155 : US0, v156 : int64) = v112.[int v154] │
00:01:18 #4400 [Verbose] > │ v151.[int v154] <- v155 │
00:01:18 #4401 [Verbose] > │ let v157 : uint64 = v154 + 1UL │
00:01:18 #4402 [Verbose] > │ v152.l0 <- v157 │
00:01:18 #4403 [Verbose] > │ () │
00:01:18 #4404 [Verbose] > │ let v158 : US0 = v151.[int 0UL] │
00:01:18 #4405 [Verbose] > │ let v159 : string = $"%A{v158}" │
00:01:18 #4406 [Verbose] > │ let v160 : (int64 []) = Array.zeroCreate<int64> │
00:01:18 #4407 [Verbose] > │ (System.Convert.ToInt32(v136)) │
00:01:18 #4408 [Verbose] > │ let v161 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #4409 [Verbose] > │ while method6(v136, v161) do │
00:01:18 #4410 [Verbose] > │ let v163 : uint64 = v161.l0 │
00:01:18 #4411 [Verbose] > │ let struct (v164 : US0, v165 : int64) = v112.[int v163] │
00:01:18 #4412 [Verbose] > │ v160.[int v163] <- v165 │
00:01:18 #4413 [Verbose] > │ let v166 : uint64 = v163 + 1UL │
00:01:18 #4414 [Verbose] > │ v161.l0 <- v166 │
00:01:18 #4415 [Verbose] > │ () │
00:01:18 #4416 [Verbose] > │ v83.[int v86] <- struct (v150, v91, v159, v160) │
00:01:18 #4417 [Verbose] > │ let v167 : uint64 = v86 + 1UL │
00:01:18 #4418 [Verbose] > │ v84.l0 <- v167 │
00:01:18 #4419 [Verbose] > │ () │
00:01:18 #4420 [Verbose] > │ let v168 : uint64 = System.Convert.ToUInt64 v83.Length │
00:01:18 #4421 [Verbose] > │ let v169 : (struct (UH2 * US1) []) = Array.zeroCreate<struct (UH2 * │
00:01:18 #4422 [Verbose] > │ US1)> (System.Convert.ToInt32(v168)) │
00:01:18 #4423 [Verbose] > │ let v170 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #4424 [Verbose] > │ while method6(v168, v170) do │
00:01:18 #4425 [Verbose] > │ let v172 : uint64 = v170.l0 │
00:01:18 #4426 [Verbose] > │ let struct (v173 : string, v174 : string, v175 : string, v176 : │
00:01:18 #4427 [Verbose] > │ (int64 [])) = v83.[int v172] │
00:01:18 #4428 [Verbose] > │ let v177 : uint64 = System.Convert.ToUInt64 v176.Length │
00:01:18 #4429 [Verbose] > │ let v178 : UH3 = UH3_1 │
00:01:18 #4430 [Verbose] > │ let v179 : Mut2 = {l0 = 0UL; l1 = v178; l2 = 0L} : Mut2 │
00:01:18 #4431 [Verbose] > │ while method16(v177, v179) do │
00:01:18 #4432 [Verbose] > │ let v181 : uint64 = v179.l0 │
00:01:18 #4433 [Verbose] > │ let struct (v182 : UH3, v183 : int64) = v179.l1, v179.l2 │
00:01:18 #4434 [Verbose] > │ let v184 : int64 = v176.[int v181] │
00:01:18 #4435 [Verbose] > │ let v185 : int64 = v183 + 1L │
00:01:18 #4436 [Verbose] > │ let v186 : uint64 = v181 + 1UL │
00:01:18 #4437 [Verbose] > │ let v187 : UH3 = UH3_0(v183, v184, v182) │
00:01:18 #4438 [Verbose] > │ v179.l0 <- v186 │
00:01:18 #4439 [Verbose] > │ v179.l1 <- v187 │
00:01:18 #4440 [Verbose] > │ v179.l2 <- v185 │
00:01:18 #4441 [Verbose] > │ () │
00:01:18 #4442 [Verbose] > │ let struct (v188 : UH3, v189 : int64) = v179.l1, v179.l2 │
00:01:18 #4443 [Verbose] > │ let v190 : UH3 = UH3_1 │
00:01:18 #4444 [Verbose] > │ let v191 : UH3 = method17(v188, v190) │
00:01:18 #4445 [Verbose] > │ let v192 : (struct (int64 * int64) []) = method18(v191) │
00:01:18 #4446 [Verbose] > │ let v193 : int32 = v192.Length │
00:01:18 #4447 [Verbose] > │ let v194 : (struct (int64 * int64) []) = Array.zeroCreate<struct │
00:01:18 #4448 [Verbose] > │ (int64 * int64)> (v193) │
00:01:18 #4449 [Verbose] > │ let v195 : Mut0 = {l0 = 0} : Mut0 │
00:01:18 #4450 [Verbose] > │ while method21(v193, v195) do │
00:01:18 #4451 [Verbose] > │ let v197 : int32 = v195.l0 │
00:01:18 #4452 [Verbose] > │ let struct (v198 : int64, v199 : int64) = v192.[int v197] │
00:01:18 #4453 [Verbose] > │ let v200 : int64 = v198 + 1L │
00:01:18 #4454 [Verbose] > │ v194.[int v197] <- struct (v200, v199) │
00:01:18 #4455 [Verbose] > │ let v201 : int32 = v197 + 1 │
00:01:18 #4456 [Verbose] > │ v195.l0 <- v201 │
00:01:18 #4457 [Verbose] > │ () │
00:01:18 #4458 [Verbose] > │ let v202 : (struct (int64 * int64) -> int64) = closure6() │
00:01:18 #4459 [Verbose] > │ let v203 : (struct (int64 * int64) []) = v194 |> Array.sortBy v202 │
00:01:18 #4460 [Verbose] > │ let struct (v204 : int64, v205 : int64) = v203.[int 0] │
00:01:18 #4461 [Verbose] > │ let v206 : string = $"%A{struct (v204, v205)}" │
00:01:18 #4462 [Verbose] > │ let v207 : bool = v173 = v175 │
00:01:18 #4463 [Verbose] > │ let v212 : US1 = │
00:01:18 #4464 [Verbose] > │ if v207 then │
00:01:18 #4465 [Verbose] > │ let v208 : System.ConsoleColor = │
00:01:18 #4466 [Verbose] > │ System.ConsoleColor.DarkGreen │
00:01:18 #4467 [Verbose] > │ US1_1(v208) │
00:01:18 #4468 [Verbose] > │ else │
00:01:18 #4469 [Verbose] > │ let v210 : System.ConsoleColor = System.ConsoleColor.DarkRed │
00:01:18 #4470 [Verbose] > │ US1_1(v210) │
00:01:18 #4471 [Verbose] > │ let v213 : UH2 = UH2_1 │
00:01:18 #4472 [Verbose] > │ let v214 : UH2 = UH2_0(v206, v213) │
00:01:18 #4473 [Verbose] > │ let v215 : UH2 = UH2_0(v175, v214) │
00:01:18 #4474 [Verbose] > │ let v216 : UH2 = UH2_0(v173, v215) │
00:01:18 #4475 [Verbose] > │ let v217 : UH2 = UH2_0(v174, v216) │
00:01:18 #4476 [Verbose] > │ v169.[int v172] <- struct (v217, v212) │
00:01:18 #4477 [Verbose] > │ let v218 : uint64 = v172 + 1UL │
00:01:18 #4478 [Verbose] > │ v170.l0 <- v218 │
00:01:18 #4479 [Verbose] > │ () │
00:01:18 #4480 [Verbose] > │ let v219 : string = "Input" │
00:01:18 #4481 [Verbose] > │ let v220 : string = "Expected" │
00:01:18 #4482 [Verbose] > │ let v221 : string = "Result" │
00:01:18 #4483 [Verbose] > │ let v222 : string = "Best" │
00:01:18 #4484 [Verbose] > │ let v223 : UH2 = UH2_1 │
00:01:18 #4485 [Verbose] > │ let v224 : UH2 = UH2_0(v222, v223) │
00:01:18 #4486 [Verbose] > │ let v225 : UH2 = UH2_0(v221, v224) │
00:01:18 #4487 [Verbose] > │ let v226 : UH2 = UH2_0(v220, v225) │
00:01:18 #4488 [Verbose] > │ let v227 : UH2 = UH2_0(v219, v226) │
00:01:18 #4489 [Verbose] > │ let v228 : US1 = US1_0 │
00:01:18 #4490 [Verbose] > │ let v229 : string = "---" │
00:01:18 #4491 [Verbose] > │ let v230 : UH2 = UH2_1 │
00:01:18 #4492 [Verbose] > │ let v231 : UH2 = UH2_0(v229, v230) │
00:01:18 #4493 [Verbose] > │ let v232 : UH2 = UH2_0(v229, v231) │
00:01:18 #4494 [Verbose] > │ let v233 : UH2 = UH2_0(v229, v232) │
00:01:18 #4495 [Verbose] > │ let v234 : UH2 = UH2_0(v229, v233) │
00:01:18 #4496 [Verbose] > │ let v235 : US1 = US1_0 │
00:01:18 #4497 [Verbose] > │ let v236 : UH4 = UH4_1 │
00:01:18 #4498 [Verbose] > │ let v237 : UH4 = UH4_0(v234, v235, v236) │
00:01:18 #4499 [Verbose] > │ let v238 : UH4 = UH4_0(v227, v228, v237) │
00:01:18 #4500 [Verbose] > │ let v239 : (struct (UH2 * US1) []) = method22(v238) │
00:01:18 #4501 [Verbose] > │ let v240 : uint64 = System.Convert.ToUInt64 v239.Length │
00:01:18 #4502 [Verbose] > │ let v241 : uint64 = System.Convert.ToUInt64 v169.Length │
00:01:18 #4503 [Verbose] > │ let v242 : uint64 = v240 + v241 │
00:01:18 #4504 [Verbose] > │ let v243 : (struct (UH2 * US1) []) = Array.zeroCreate<struct (UH2 * │
00:01:18 #4505 [Verbose] > │ US1)> (System.Convert.ToInt32(v242)) │
00:01:18 #4506 [Verbose] > │ let v244 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #4507 [Verbose] > │ while method6(v242, v244) do │
00:01:18 #4508 [Verbose] > │ let v246 : uint64 = v244.l0 │
00:01:18 #4509 [Verbose] > │ let v247 : bool = v246 < v240 │
00:01:18 #4510 [Verbose] > │ let struct (v253 : UH2, v254 : US1) = │
00:01:18 #4511 [Verbose] > │ if v247 then │
00:01:18 #4512 [Verbose] > │ let struct (v248 : UH2, v249 : US1) = v239.[int v246] │
00:01:18 #4513 [Verbose] > │ struct (v248, v249) │
00:01:18 #4514 [Verbose] > │ else │
00:01:18 #4515 [Verbose] > │ let v250 : uint64 = v246 - v240 │
00:01:18 #4516 [Verbose] > │ let struct (v251 : UH2, v252 : US1) = v169.[int v250] │
00:01:18 #4517 [Verbose] > │ struct (v251, v252) │
00:01:18 #4518 [Verbose] > │ v243.[int v246] <- struct (v253, v254) │
00:01:18 #4519 [Verbose] > │ let v255 : uint64 = v246 + 1UL │
00:01:18 #4520 [Verbose] > │ v244.l0 <- v255 │
00:01:18 #4521 [Verbose] > │ () │
00:01:18 #4522 [Verbose] > │ let v256 : uint64 = System.Convert.ToUInt64 v243.Length │
00:01:18 #4523 [Verbose] > │ let v257 : ((string []) []) = Array.zeroCreate<(string [])> │
00:01:18 #4524 [Verbose] > │ (System.Convert.ToInt32(v256)) │
00:01:18 #4525 [Verbose] > │ let v258 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #4526 [Verbose] > │ while method6(v256, v258) do │
00:01:18 #4527 [Verbose] > │ let v260 : uint64 = v258.l0 │
00:01:18 #4528 [Verbose] > │ let struct (v261 : UH2, v262 : US1) = v243.[int v260] │
00:01:18 #4529 [Verbose] > │ let v263 : (string []) = method25(v261) │
00:01:18 #4530 [Verbose] > │ v257.[int v260] <- v263 │
00:01:18 #4531 [Verbose] > │ let v264 : uint64 = v260 + 1UL │
00:01:18 #4532 [Verbose] > │ v258.l0 <- v264 │
00:01:18 #4533 [Verbose] > │ () │
00:01:18 #4534 [Verbose] > │ let v265 : ((string []) []) = v257 |> Array.transpose │
00:01:18 #4535 [Verbose] > │ let v266 : uint64 = System.Convert.ToUInt64 v265.Length │
00:01:18 #4536 [Verbose] > │ let v267 : (int64 []) = Array.zeroCreate<int64> │
00:01:18 #4537 [Verbose] > │ (System.Convert.ToInt32(v266)) │
00:01:18 #4538 [Verbose] > │ let v268 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #4539 [Verbose] > │ while method6(v266, v268) do │
00:01:18 #4540 [Verbose] > │ let v270 : uint64 = v268.l0 │
00:01:18 #4541 [Verbose] > │ let v271 : (string []) = v265.[int v270] │
00:01:18 #4542 [Verbose] > │ let v272 : uint64 = System.Convert.ToUInt64 v271.Length │
00:01:18 #4543 [Verbose] > │ let v273 : (int64 []) = Array.zeroCreate<int64> │
00:01:18 #4544 [Verbose] > │ (System.Convert.ToInt32(v272)) │
00:01:18 #4545 [Verbose] > │ let v274 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #4546 [Verbose] > │ while method6(v272, v274) do │
00:01:18 #4547 [Verbose] > │ let v276 : uint64 = v274.l0 │
00:01:18 #4548 [Verbose] > │ let v277 : string = v271.[int v276] │
00:01:18 #4549 [Verbose] > │ let v278 : int64 = System.Convert.ToInt64 v277.Length │
00:01:18 #4550 [Verbose] > │ v273.[int v276] <- v278 │
00:01:18 #4551 [Verbose] > │ let v279 : uint64 = v276 + 1UL │
00:01:18 #4552 [Verbose] > │ v274.l0 <- v279 │
00:01:18 #4553 [Verbose] > │ () │
00:01:18 #4554 [Verbose] > │ let v280 : (int64 []) = v273 |> Array.sortDescending │
00:01:18 #4555 [Verbose] > │ let v281 : int64 option = v280 |> Array.tryItem 0 │
00:01:18 #4556 [Verbose] > │ let v282 : (int64 -> US2) = closure7() │
00:01:18 #4557 [Verbose] > │ let v283 : US2 = US2_0 │
00:01:18 #4558 [Verbose] > │ let v284 : US2 = v281 |> Option.map v282 |> Option.defaultValue v283 │
00:01:18 #4559 [Verbose] > │ let v287 : int64 = │
00:01:18 #4560 [Verbose] > │ match v284 with │
00:01:18 #4561 [Verbose] > │ | US2_0 -> (* None *) │
00:01:18 #4562 [Verbose] > │ 0L │
00:01:18 #4563 [Verbose] > │ | US2_1(v285) -> (* Some *) │
00:01:18 #4564 [Verbose] > │ v285 │
00:01:18 #4565 [Verbose] > │ v267.[int v270] <- v287 │
00:01:18 #4566 [Verbose] > │ let v288 : uint64 = v270 + 1UL │
00:01:18 #4567 [Verbose] > │ v268.l0 <- v288 │
00:01:18 #4568 [Verbose] > │ () │
00:01:18 #4569 [Verbose] > │ let v289 : uint64 = System.Convert.ToUInt64 v267.Length │
00:01:18 #4570 [Verbose] > │ let v290 : UH5 = UH5_1 │
00:01:18 #4571 [Verbose] > │ let v291 : Mut3 = {l0 = 0UL; l1 = v290; l2 = 0} : Mut3 │
00:01:18 #4572 [Verbose] > │ while method28(v289, v291) do │
00:01:18 #4573 [Verbose] > │ let v293 : uint64 = v291.l0 │
00:01:18 #4574 [Verbose] > │ let struct (v294 : UH5, v295 : int32) = v291.l1, v291.l2 │
00:01:18 #4575 [Verbose] > │ let v296 : int64 = v267.[int v293] │
00:01:18 #4576 [Verbose] > │ let v297 : int32 = v295 + 1 │
00:01:18 #4577 [Verbose] > │ let v298 : uint64 = v293 + 1UL │
00:01:18 #4578 [Verbose] > │ let v299 : UH5 = UH5_0(v295, v296, v294) │
00:01:18 #4579 [Verbose] > │ v291.l0 <- v298 │
00:01:18 #4580 [Verbose] > │ v291.l1 <- v299 │
00:01:18 #4581 [Verbose] > │ v291.l2 <- v297 │
00:01:18 #4582 [Verbose] > │ () │
00:01:18 #4583 [Verbose] > │ let struct (v300 : UH5, v301 : int32) = v291.l1, v291.l2 │
00:01:18 #4584 [Verbose] > │ let v302 : UH5 = UH5_1 │
00:01:18 #4585 [Verbose] > │ let v303 : UH5 = method29(v300, v302) │
00:01:18 #4586 [Verbose] > │ let v304 : (struct (int32 * int64) []) = method30(v303) │
00:01:18 #4587 [Verbose] > │ let v305 : Map<int32, int64> = v304 |> Array.map (fun (struct (a, b)) -> │
00:01:18 #4588 [Verbose] > │ a, b) |> Map.ofArray │
00:01:18 #4589 [Verbose] > │ let v306 : (struct ((string []) * US1) []) = Array.zeroCreate<struct │
00:01:18 #4590 [Verbose] > │ ((string []) * US1)> (System.Convert.ToInt32(v256)) │
00:01:18 #4591 [Verbose] > │ let v307 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #4592 [Verbose] > │ while method6(v256, v307) do │
00:01:18 #4593 [Verbose] > │ let v309 : uint64 = v307.l0 │
00:01:18 #4594 [Verbose] > │ let struct (v310 : UH2, v311 : US1) = v243.[int v309] │
00:01:18 #4595 [Verbose] > │ let v312 : UH6 = UH6_1 │
00:01:18 #4596 [Verbose] > │ let v313 : int32 = 0 │
00:01:18 #4597 [Verbose] > │ let struct (v314 : UH6, v315 : int32) = method33(v310, v312, v313) │
00:01:18 #4598 [Verbose] > │ let v316 : UH6 = UH6_1 │
00:01:18 #4599 [Verbose] > │ let v317 : UH6 = method34(v314, v316) │
00:01:18 #4600 [Verbose] > │ let v318 : UH2 = UH2_1 │
00:01:18 #4601 [Verbose] > │ let v319 : UH2 = method35(v305, v317, v318) │
00:01:18 #4602 [Verbose] > │ let v320 : (string []) = method36(v319) │
00:01:18 #4603 [Verbose] > │ v306.[int v309] <- struct (v320, v311) │
00:01:18 #4604 [Verbose] > │ let v321 : uint64 = v309 + 1UL │
00:01:18 #4605 [Verbose] > │ v307.l0 <- v321 │
00:01:18 #4606 [Verbose] > │ () │
00:01:18 #4607 [Verbose] > │ System.Console.WriteLine v35 │
00:01:18 #4608 [Verbose] > │ let v322 : uint64 = System.Convert.ToUInt64 v306.Length │
00:01:18 #4609 [Verbose] > │ let v323 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #4610 [Verbose] > │ while method6(v322, v323) do │
00:01:18 #4611 [Verbose] > │ let v325 : uint64 = v323.l0 │
00:01:18 #4612 [Verbose] > │ let struct (v326 : (string []), v327 : US1) = v306.[int v325] │
00:01:18 #4613 [Verbose] > │ match v327 with │
00:01:18 #4614 [Verbose] > │ | US1_0 -> (* None *) │
00:01:18 #4615 [Verbose] > │ let mutable result = None │
00:01:18 #4616 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:01:18 #4617 [Verbose] > │ () │
00:01:18 #4618 [Verbose] > │ #endif │
00:01:18 #4619 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:18 #4620 [Verbose] > │ () │
00:01:18 #4621 [Verbose] > │ #endif │
00:01:18 #4622 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:18 #4623 [Verbose] > │ System.Console.ResetColor () │
00:01:18 #4624 [Verbose] > │ () │
00:01:18 #4625 [Verbose] > │ #endif │
00:01:18 #4626 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:18 #4627 [Verbose] > │ System.Console.ResetColor () │
00:01:18 #4628 [Verbose] > │ () │
00:01:18 #4629 [Verbose] > │ #endif │
00:01:18 #4630 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:18 #4631 [Verbose] > │ System.Console.ResetColor () │
00:01:18 #4632 [Verbose] > │ () │
00:01:18 #4633 [Verbose] > │ #endif │
00:01:18 #4634 [Verbose] > │ |> fun x -> result <- Some x │
00:01:18 #4635 [Verbose] > │ result |> Option.get │
00:01:18 #4636 [Verbose] > │ () │
00:01:18 #4637 [Verbose] > │ | US1_1(v328) -> (* Some *) │
00:01:18 #4638 [Verbose] > │ let mutable result = None │
00:01:18 #4639 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:01:18 #4640 [Verbose] > │ () │
00:01:18 #4641 [Verbose] > │ #endif │
00:01:18 #4642 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:18 #4643 [Verbose] > │ () │
00:01:18 #4644 [Verbose] > │ #endif │
00:01:18 #4645 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:18 #4646 [Verbose] > │ System.Console.ForegroundColor <- v328 │
00:01:18 #4647 [Verbose] > │ () │
00:01:18 #4648 [Verbose] > │ #endif │
00:01:18 #4649 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:18 #4650 [Verbose] > │ System.Console.ForegroundColor <- v328 │
00:01:18 #4651 [Verbose] > │ () │
00:01:18 #4652 [Verbose] > │ #endif │
00:01:18 #4653 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:18 #4654 [Verbose] > │ System.Console.ForegroundColor <- v328 │
00:01:18 #4655 [Verbose] > │ () │
00:01:18 #4656 [Verbose] > │ #endif │
00:01:18 #4657 [Verbose] > │ |> fun x -> result <- Some x │
00:01:18 #4658 [Verbose] > │ result |> Option.get │
00:01:18 #4659 [Verbose] > │ () │
00:01:18 #4660 [Verbose] > │ let v329 : string = "\t| " │
00:01:18 #4661 [Verbose] > │ let v330 : string = System.String.Join (v329, v326) │
00:01:18 #4662 [Verbose] > │ System.Console.WriteLine v330 │
00:01:18 #4663 [Verbose] > │ let mutable result = None │
00:01:18 #4664 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM │
00:01:18 #4665 [Verbose] > │ () │
00:01:18 #4666 [Verbose] > │ #endif │
00:01:18 #4667 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:18 #4668 [Verbose] > │ () │
00:01:18 #4669 [Verbose] > │ #endif │
00:01:18 #4670 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:18 #4671 [Verbose] > │ System.Console.ResetColor () │
00:01:18 #4672 [Verbose] > │ () │
00:01:18 #4673 [Verbose] > │ #endif │
00:01:18 #4674 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:18 #4675 [Verbose] > │ System.Console.ResetColor () │
00:01:18 #4676 [Verbose] > │ () │
00:01:18 #4677 [Verbose] > │ #endif │
00:01:18 #4678 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:18 #4679 [Verbose] > │ System.Console.ResetColor () │
00:01:18 #4680 [Verbose] > │ () │
00:01:18 #4681 [Verbose] > │ #endif │
00:01:18 #4682 [Verbose] > │ |> fun x -> result <- Some x │
00:01:18 #4683 [Verbose] > │ result |> Option.get │
00:01:18 #4684 [Verbose] > │ let v331 : uint64 = v325 + 1UL │
00:01:18 #4685 [Verbose] > │ v323.l0 <- v331 │
00:01:18 #4686 [Verbose] > │ () │
00:01:18 #4687 [Verbose] > │ let v332 : ((float []) []) = Array.zeroCreate<(float [])> │
00:01:18 #4688 [Verbose] > │ (System.Convert.ToInt32(v168)) │
00:01:18 #4689 [Verbose] > │ let v333 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #4690 [Verbose] > │ while method6(v168, v333) do │
00:01:18 #4691 [Verbose] > │ let v335 : uint64 = v333.l0 │
00:01:18 #4692 [Verbose] > │ let struct (v336 : string, v337 : string, v338 : string, v339 : │
00:01:18 #4693 [Verbose] > │ (int64 [])) = v83.[int v335] │
00:01:18 #4694 [Verbose] > │ let v340 : (int64 -> float) = float │
00:01:18 #4695 [Verbose] > │ let v341 : uint64 = System.Convert.ToUInt64 v339.Length │
00:01:18 #4696 [Verbose] > │ let v342 : (float []) = Array.zeroCreate<float> │
00:01:18 #4697 [Verbose] > │ (System.Convert.ToInt32(v341)) │
00:01:18 #4698 [Verbose] > │ let v343 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #4699 [Verbose] > │ while method6(v341, v343) do │
00:01:18 #4700 [Verbose] > │ let v345 : uint64 = v343.l0 │
00:01:18 #4701 [Verbose] > │ let v346 : int64 = v339.[int v345] │
00:01:18 #4702 [Verbose] > │ let v347 : float = v340 v346 │
00:01:18 #4703 [Verbose] > │ v342.[int v345] <- v347 │
00:01:18 #4704 [Verbose] > │ let v348 : uint64 = v345 + 1UL │
00:01:18 #4705 [Verbose] > │ v343.l0 <- v348 │
00:01:18 #4706 [Verbose] > │ () │
00:01:18 #4707 [Verbose] > │ v332.[int v335] <- v342 │
00:01:18 #4708 [Verbose] > │ let v349 : uint64 = v335 + 1UL │
00:01:18 #4709 [Verbose] > │ v333.l0 <- v349 │
00:01:18 #4710 [Verbose] > │ () │
00:01:18 #4711 [Verbose] > │ let v350 : ((float []) []) = v332 |> Array.transpose │
00:01:18 #4712 [Verbose] > │ let v351 : uint64 = System.Convert.ToUInt64 v350.Length │
00:01:18 #4713 [Verbose] > │ let v352 : (float []) = Array.zeroCreate<float> │
00:01:18 #4714 [Verbose] > │ (System.Convert.ToInt32(v351)) │
00:01:18 #4715 [Verbose] > │ let v353 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #4716 [Verbose] > │ while method6(v351, v353) do │
00:01:18 #4717 [Verbose] > │ let v355 : uint64 = v353.l0 │
00:01:18 #4718 [Verbose] > │ let v356 : (float []) = v350.[int v355] │
00:01:18 #4719 [Verbose] > │ let v357 : float = v356 |> Array.average │
00:01:18 #4720 [Verbose] > │ v352.[int v355] <- v357 │
00:01:18 #4721 [Verbose] > │ let v358 : uint64 = v355 + 1UL │
00:01:18 #4722 [Verbose] > │ v353.l0 <- v358 │
00:01:18 #4723 [Verbose] > │ () │
00:01:18 #4724 [Verbose] > │ let v359 : (float -> int64) = int64 │
00:01:18 #4725 [Verbose] > │ let v360 : uint64 = System.Convert.ToUInt64 v352.Length │
00:01:18 #4726 [Verbose] > │ let v361 : (int64 []) = Array.zeroCreate<int64> │
00:01:18 #4727 [Verbose] > │ (System.Convert.ToInt32(v360)) │
00:01:18 #4728 [Verbose] > │ let v362 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #4729 [Verbose] > │ while method6(v360, v362) do │
00:01:18 #4730 [Verbose] > │ let v364 : uint64 = v362.l0 │
00:01:18 #4731 [Verbose] > │ let v365 : float = v352.[int v364] │
00:01:18 #4732 [Verbose] > │ let v366 : int64 = v359 v365 │
00:01:18 #4733 [Verbose] > │ v361.[int v364] <- v366 │
00:01:18 #4734 [Verbose] > │ let v367 : uint64 = v364 + 1UL │
00:01:18 #4735 [Verbose] > │ v362.l0 <- v367 │
00:01:18 #4736 [Verbose] > │ () │
00:01:18 #4737 [Verbose] > │ let v368 : uint64 = System.Convert.ToUInt64 v361.Length │
00:01:18 #4738 [Verbose] > │ let v369 : UH5 = UH5_1 │
00:01:18 #4739 [Verbose] > │ let v370 : Mut3 = {l0 = 0UL; l1 = v369; l2 = 0} : Mut3 │
00:01:18 #4740 [Verbose] > │ while method28(v368, v370) do │
00:01:18 #4741 [Verbose] > │ let v372 : uint64 = v370.l0 │
00:01:18 #4742 [Verbose] > │ let struct (v373 : UH5, v374 : int32) = v370.l1, v370.l2 │
00:01:18 #4743 [Verbose] > │ let v375 : int64 = v361.[int v372] │
00:01:18 #4744 [Verbose] > │ let v376 : int32 = v374 + 1 │
00:01:18 #4745 [Verbose] > │ let v377 : uint64 = v372 + 1UL │
00:01:18 #4746 [Verbose] > │ let v378 : UH5 = UH5_0(v374, v375, v373) │
00:01:18 #4747 [Verbose] > │ v370.l0 <- v377 │
00:01:18 #4748 [Verbose] > │ v370.l1 <- v378 │
00:01:18 #4749 [Verbose] > │ v370.l2 <- v376 │
00:01:18 #4750 [Verbose] > │ () │
00:01:18 #4751 [Verbose] > │ let struct (v379 : UH5, v380 : int32) = v370.l1, v370.l2 │
00:01:18 #4752 [Verbose] > │ let v381 : UH5 = UH5_1 │
00:01:18 #4753 [Verbose] > │ let v382 : UH5 = method29(v379, v381) │
00:01:18 #4754 [Verbose] > │ let v383 : (struct (int32 * int64) []) = method39(v382) │
00:01:18 #4755 [Verbose] > │ System.Console.WriteLine v35 │
00:01:18 #4756 [Verbose] > │ let v384 : string = "Average Ranking " │
00:01:18 #4757 [Verbose] > │ System.Console.WriteLine v384 │
00:01:18 #4758 [Verbose] > │ let v385 : (struct (int32 * int64) -> int64) = closure8() │
00:01:18 #4759 [Verbose] > │ let v386 : (struct (int32 * int64) []) = v383 |> Array.sortBy v385 │
00:01:18 #4760 [Verbose] > │ let v387 : uint64 = System.Convert.ToUInt64 v386.Length │
00:01:18 #4761 [Verbose] > │ let v388 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:18 #4762 [Verbose] > │ while method6(v387, v388) do │
00:01:18 #4763 [Verbose] > │ let v390 : uint64 = v388.l0 │
00:01:18 #4764 [Verbose] > │ let struct (v391 : int32, v392 : int64) = v386.[int v390] │
00:01:18 #4765 [Verbose] > │ let v393 : string = $"Test case %d{v391 + 1}. Average Time: %A{v392} │
00:01:18 #4766 [Verbose] > │ " │
00:01:18 #4767 [Verbose] > │ System.Console.WriteLine v393 │
00:01:18 #4768 [Verbose] > │ let v394 : uint64 = v390 + 1UL │
00:01:18 #4769 [Verbose] > │ v388.l0 <- v394 │
00:01:18 #4770 [Verbose] > │ () │
00:01:18 #4771 [Verbose] > │ () │
00:01:18 #4772 [Verbose] > │ method0() │
00:01:18 #4773 [Verbose] > │ │
00:01:18 #4774 [Verbose] > │ │
00:01:18 #4775 [Verbose] > │ │
00:01:18 #4776 [Verbose] > │ Test: v33 │
00:01:18 #4777 [Verbose] > │ │
00:01:18 #4778 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7) │
00:01:18 #4779 [Verbose] > │ Test case 1. semi_open_1. Time: 437 │
00:01:18 #4780 [Verbose] > │ Test case 2. closed_1. Time: 375 │
00:01:18 #4781 [Verbose] > │ Test case 3. semi_open_2. Time: 416 │
00:01:18 #4782 [Verbose] > │ Test case 4. closed_2. Time: 384 │
00:01:18 #4783 [Verbose] > │ │
00:01:18 #4784 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7) │
00:01:18 #4785 [Verbose] > │ Test case 1. semi_open_1. Time: 367 │
00:01:18 #4786 [Verbose] > │ Test case 2. closed_1. Time: 373 │
00:01:18 #4787 [Verbose] > │ Test case 3. semi_open_2. Time: 388 │
00:01:18 #4788 [Verbose] > │ Test case 4. closed_2. Time: 389 │
00:01:18 #4789 [Verbose] > │ │
00:01:18 #4790 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7) │
00:01:18 #4791 [Verbose] > │ Test case 1. semi_open_1. Time: 380 │
00:01:18 #4792 [Verbose] > │ Test case 2. closed_1. Time: 385 │
00:01:18 #4793 [Verbose] > │ Test case 3. semi_open_2. Time: 373 │
00:01:18 #4794 [Verbose] > │ Test case 4. closed_2. Time: 397 │
00:01:18 #4795 [Verbose] > │ │
00:01:18 #4796 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7) │
00:01:18 #4797 [Verbose] > │ Test case 1. semi_open_1. Time: 385 │
00:01:18 #4798 [Verbose] > │ Test case 2. closed_1. Time: 379 │
00:01:18 #4799 [Verbose] > │ Test case 3. semi_open_2. Time: 382 │
00:01:18 #4800 [Verbose] > │ Test case 4. closed_2. Time: 388 │
00:01:18 #4801 [Verbose] > │ │
00:01:18 #4802 [Verbose] > │ Solution: struct ([|1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; │
00:01:18 #4803 [Verbose] > │ 17; 18; 19; 20; │
00:01:18 #4804 [Verbose] > │ 21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; 35; 36; │
00:01:18 #4805 [Verbose] > │ 37; 38; │
00:01:18 #4806 [Verbose] > │ 39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; 51; 52; 53; 54; │
00:01:18 #4807 [Verbose] > │ 55; 56; │
00:01:18 #4808 [Verbose] > │ 57; 58; 59; 60; 61; 62; 63; 64; 65; 66; 67; 68; 69; 70; 71; 72; │
00:01:18 #4809 [Verbose] > │ 73; 74; │
00:01:18 #4810 [Verbose] > │ 75; 76; 77; 78; 79; 80; 81; 82; 83; 84; 85; 86; 87; 88; 89; 90; │
00:01:18 #4811 [Verbose] > │ 91; 92; │
00:01:18 #4812 [Verbose] > │ 93; 94; 95; 96; 97; 98; 99; 100|], 60, 100) │
00:01:18 #4813 [Verbose] > │ Test case 1. semi_open_1. Time: 394 │
00:01:18 #4814 [Verbose] > │ Test case 2. closed_1. Time: 395 │
00:01:18 #4815 [Verbose] > │ Test case 3. semi_open_2. Time: 389 │
00:01:18 #4816 [Verbose] > │ Test case 4. closed_2. Time: 394 │
00:01:18 #4817 [Verbose] > │ │
00:01:18 #4818 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7) │
00:01:18 #4819 [Verbose] > │ Test case 1. semi_open_1. Time: 392 │
00:01:18 #4820 [Verbose] > │ Test case 2. closed_1. Time: 396 │
00:01:18 #4821 [Verbose] > │ Test case 3. semi_open_2. Time: 348 │
00:01:18 #4822 [Verbose] > │ Test case 4. closed_2. Time: 354 │
00:01:18 #4823 [Verbose] > │ │
00:01:18 #4824 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7) │
00:01:18 #4825 [Verbose] > │ Test case 1. semi_open_1. Time: 366 │
00:01:18 #4826 [Verbose] > │ Test case 2. closed_1. Time: 372 │
00:01:18 #4827 [Verbose] > │ Test case 3. semi_open_2. Time: 367 │
00:01:18 #4828 [Verbose] > │ Test case 4. closed_2. Time: 498 │
00:01:18 #4829 [Verbose] > │ │
00:01:18 #4830 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7) │
00:01:18 #4831 [Verbose] > │ Test case 1. semi_open_1. Time: 408 │
00:01:18 #4832 [Verbose] > │ Test case 2. closed_1. Time: 373 │
00:01:18 #4833 [Verbose] > │ Test case 3. semi_open_2. Time: 382 │
00:01:18 #4834 [Verbose] > │ Test case 4. closed_2. Time: 373 │
00:01:18 #4835 [Verbose] > │ │
00:01:18 #4836 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7) │
00:01:18 #4837 [Verbose] > │ Test case 1. semi_open_1. Time: 394 │
00:01:18 #4838 [Verbose] > │ Test case 2. closed_1. Time: 390 │
00:01:18 #4839 [Verbose] > │ Test case 3. semi_open_2. Time: 383 │
00:01:18 #4840 [Verbose] > │ Test case 4. closed_2. Time: 377 │
00:01:18 #4841 [Verbose] > │ │
00:01:18 #4842 [Verbose] > │ Solution: struct ([|1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; │
00:01:18 #4843 [Verbose] > │ 17; 18; 19; 20; │
00:01:18 #4844 [Verbose] > │ 21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; 35; 36; │
00:01:18 #4845 [Verbose] > │ 37; 38; │
00:01:18 #4846 [Verbose] > │ 39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; 51; 52; 53; 54; │
00:01:18 #4847 [Verbose] > │ 55; 56; │
00:01:18 #4848 [Verbose] > │ 57; 58; 59; 60; 61; 62; 63; 64; 65; 66; 67; 68; 69; 70; 71; 72; │
00:01:18 #4849 [Verbose] > │ 73; 74; │
00:01:18 #4850 [Verbose] > │ 75; 76; 77; 78; 79; 80; 81; 82; 83; 84; 85; 86; 87; 88; 89; 90; │
00:01:18 #4851 [Verbose] > │ 91; 92; │
00:01:18 #4852 [Verbose] > │ 93; 94; 95; 96; 97; 98; 99; 100|], 60, 100) │
00:01:18 #4853 [Verbose] > │ Test case 1. semi_open_1. Time: 402 │
00:01:18 #4854 [Verbose] > │ Test case 2. closed_1. Time: 383 │
00:01:18 #4855 [Verbose] > │ Test case 3. semi_open_2. Time: 395 │
00:01:18 #4856 [Verbose] > │ Test case 4. closed_2. Time: 388 │
00:01:18 #4857 [Verbose] > │ │
00:01:18 #4858 [Verbose] > │ Input │
00:01:18 #4859 [Verbose] > │ │
00:01:18 #4860 [Verbose] > │ │
00:01:18 #4861 [Verbose] > │ │
00:01:18 #4862 [Verbose] > │ | Expected | Result | Best │
00:01:18 #4863 [Verbose] > │ --- │
00:01:18 #4864 [Verbose] > │ │
00:01:18 #4865 [Verbose] > │ │
00:01:18 #4866 [Verbose] > │ │
00:01:18 #4867 [Verbose] > │ | --- | --- | --- │
00:01:18 #4868 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7) │
00:01:18 #4869 [Verbose] > │ │
00:01:18 #4870 [Verbose] > │ │
00:01:18 #4871 [Verbose] > │ │
00:01:18 #4872 [Verbose] > │ | US0_1 3 | US0_1 3 | struct (2L, 375L) │
00:01:18 #4873 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7) │
00:01:18 #4874 [Verbose] > │ │
00:01:18 #4875 [Verbose] > │ │
00:01:18 #4876 [Verbose] > │ │
00:01:18 #4877 [Verbose] > │ | US0_1 0 | US0_1 0 | struct (1L, 367L) │
00:01:18 #4878 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7) │
00:01:18 #4879 [Verbose] > │ │
00:01:18 #4880 [Verbose] > │ │
00:01:18 #4881 [Verbose] > │ │
00:01:18 #4882 [Verbose] > │ | US0_1 6 | US0_1 6 | struct (3L, 373L) │
00:01:18 #4883 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7) │
00:01:18 #4884 [Verbose] > │ │
00:01:18 #4885 [Verbose] > │ │
00:01:18 #4886 [Verbose] > │ │
00:01:18 #4887 [Verbose] > │ | US0_0 | US0_0 | struct (2L, 379L) │
00:01:18 #4888 [Verbose] > │ struct ([|1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; 19; │
00:01:18 #4889 [Verbose] > │ 20; │
00:01:18 #4890 [Verbose] > │ 21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; 35; 36; │
00:01:18 #4891 [Verbose] > │ 37; 38; │
00:01:18 #4892 [Verbose] > │ 39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; 51; 52; 53; 54; │
00:01:18 #4893 [Verbose] > │ 55; 56; │
00:01:18 #4894 [Verbose] > │ 57; 58; 59; 60; 61; 62; 63; 64; 65; 66; 67; 68; 69; 70; 71; 72; │
00:01:18 #4895 [Verbose] > │ 73; 74; │
00:01:18 #4896 [Verbose] > │ 75; 76; 77; 78; 79; 80; 81; 82; 83; 84; 85; 86; 87; 88; 89; 90; │
00:01:18 #4897 [Verbose] > │ 91; 92; │
00:01:18 #4898 [Verbose] > │ 93; 94; 95; 96; 97; 98; 99; 100|], 60, 100) | US0_1 59 | US0_1 59 | │
00:01:18 #4899 [Verbose] > │ struct (3L, 389L) │
00:01:18 #4900 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7) │
00:01:18 #4901 [Verbose] > │ │
00:01:18 #4902 [Verbose] > │ │
00:01:18 #4903 [Verbose] > │ │
00:01:18 #4904 [Verbose] > │ | US0_1 3 | US0_1 3 | struct (3L, 348L) │
00:01:18 #4905 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7) │
00:01:18 #4906 [Verbose] > │ │
00:01:18 #4907 [Verbose] > │ │
00:01:18 #4908 [Verbose] > │ │
00:01:18 #4909 [Verbose] > │ | US0_1 0 | US0_1 0 | struct (1L, 366L) │
00:01:18 #4910 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7) │
00:01:18 #4911 [Verbose] > │ │
00:01:18 #4912 [Verbose] > │ │
00:01:18 #4913 [Verbose] > │ │
00:01:18 #4914 [Verbose] > │ | US0_1 6 | US0_1 6 | struct (2L, 373L) │
00:01:18 #4915 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7) │
00:01:18 #4916 [Verbose] > │ │
00:01:18 #4917 [Verbose] > │ │
00:01:18 #4918 [Verbose] > │ │
00:01:18 #4919 [Verbose] > │ | US0_0 | US0_0 | struct (4L, 377L) │
00:01:18 #4920 [Verbose] > │ struct ([|1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; 19; │
00:01:18 #4921 [Verbose] > │ 20; │
00:01:18 #4922 [Verbose] > │ 21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; 35; 36; │
00:01:18 #4923 [Verbose] > │ 37; 38; │
00:01:18 #4924 [Verbose] > │ 39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; 51; 52; 53; 54; │
00:01:18 #4925 [Verbose] > │ 55; 56; │
00:01:18 #4926 [Verbose] > │ 57; 58; 59; 60; 61; 62; 63; 64; 65; 66; 67; 68; 69; 70; 71; 72; │
00:01:18 #4927 [Verbose] > │ 73; 74; │
00:01:18 #4928 [Verbose] > │ 75; 76; 77; 78; 79; 80; 81; 82; 83; 84; 85; 86; 87; 88; 89; 90; │
00:01:18 #4929 [Verbose] > │ 91; 92; │
00:01:18 #4930 [Verbose] > │ 93; 94; 95; 96; 97; 98; 99; 100|], 60, 100) | US0_1 59 | US0_1 59 | │
00:01:18 #4931 [Verbose] > │ struct (2L, 383L) │
00:01:18 #4932 [Verbose] > │ │
00:01:18 #4933 [Verbose] > │ Average Ranking │
00:01:18 #4934 [Verbose] > │ Test case 2. Average Time: 382L │
00:01:18 #4935 [Verbose] > │ Test case 3. Average Time: 382L │
00:01:18 #4936 [Verbose] > │ Test case 1. Average Time: 392L │
00:01:18 #4937 [Verbose] > │ Test case 4. Average Time: 394L │
00:01:18 #4938 [Verbose] > │ │
00:01:18 #4939 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:18 #4940 [Verbose] >
00:01:18 #4941 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:18 #4942 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:18 #4943 [Verbose] > │ ## returnLettersWithOddCountTests │
00:01:18 #4944 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:18 #4945 [Verbose] >
00:01:18 #4946 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:18 #4947 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:18 #4948 [Verbose] > │ Test: ReturnLettersWithOddCount │
00:01:18 #4949 [Verbose] > │ │
00:01:18 #4950 [Verbose] > │ Solution: 1 │
00:01:18 #4951 [Verbose] > │ Test case 1. A. Time: 645L │
00:01:18 #4952 [Verbose] > │ │
00:01:18 #4953 [Verbose] > │ Solution: 2 │
00:01:18 #4954 [Verbose] > │ Test case 1. A. Time: 663L │
00:01:18 #4955 [Verbose] > │ │
00:01:18 #4956 [Verbose] > │ Solution: 3 │
00:01:18 #4957 [Verbose] > │ Test case 1. A. Time: 680L │
00:01:18 #4958 [Verbose] > │ │
00:01:18 #4959 [Verbose] > │ Solution: 9 │
00:01:18 #4960 [Verbose] > │ Test case 1. A. Time: 730L │
00:01:18 #4961 [Verbose] > │ │
00:01:18 #4962 [Verbose] > │ Solution: 10 │
00:01:18 #4963 [Verbose] > │ Test case 1. A. Time: 815L │
00:01:18 #4964 [Verbose] > │ │
00:01:18 #4965 [Verbose] > │ Input | Expected | Result | Best │
00:01:18 #4966 [Verbose] > │ --- | --- | --- | --- │
00:01:18 #4967 [Verbose] > │ 1 | a | a | (1, 645) │
00:01:18 #4968 [Verbose] > │ 2 | ba | ba | (1, 663) │
00:01:18 #4969 [Verbose] > │ 3 | aaa | aaa | (1, 680) │
00:01:18 #4970 [Verbose] > │ 9 | aaaaaaaaa | aaaaaaaaa | (1, 730) │
00:01:18 #4971 [Verbose] > │ 10 | baaaaaaaaa | baaaaaaaaa | (1, 815) │
00:01:18 #4972 [Verbose] > │ │
00:01:18 #4973 [Verbose] > │ Averages │
00:01:18 #4974 [Verbose] > │ Test case 1. Average Time: 706L │
00:01:18 #4975 [Verbose] > │ │
00:01:18 #4976 [Verbose] > │ Ranking │
00:01:18 #4977 [Verbose] > │ Test case 1. Average Time: 706L │
00:01:18 #4978 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:18 #4979 [Verbose] >
00:01:18 #4980 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:18 #4981 [Verbose] > //// test
00:01:18 #4982 [Verbose] >
00:01:18 #4983 [Verbose] > let solutions = [[
00:01:18 #4984 [Verbose] > "A",
00:01:18 #4985 [Verbose] > fun n ->
00:01:18 #4986 [Verbose] > let mutable _builder = StringBuilder (new string('a', n))
00:01:18 #4987 [Verbose] > if n % 2 = 0 then
00:01:18 #4988 [Verbose] > _builder.[[0]] <- 'b'
00:01:18 #4989 [Verbose] >
00:01:18 #4990 [Verbose] > _builder.ToString ()
00:01:18 #4991 [Verbose] > ]]
00:01:18 #4992 [Verbose] > let testCases = seq {
00:01:18 #4993 [Verbose] > 1, "a"
00:01:18 #4994 [Verbose] > 2, "ba"
00:01:18 #4995 [Verbose] > 3, "aaa"
00:01:18 #4996 [Verbose] > 9, "aaaaaaaaa"
00:01:18 #4997 [Verbose] > 10, "baaaaaaaaa"
00:01:18 #4998 [Verbose] > }
00:01:18 #4999 [Verbose] > let rec returnLettersWithOddCountTests =
00:01:18 #5000 [Verbose] > runAll (nameof returnLettersWithOddCountTests) _count solutions testCases
00:01:18 #5001 [Verbose] > returnLettersWithOddCountTests
00:01:18 #5002 [Verbose] > |> sortResultList
00:01:19 #5003 [Verbose] >
00:01:19 #5004 [Verbose] > ╭─[ 683.75ms - stdout ]────────────────────────────────────────────────────────╮
00:01:19 #5005 [Verbose] > │ │
00:01:19 #5006 [Verbose] > │ │
00:01:19 #5007 [Verbose] > │ Test: returnLettersWithOddCountTests │
00:01:19 #5008 [Verbose] > │ │
00:01:19 #5009 [Verbose] > │ Solution: 1 │
00:01:19 #5010 [Verbose] > │ Test case 1. A. Time: 0L │
00:01:19 #5011 [Verbose] > │ │
00:01:19 #5012 [Verbose] > │ Solution: 2 │
00:01:19 #5013 [Verbose] > │ Test case 1. A. Time: 0L │
00:01:19 #5014 [Verbose] > │ │
00:01:19 #5015 [Verbose] > │ Solution: 3 │
00:01:19 #5016 [Verbose] > │ Test case 1. A. Time: 0L │
00:01:19 #5017 [Verbose] > │ │
00:01:19 #5018 [Verbose] > │ Solution: 9 │
00:01:19 #5019 [Verbose] > │ Test case 1. A. Time: 0L │
00:01:19 #5020 [Verbose] > │ │
00:01:19 #5021 [Verbose] > │ Solution: 10 │
00:01:19 #5022 [Verbose] > │ Test case 1. A. Time: 1L │
00:01:19 #5023 [Verbose] > │ │
00:01:19 #5024 [Verbose] > │ Input | Expected | Result | Best │
00:01:19 #5025 [Verbose] > │ --- | --- | --- | --- │
00:01:19 #5026 [Verbose] > │ 1 | a | a | (1, 0) │
00:01:19 #5027 [Verbose] > │ 2 | ba | ba | (1, 0) │
00:01:19 #5028 [Verbose] > │ 3 | aaa | aaa | (1, 0) │
00:01:19 #5029 [Verbose] > │ 9 | aaaaaaaaa | aaaaaaaaa | (1, 0) │
00:01:19 #5030 [Verbose] > │ 10 | baaaaaaaaa | baaaaaaaaa | (1, 1) │
00:01:19 #5031 [Verbose] > │ │
00:01:19 #5032 [Verbose] > │ Average Ranking │
00:01:19 #5033 [Verbose] > │ Test case 1. Average Time: 0L │
00:01:19 #5034 [Verbose] > │ │
00:01:19 #5035 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:19 #5036 [Verbose] >
00:01:19 #5037 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:19 #5038 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:19 #5039 [Verbose] > │ ## hasAnyPairCloseToEachotherTests │
00:01:19 #5040 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:19 #5041 [Verbose] >
00:01:19 #5042 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:19 #5043 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:19 #5044 [Verbose] > │ Test: HasAnyPairCloseToEachother │
00:01:19 #5045 [Verbose] > │ │
00:01:19 #5046 [Verbose] > │ Solution: 0 │
00:01:19 #5047 [Verbose] > │ Test case 1. A. Time: 137L │
00:01:19 #5048 [Verbose] > │ │
00:01:19 #5049 [Verbose] > │ Solution: 1,2 │
00:01:19 #5050 [Verbose] > │ Test case 1. A. Time: 186L │
00:01:19 #5051 [Verbose] > │ │
00:01:19 #5052 [Verbose] > │ Solution: 3,5 │
00:01:19 #5053 [Verbose] > │ Test case 1. A. Time: 206L │
00:01:19 #5054 [Verbose] > │ │
00:01:19 #5055 [Verbose] > │ Solution: 3,4,6 │
00:01:19 #5056 [Verbose] > │ Test case 1. A. Time: 149L │
00:01:19 #5057 [Verbose] > │ │
00:01:19 #5058 [Verbose] > │ Solution: 2,4,6 │
00:01:19 #5059 [Verbose] > │ Test case 1. A. Time: 150L │
00:01:19 #5060 [Verbose] > │ │
00:01:19 #5061 [Verbose] > │ Input | Expected | Result | Best │
00:01:19 #5062 [Verbose] > │ --- | --- | --- | --- │
00:01:19 #5063 [Verbose] > │ 0 | False | False | (1, 137) │
00:01:19 #5064 [Verbose] > │ 1,2 | True | True | (1, 186) │
00:01:19 #5065 [Verbose] > │ 3,5 | False | False | (1, 206) │
00:01:19 #5066 [Verbose] > │ 3,4,6 | True | True | (1, 149) │
00:01:19 #5067 [Verbose] > │ 2,4,6 | False | False | (1, 150) │
00:01:19 #5068 [Verbose] > │ │
00:01:19 #5069 [Verbose] > │ Averages │
00:01:19 #5070 [Verbose] > │ Test case 1. Average Time: 165L │
00:01:19 #5071 [Verbose] > │ │
00:01:19 #5072 [Verbose] > │ Ranking │
00:01:19 #5073 [Verbose] > │ Test case 1. Average Time: 165L │
00:01:19 #5074 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:19 #5075 [Verbose] >
00:01:19 #5076 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:19 #5077 [Verbose] > //// test
00:01:19 #5078 [Verbose] >
00:01:19 #5079 [Verbose] > let solutions = [[
00:01:19 #5080 [Verbose] > "A",
00:01:19 #5081 [Verbose] > fun (a: int[[]]) ->
00:01:19 #5082 [Verbose] > let indices = System.Linq.Enumerable.Range(0, a.Length) |>
00:01:19 #5083 [Verbose] > System.Linq.Enumerable.ToArray
00:01:19 #5084 [Verbose] > System.Array.Sort (a, indices)
00:01:19 #5085 [Verbose] >
00:01:19 #5086 [Verbose] > indices
00:01:19 #5087 [Verbose] > |> Array.take (a.Length - 1)
00:01:19 #5088 [Verbose] > |> Array.exists (fun i -> a.[[i + 1]] - a.[[i]] = 1)
00:01:19 #5089 [Verbose] > ]]
00:01:19 #5090 [Verbose] > let testCases = seq {
00:01:19 #5091 [Verbose] > [[| 0 |]], false
00:01:19 #5092 [Verbose] > [[| 1; 2 |]], true
00:01:19 #5093 [Verbose] > [[| 3; 5 |]], false
00:01:19 #5094 [Verbose] > [[| 3; 4; 6 |]], true
00:01:19 #5095 [Verbose] > [[| 2; 4; 6 |]], false
00:01:19 #5096 [Verbose] > }
00:01:19 #5097 [Verbose] > let rec hasAnyPairCloseToEachotherTests =
00:01:19 #5098 [Verbose] > runAll (nameof hasAnyPairCloseToEachotherTests) _count solutions testCases
00:01:19 #5099 [Verbose] > hasAnyPairCloseToEachotherTests
00:01:19 #5100 [Verbose] > |> sortResultList
00:01:19 #5101 [Verbose] >
00:01:19 #5102 [Verbose] > ╭─[ 672.93ms - stdout ]────────────────────────────────────────────────────────╮
00:01:19 #5103 [Verbose] > │ │
00:01:19 #5104 [Verbose] > │ │
00:01:19 #5105 [Verbose] > │ Test: hasAnyPairCloseToEachotherTests │
00:01:19 #5106 [Verbose] > │ │
00:01:19 #5107 [Verbose] > │ Solution: 0 │
00:01:19 #5108 [Verbose] > │ Test case 1. A. Time: 1L │
00:01:19 #5109 [Verbose] > │ │
00:01:19 #5110 [Verbose] > │ Solution: 1,2 │
00:01:19 #5111 [Verbose] > │ Test case 1. A. Time: 0L │
00:01:19 #5112 [Verbose] > │ │
00:01:19 #5113 [Verbose] > │ Solution: 3,5 │
00:01:19 #5114 [Verbose] > │ Test case 1. A. Time: 0L │
00:01:19 #5115 [Verbose] > │ │
00:01:19 #5116 [Verbose] > │ Solution: 3,4,6 │
00:01:19 #5117 [Verbose] > │ Test case 1. A. Time: 0L │
00:01:19 #5118 [Verbose] > │ │
00:01:19 #5119 [Verbose] > │ Solution: 2,4,6 │
00:01:19 #5120 [Verbose] > │ Test case 1. A. Time: 0L │
00:01:19 #5121 [Verbose] > │ │
00:01:19 #5122 [Verbose] > │ Input | Expected | Result | Best │
00:01:19 #5123 [Verbose] > │ --- | --- | --- | --- │
00:01:19 #5124 [Verbose] > │ 0 | False | False | (1, 1) │
00:01:19 #5125 [Verbose] > │ 1,2 | True | True | (1, 0) │
00:01:19 #5126 [Verbose] > │ 3,5 | False | False | (1, 0) │
00:01:19 #5127 [Verbose] > │ 3,4,6 | True | True | (1, 0) │
00:01:19 #5128 [Verbose] > │ 2,4,6 | False | False | (1, 0) │
00:01:19 #5129 [Verbose] > │ │
00:01:19 #5130 [Verbose] > │ Average Ranking │
00:01:19 #5131 [Verbose] > │ Test case 1. Average Time: 0L │
00:01:19 #5132 [Verbose] > │ │
00:01:19 #5133 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:19 #5134 [Verbose] >
00:01:19 #5135 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:19 #5136 [Verbose] > // // test
00:01:19 #5137 [Verbose] >
00:01:19 #5138 [Verbose] > ()
00:01:20 #5139 [Verbose] >
00:01:20 #5140 [Verbose] > ╭─[ 242.99ms - stdout ]────────────────────────────────────────────────────────╮
00:01:20 #5141 [Verbose] > │ let rec method0 () : unit = │
00:01:20 #5142 [Verbose] > │ () │
00:01:20 #5143 [Verbose] > │ method0() │
00:01:20 #5144 [Verbose] > │ │
00:01:20 #5145 [Verbose] > │ │
00:01:20 #5146 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:21 #5147 [Verbose] > [NbConvertApp] Converting notebook Perf.dib.ipynb to html
00:01:21 #5148 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:01:21 #5149 [Verbose] > validate(nb)
00:01:22 #5150 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:01:22 #5151 [Verbose] > return _pygments_highlight(
00:01:23 #5152 [Verbose] > [NbConvertApp] Writing 562743 bytes to Perf.dib.html
00:01:24 #5153 [Debug] executeAsync / exitCode: 0 / output.Length: 359558
00:01:24 #5154 [Debug] main / executeCommand / exitCode: 0
00:00:00 #1 [Debug] writeDibCode / output: Fs / path: Perf.dib
00:00:00 #2 [Debug] parseDibCode / output: Fs / file: Perf.dib
In [ ]:
{ . "$ScriptDir/../apps/dir-tree-html/build.ps1" } | Invoke-Block
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # DirTreeHtml (Polyglot) │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
spNetCore.Html.Abstractions.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
Formatter.ListExpansionLimit <- 100
── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
type AssertExceptionFormatter (ex) =
member _.Text =
ex.ToString()
.Replace("32m", "<span style=\"color: green;\">")
.Replace("36m", "</span>")
.Replace("31m", "<span style=\"color: red;\">")
.Replace("\n", "<br/>\n")
Formatter.Register<AssertExceptionFormatter> ((fun (x :
AssertExceptionFormatter) -> x.Text), "text/html")
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __expect fn log expected actual =
if log then printfn $"{actual.ToDisplayString ()}"
try
"Testing.__expect" |> fn actual expected
with :? Expecto.AssertException as ex ->
AssertExceptionFormatter(ex).Display () |> ignore
failwith (ex.GetType().FullName)
let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual
let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual
let inline __isGreaterThan log expected actual = __expect
Expecto.Expect.isGreaterThan log ex...
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __isBetween log a b actual =
let inline isBetween actual (a, b) _ =
__isGreaterThanOrEqual log a actual
__isLessThanOrEqual log b actual
__expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual
── fsharp ──────────────────────────────────────────────────────────────────────
#r
@"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
dard2.1/FSharp.Control.AsyncSeq.dll"
#r
@"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
0/System.Reactive.dll"
#r
@"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
netstandard2.0/System.Reactive.Linq.dll"
#r
@"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
#r
@"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
b/net6.0/System.CommandLine.dll"
#r
@"../../../../../../../.nuget/packages/falco.markup/1.1.1/lib/netstandard2.0/Fal
co.Markup.dll"
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/sm.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/spiral/file_system.fsx
#!import ../../lib/spiral/lib.fsx
#!import ../../lib/fsharp/Common.fs
#!import ../../lib/fsharp/CommonFSharp.fs
#!import ../../lib/fsharp/Async.fs
#!import ../../lib/fsharp/AsyncSeq.fs
#!import ../../lib/fsharp/Networking.fs
#!import ../../lib/fsharp/Runtime.fs
#!import ../../lib/fsharp/FileSystem.fs
── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
| US0_0
| US0_1
and [[<Struct>]] US1 =
| US1_0
| US1_1 of f1_0 : US0
let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
v0
and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
let mutable result = None
#if FABLE_COMPILER_RUST && !WASM
let v1 : (unit -> unit) = method0(v0)
let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v1()" }
v2
#endif
#if FABLE_COMPILER_RUST && WASM
let v3 : (unit -> unit) = method0(v0)
let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v3()" }
v4
#endif
#if !FABLE_COMPILER && !F...
── fsharp - import ─────────────────────────────────────────────────────────────
type Mut0 = {mutable l0 : int32; mutable l1 : string}
and Mut1 = {mutable l0 : int32}
let rec closure1 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.Contains v0
v2
and closure0 () (v0 : string) : (string -> bool) =
closure1(v0)
and closure3 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.EndsWith v0
v2
and closure2 () (v0 : string) : (string -> bool) =
closure3(v0)
and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
let v3 : string = v2.PadLeft (v0, v1)
v3
and closure5 (v0 : int32) (v1 : char) : (string -> string) =
closure6(v0, v1)
and closure4 () (v0 : int32) : (char -> (string -> string)) =
closure5(v0)
and closure8 (v0 : int32) (v1 : string) : string =
let v2 : stri...
── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
let v2 : (System.Guid -> string) = _.ToString()
let v3 : string = v2 v0
let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
v5
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
let v3 : string = v2.Replace (v0, v1)
v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
closure3()
and closure2 (...
── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
| US0_0
| US0_1
| US0_2
and [[<Struct>]] US1 =
| US1_0 of f0_0 : US0
| US1_1 of f1_0 : US0
let rec closure0 () () : string =
let mutable result = None
#if FABLE_COMPILER_RUST && !WASM
let v0 : US0 = US0_1
let v1 : US1 = US1_1(v0)
let v2 : string = $"create_temp_directory_name target: {v1}"
let v3 : string = failwith<string> v2
v3
#endif
#if FABLE_COMPILER_RUST && WASM
let v4 : US0 = US0_2
let v5 : US1 = US1_1(v4)
let v6 : string = $"create_temp_directory_name target: {v5}"
let v7 : string = failwith<string> v6
v7
#endif
#if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM
let v8 : string = System.Reflection.Assembly.GetEntryAssembly()...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !WASM && !FABLE_COMPILER
module Date_time =
let new_guid_from_date_time x =
#if !INTERACTIVE
Date_time.new_guid_from_date_time x
#else
new_guid_from_date_time x
#endif
#endif
module Sm =
let concat x =
#if !INTERACTIVE
Sm.concat x
#else
concat x
#endif
let contains x =
#if !INTERACTIVE
Sm.contains x
#else
contains x
#endif
let ellipsis x =
#if !INTERACTIVE
Sm.ellipsis x
#else
ellipsis x
#endif
let ellipsis_end x =
#if !INTERACTIVE
Sm.ellipsis_end x
#else
ellipsis_end x
#endif
let ends_with x =
#if !INTERACTIVE
Sm.ends_with x
#else
ends_with x
#endif
let format_exception x =
#if !INTERACTIVE
Sm.format_...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Common =
#if !INTERACTIVE
open Lib
#endif
let nl = System.Environment.NewLine
let q = @""""
let inline cons head tail = head :: tail
/// ## memoize
let inline memoize fn =
let result = lazy fn ()
fun () -> result.Value
/// ## TraceLevel
type TraceLevel =
| Verbose
| Debug
| Info
| Warning
| Critical
let inline getLocals () = ""
let mutable traceEnabled = true
let mutable traceCount = 0
let mutable traceLevel = Verbose
let mutable traceDump = false
let testTraceLevel level =
traceEnabled && level >= traceLevel
/// ## traceRaw
let rec traceRaw level fn =
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module CommonFSharp =
open Common
/// ## getUnionCaseName
let inline getUnionCaseName<'T> (x: 'T) =
match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
| case, _ -> case.Name
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Async =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## choice
let inline choice asyncs = async {
let e = Event<_> ()
use cts = new System.Threading.CancellationTokenSource ()
let fn =
asyncs
|> Seq.map (fun a -> async {
let! x = a
e.Trigger x
})
|> Async.Parallel
|> Async.Ignore
Async.Start (fn, cts.Token)
let! result = Async.AwaitEvent e.Publish
cts.Cancel ()
return result
}
/// ## map
let inline map fn a = async {
let! x = a
return fn x
}
/// ## catch
let inline catch a =
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module AsyncSeq =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## subscribeEvent
let inline subscribeEvent (event: IEvent<'H, 'A>) map =
let observable = System.Reactive.Linq.Observable.FromEventPattern<'H,
'A>(event.AddHandler, event.RemoveHandler)
System.Reactive.Linq.Observable.Select (observable, fun event -> map
event.EventArgs)
|> FSharp.Control.AsyncSeq.ofObservableBuffered
let subscribeToken (token : System.Threading.CancellationToken) =
let tcs = new System.Threading.Tasks.TaskCompletionSource ()
System.Action tcs.SetResult |> token.Register |> ignore
let start = System.DateTime.Now.Ticks
FSharp.Control.A...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Networking =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## testPortOpen
let inline testPortOpen port = async {
let! ct = Async.CancellationToken
use client = new System.Net.Sockets.TcpClient ()
try
do! client.ConnectAsync ("127.0.0.1", port, ct) |>
Async.awaitValueTaskUnit
return true
with ex ->
trace Verbose (fun () -> $"testPortOpen / ex: {ex |>
Sm.format_exception}") getLocals
return false
}
let inline testPortOpenTimeout timeout port = async {
let! result =
testPortOpen port
|> Async.runWithTimeoutAsync timeout
return
matc...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Runtime =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## isWindows
let isWindows =
fun () ->
System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
System.Runtime.InteropServices.OSPlatform.Windows
|> memoize
/// ## getExecutableSuffix
let inline getExecutableSuffix () =
if isWindows ()
then ".exe"
else ""
/// ## splitCommand
type private CommandParseStep =
| Start
| Path of quoted: bool
| Arguments
let splitCommand (command: string) =
let rec loop (path, args) chars step =
match chars, step with
| ('"' | '\'') ...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module FileSystem =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## Operators
module Operators =
let inline (</>) a b =
System.IO.Path.Combine (a, b)
open Operators
/// ## createTempDirectory
let inline createTempDirectory () =
let tempFolder = File_system.create_temp_directory_name ()
let result = System.IO.Directory.CreateDirectory tempFolder
if not result.Exists then
let getLocals () =
$"tempFolder: {tempFolder} / result: {({|
Exists = result.Exists
CreationTime = result.CreationTime
|})} {getLocals ()}"
trace Debug ...
── fsharp ──────────────────────────────────────────────────────────────────────
#if !INTERACTIVE
open Lib
#endif
── fsharp ──────────────────────────────────────────────────────────────────────
open FileSystem.Operators
open Falco.Markup
── fsharp ──────────────────────────────────────────────────────────────────────
type FileSystemNode =
| File of string * string * int64
| Folder of string * string * FileSystemNode list
| Root of FileSystemNode list
let rec scanDirectory isRoot (basePath : string) (path : string) =
let relativePath =
path
|> Sm.replace basePath ""
|> Sm.replace "\\" "/"
|> Sm.replace "//" "/"
|> Sm.trim_start [[| '/' |]]
let directories =
path
|> System.IO.Directory.GetDirectories
|> Array.toList
|> List.sort
|> List.map (scanDirectory false basePath)
let files =
path
|> System.IO.Directory.GetFiles
|> Array.toList
|> List.sort
|> List.map (fun f -> File (System.IO.Path.GetFileName f, relativePath,
System.IO.FileInfo(f).Length))
let children = directories @ files
if isRoot
then Root children
else Folder (path |> System.IO.Path.GetFileName, relativePath, children)
let rec generateHtml fsNode =
let sizeLabel size =
match float size with
| size when size > 1024.0 * 1024.0 -> $"%.2f{size / 1024.0 / 1024.0} MB"
| size when size > 1024.0 -> $"%.2f{size / 1024.0} KB"
| size -> $"%.2f{size} B"
match fsNode with
| File (fileName, relativePath, size) ->
Elem.div [[]] [[
Text.raw "📄 "
Elem.a [[
Attr.href $"""{relativePath}{if relativePath = "" then "" else
"/"}{fileName}"""
]] [[
Text.raw fileName
]]
Elem.span [[]] [[
Text.raw $" ({size |> sizeLabel})"
]]
]]
| Folder (folderName, relativePath, children) ->
let size =
let rec loop children =
children
|> List.sumBy (function
| File (_, _, size) -> size
| Folder (_, _, children)
| Root children -> loop children
)
loop children
Elem.details [[
Attr.open' "true"
]] [[
Elem.summary [[]] [[
Text.raw "📂 "
Elem.a [[
Attr.href relativePath
]] [[
Text.raw folderName
]]
Elem.span [[]] [[
Text.raw $" ({size |> sizeLabel})"
]]
]]
Elem.div [[]] [[
yield! children |> List.map generateHtml
]]
]]
| Root children ->
Elem.div [[]] [[
yield! children |> List.map generateHtml
]]
let generateHtmlForFileSystem root =
$"""<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
body {{
background-color: #222;
color: #ccc;
}}
a {{
color: #777;
font-size: 15px;
}}
span {{
font-size: 11px;
}}
div > div {{
padding-left: 10px;
}}
details > div {{
padding-left: 19px;
}}
</style>
</head>
<body>
{root |> generateHtml |> renderNode}
</body>
</html>
"""
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let tempFolder = FileSystem.createTempDirectory ()
let rec loop d n = async {
if n >= 0 then
tempFolder </> d |> System.IO.Directory.CreateDirectory |> ignore
do!
n
|> string
|> String.replicate (n + 1)
|> FileSystem.writeAllTextAsync (tempFolder </> d </> $"file.txt")
do! loop $"{d}/{n}" (n - 1)
}
loop "_.root" 3
|> Async.RunSynchronously
let html =
scanDirectory true tempFolder tempFolder
|> generateHtmlForFileSystem
html
|> _assertEqual """<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
body {
background-color: #222;
color: #ccc;
}
a {
color: #777;
font-size: 15px;
}
span {
font-size: 11px;
}
div > div {
padding-left: 10px;
}
details > div {
padding-left: 19px;
}
</style>
</head>
<body>
<div><details open="true"><summary>📂 <a href="_.root">_.root</a><span>
(10.00 B)</span></summary><div><details open="true"><summary>📂 <a
href="_.root/3">3</a><span> (6.00 B)</span></summary><div><details
open="true"><summary>📂 <a href="_.root/3/2">2</a><span> (3.00
B)</span></summary><div><details open="true"><summary>📂 <a
href="_.root/3/2/1">1</a><span> (1.00 B)</span></summary><div><div>📄 <a
href="_.root/3/2/1/file.txt">file.txt</a><span> (1.00
B)</span></div></div></details><div>📄 <a
href="_.root/3/2/file.txt">file.txt</a><span> (2.00
B)</span></div></div></details><div>📄 <a
href="_.root/3/file.txt">file.txt</a><span> (3.00
B)</span></div></div></details><div>📄 <a
href="_.root/file.txt">file.txt</a><span> (4.00
B)</span></div></div></details></div>
</body>
</html>
"""
html |> Microsoft.DotNet.Interactive.Formatting.Html.ToHtmlContent
╭─[ 218.11ms - return value ]──────────────────────────────────────────────────╮
│ <!DOCTYPE html> │
│ <html lang="en"> │
│ <head> │
│ <meta charset="UTF-8"> │
│ <style> │
│ body { │
│ background-color: #222; │
│ color: #ccc; │
│ } │
│ a { │
│ color: #777; │
│ font-size: 15px; │
│ } │
│ span { │
│ font-size: 11px; │
│ } │
│ div > div { │
│ padding-left: 10px; │
│ } │
│ details > div { │
│ padding-left: 19px; │
│ } │
│ </style> │
│ </head> │
│ <body> │
│ <div><details open="true"><summary>📂 <a │
│ href="_.root">_.root</a><span> (10.00 B)</span></summary><div><details │
│ open="true"><summary>📂 <a href="_.root/3">3</a><span> (6.00 │
│ B)</span></summary><div><details open="true"><summary>📂 <a │
│ href="_.root/3/2">2</a><span> (3.00 B)</span></summary><div><details │
│ open="true"><summary>📂 <a href="_.root/3/2/1">1</a><span> (1.00 │
│ B)</span></summary><div><div>📄 <a href="_.root... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 231.05ms - stdout ]────────────────────────────────────────────────────────╮
│ <!DOCTYPE html> │
│ <html lang="en"> │
│ <head> │
│ <meta charset="UTF-8"> │
│ <style> │
│ body { │
│ background-color: #222; │
│ color: #ccc; │
│ } │
│ a { │
│ color: #777; │
│ font-size: 15px; │
│ } │
│ span { │
│ font-size: 11px; │
│ } │
│ div > div { │
│ padding-left: 10px; │
│ } │
│ details > div { │
│ padding-left: 19px; │
│ } │
│ </style> │
│ </head> │
│ <body> │
│ <div><details open="true"><summary>📂 <a │
│ href="_.root">_.root</a><span> (10.00 B)</span></summary><div><details │
│ open="true"><summary>📂 <a href="_.root/3">3</a><span> (6.00 │
│ B)</span></summary><div><details open="true"><summary>📂 <a │
│ href="_.root/3/2">2</a><span> (3.00 B)</span></summary><div><details │
│ open="true"><summary>📂 <a href="_.root/3/2/1">1</a><span> (1.00 │
│ B)</span></summary><div><div>📄 <a │
│ href="_.root/3/2/1/file.txt">file.txt</a><span> (1.00 │
│ B)</span></div></div></details><div>📄 <a │
│ href="_.root/3/2/file.txt">file.txt</a><span> (2.00 │
│ B)</span></div></div></details><div>📄 <a │
│ href="_.root/3/file.txt">file.txt</a><span> (3.00 │
│ B)</span></div></div></details><div>📄 <a │
│ href="_.root/file.txt">file.txt</a><span> (4.00 │
│ B)</span></div></div></details></div> │
│ </body> │
│ </html> │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## Arguments │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
[[<RequireQualifiedAccess>]]
type Arguments =
| [[<Argu.ArguAttributes.ExactlyOnce>]] Dir of string
| [[<Argu.ArguAttributes.ExactlyOnce>]] Html of string
interface Argu.IArgParserTemplate with
member s.Usage =
match s with
| Dir _ -> nameof Dir
| Html _ -> nameof Html
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
Argu.ArgumentParser.Create<Arguments>().PrintUsage ()
╭─[ 171.74ms - return value ]──────────────────────────────────────────────────╮
│ USAGE: dotnet-repl [--help] --dir <string> --html <string> │
│ │
│ OPTIONS: │
│ │
│ --dir <string> Dir │
│ --html <string> Html │
│ --help display this list of options. │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## main │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let main args =
let argsMap = args |> Runtime.parseArgsMap<Arguments>
let dir =
match argsMap.[[nameof Arguments.Dir]] with
| [[ Arguments.Dir dir ]] -> Some dir
| _ -> None
|> Option.get
let htmlPath =
match argsMap.[[nameof Arguments.Html]] with
| [[ Arguments.Html html ]] -> Some html
| _ -> None
|> Option.get
let fileSystem = scanDirectory true dir dir
let html = generateHtmlForFileSystem fileSystem
html |> FileSystem.writeAllTextAsync htmlPath
|> Async.runWithTimeout 30000
|> function
| Some () -> 0
| None -> 1
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let args =
System.Environment.GetEnvironmentVariable "ARGS"
|> Runtime.splitArgs
|> Seq.toArray
match args with
| [[||]] -> 0
| args -> if main args = 0 then 0 else failwith "main failed"
╭─[ 64.85ms - return value ]───────────────────────────────────────────────────╮
│ <div class="dni-plaintext"><pre>0</pre></div><style> │
│ .dni-code-hint { │
│ font-style: italic; │
│ overflow: hidden; │
│ white-space: nowrap; │
│ } │
│ .dni-treeview { │
│ white-space: nowrap; │
│ } │
│ .dni-treeview td { │
│ vertical-align: top; │
│ text-align: start; │
│ } │
│ details.dni-treeview { │
│ padding-left: 1em; │
│ } │
│ table td { │
│ text-align: start; │
│ } │
│ table tr { │
│ vertical-align: top; │
│ margin: 0em 0px; │
│ } │
│ table tr td pre │
│ { │
│ vertical-align: top !important; │
│ margin: 0em 0px !important; │
│ } │
│ table th { │
│ text-align: start; │
│ } │
│ </style> │
╰──────────────────────────────────────────────────────────────────────────────╯
[NbConvertApp] Converting notebook DirTreeHtml.dib.ipynb to html
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
validate(nb)
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
return _pygments_highlight(
[NbConvertApp] Writing 309807 bytes to DirTreeHtml.dib.html
00:00:00 #1 [Debug] writeDibCode / output: Fs / path: DirTreeHtml.dib
00:00:00 #2 [Debug] parseDibCode / output: Fs / file: DirTreeHtml.dib
00:00:00 #1 [Debug] persistCodeProject / packages: [Argu; Falco.Markup; FSharp.Control.AsyncSeq; ... ] / modules: [lib/spiral/common.fsx; lib/spiral/sm.fsx; lib/spiral/date_time.fsx; ... ] / name: DirTreeHtml / code.Length: 4601
00:00:00 #2 [Debug] buildProject / fullPath: C:\home\git\polyglot\target\polyglot\builder\DirTreeHtml\DirTreeHtml.fsproj
00:00:00 #3 [Debug] executeAsync / options: { Command =
"dotnet publish "C:\home\git\polyglot\target/polyglot/builder\DirTreeHtml\DirTreeHtml.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\dir-tree-html\dist" --runtime linux-x64"
WorkingDirectory =
Some "C:\home\git\polyglot\target\polyglot\builder\DirTreeHtml"
CancellationToken = None
OnLine = None }
00:00:00 #4 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f for .NET
00:00:01 #5 [Verbose] > Determining projects to restore...
00:00:01 #6 [Verbose] > Restored C:\home\git\polyglot\target\polyglot\builder\DirTreeHtml\DirTreeHtml.fsproj (in 375 ms).
00:00:01 #7 [Verbose] > C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.24101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\home\git\polyglot\target\polyglot\builder\DirTreeHtml\DirTreeHtml.fsproj]
00:00:08 #8 [Verbose] > DirTreeHtml -> C:\home\git\polyglot\target\polyglot\builder\DirTreeHtml\bin\Release\net9.0\linux-x64\DirTreeHtml.dll
00:00:10 #9 [Verbose] > DirTreeHtml -> C:\home\git\polyglot\apps\dir-tree-html\dist\
00:00:10 #10 [Debug] executeAsync / exitCode: 0 / output.Length: 730
00:00:10 #11 [Debug] executeAsync / options: { Command =
"dotnet publish "C:\home\git\polyglot\target/polyglot/builder\DirTreeHtml\DirTreeHtml.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\dir-tree-html\dist" --runtime win-x64"
WorkingDirectory =
Some "C:\home\git\polyglot\target\polyglot\builder\DirTreeHtml"
CancellationToken = None
OnLine = None }
00:00:10 #12 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f for .NET
00:00:11 #13 [Verbose] > Determining projects to restore...
00:00:12 #14 [Verbose] > Restored C:\home\git\polyglot\target\polyglot\builder\DirTreeHtml\DirTreeHtml.fsproj (in 408 ms).
00:00:12 #15 [Verbose] > C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.24101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\home\git\polyglot\target\polyglot\builder\DirTreeHtml\DirTreeHtml.fsproj]
00:00:18 #16 [Verbose] > DirTreeHtml -> C:\home\git\polyglot\target\polyglot\builder\DirTreeHtml\bin\Release\net9.0\win-x64\DirTreeHtml.dll
00:00:21 #17 [Verbose] > DirTreeHtml -> C:\home\git\polyglot\apps\dir-tree-html\dist\
00:00:21 #18 [Debug] executeAsync / exitCode: 0 / output.Length: 728
In [ ]:
{ . "$ScriptDir/../apps/ipfs/build.ps1" } | Invoke-Block
Lockfile is up to date, resolution step is skipped Already up to date Done in 1.7s
In [ ]:
{ . "$ScriptDir/outdated.ps1" } | Invoke-Block
Paket version 8.1.0-alpha001+27cb9f111f156e8b68d08dc293857425c0ade23d
Resolving dependency graph...
Outdated packages found:
Group: Main
* Argu 6.2.2 -> 6.2.3
* Expecto.FsCheck 10.2.1-fscheck3 -> 10.2.1
* FsCheck 3.0.0-rc3 -> 2.16.6
* FSharp.Core 8.0.300-beta.24080.5 -> 8.0.300-beta.24154.4
* Microsoft.AspNetCore.Connections.Abstractions 7.0 -> 9.0.0-preview.2.24128.4
* Microsoft.AspNetCore.Http.Connections.Client 7.0 -> 9.0.0-preview.2.24128.4
* Microsoft.AspNetCore.Http.Connections.Common 7.0 -> 9.0.0-preview.2.24128.4
* Microsoft.AspNetCore.SignalR.Client 7.0 -> 9.0.0-preview.2.24128.4
* Microsoft.AspNetCore.SignalR.Client.Core 7.0 -> 9.0.0-preview.2.24128.4
* Microsoft.AspNetCore.SignalR.Common 7.0 -> 9.0.0-preview.2.24128.4
* Microsoft.AspNetCore.SignalR.Protocols.Json 7.0 -> 9.0.0-preview.2.24128.4
* Microsoft.Extensions.DependencyInjection 8.0 -> 9.0.0-preview.2.24128.5
* Microsoft.Extensions.DependencyInjection.Abstractions 8.0.1 -> 9.0.0-preview.2.24128.5
* Microsoft.Extensions.Features 7.0 -> 9.0.0-preview.2.24128.4
* Microsoft.Extensions.Logging 8.0 -> 9.0.0-preview.2.24128.5
* Microsoft.Extensions.Logging.Abstractions 8.0.1 -> 9.0.0-preview.2.24128.5
* Microsoft.Extensions.Options 8.0.2 -> 9.0.0-preview.2.24128.5
* Microsoft.Extensions.Primitives 8.0 -> 9.0.0-preview.2.24128.5
* System.IO.Pipelines 8.0 -> 9.0.0-preview.2.24128.5
* System.Threading.Channels 8.0 -> 9.0.0-preview.2.24128.5
Total time taken: 58 seconds
CheckToml / toml: C:\home\git\polyglot\Cargo.toml
chat_contract_tests
================
Name Project Compat Latest Kind Platform
---- ------- ------ ------ ---- --------
ahash 0.7.8 0.8.11 0.8.11 Normal ---
autocfg 1.2.0 Removed Removed Build ---
bumpalo 3.15.4 Removed Removed Normal ---
cfg-if 1.0.0 Removed Removed Normal ---
getrandom 0.2.12 Removed Removed Normal cfg(any(target_os = "linux", target_os = "android", target_os = "windows", target_os = "macos", target_os = "ios", target_os = "freebsd", target_os = "openbsd", target_os = "netbsd", target_os = "dragonfly", target_os = "solaris", target_os = "illumos", target_os = "fuchsia", target_os = "redox", target_os = "cloudabi", target_os = "haiku", target_os = "vxworks", target_os = "emscripten", target_os = "wasi"))
hashbrown 0.12.3 0.14.3 0.14.3 Normal ---
indexmap 1.9.3 2.2.6 2.2.6 Normal ---
js-sys 0.3.69 Removed Removed Normal cfg(all(any(target_arch = "wasm32", target_arch = "wasm64"), target_os = "unknown"))
libc 0.2.153 Removed Removed Normal cfg(unix)
log 0.4.21 Removed Removed Normal ---
once_cell 1.19.0 Removed Removed Normal ---
proc-macro2 1.0.79 Removed Removed Normal ---
quote 1.0.35 Removed Removed Normal ---
syn 2.0.57 Removed Removed Normal ---
unicode-ident 1.0.12 Removed Removed Normal ---
wasi 0.11.0+wasi-snapshot-preview1 Removed Removed Normal cfg(target_os = "wasi")
wasm-bindgen 0.2.92 Removed Removed Normal ---
wasm-bindgen 0.2.92 Removed Removed Normal cfg(all(any(target_arch = "wasm32", target_arch = "wasm64"), target_os = "unknown"))
wasm-bindgen-backend 0.2.92 Removed Removed Normal ---
wasm-bindgen-macro 0.2.92 Removed Removed Normal ---
wasm-bindgen-macro-support 0.2.92 Removed Removed Normal ---
wasm-bindgen-shared 0.2.92 Removed Removed Normal ---
CheckToml / toml: C:\home\git\polyglot\apps\chat\contract\Cargo.toml
All dependencies are up to date, yay!
CheckToml / toml: C:\home\git\polyglot\apps\chat\contract\tests\Cargo.toml
Name Project Compat Latest Kind Platform
---- ------- ------ ------ ---- --------
ahash->cfg-if 1.0.0 --- Removed Normal ---
ahash->getrandom 0.2.12 Removed --- Normal cfg(any(target_os = "linux", target_os = "android", target_os = "windows", target_os = "macos", target_os = "ios", target_os = "freebsd", target_os = "openbsd", target_os = "netbsd", target_os = "dragonfly", target_os = "solaris", target_os = "illumos", target_os = "fuchsia", target_os = "redox", target_os = "cloudabi", target_os = "haiku", target_os = "vxworks", target_os = "emscripten", target_os = "wasi"))
ahash->zerocopy 0.7.32 --- Removed Normal ---
getrandom->cfg-if 1.0.0 Removed --- Normal ---
getrandom->js-sys 0.3.69 Removed --- Normal cfg(all(any(target_arch = "wasm32", target_arch = "wasm64"), target_os = "unknown"))
getrandom->libc 0.2.153 Removed --- Normal cfg(unix)
getrandom->wasi 0.11.0+wasi-snapshot-preview1 Removed --- Normal cfg(target_os = "wasi")
getrandom->wasm-bindgen 0.2.92 Removed --- Normal cfg(all(any(target_arch = "wasm32", target_arch = "wasm64"), target_os = "unknown"))
hashbrown->ahash 0.7.8 0.8.11 --- Normal ---
hashbrown->ahash 0.8.11 --- 0.7.8 Normal ---
hashbrown->allocator-api2 0.2.16 --- Removed Normal ---
indexmap->autocfg 1.2.0 Removed --- Build ---
indexmap->equivalent 1.0.1 --- Removed Normal ---
indexmap->hashbrown 0.12.3 0.14.3 --- Normal ---
indexmap->hashbrown 0.14.3 --- 0.12.3 Normal ---
js-sys->wasm-bindgen 0.2.92 Removed --- Normal ---
proc-macro2->unicode-ident 1.0.12 --- Removed Normal ---
proc-macro2->unicode-ident 1.0.12 Removed --- Normal ---
quote->proc-macro2 1.0.79 --- Removed Normal ---
quote->proc-macro2 1.0.79 Removed --- Normal ---
serde_with->indexmap 1.9.3 2.2.6 --- Normal ---
serde_with->indexmap 2.2.6 --- 1.9.3 Normal ---
syn->proc-macro2 1.0.79 --- Removed Normal ---
syn->proc-macro2 1.0.79 Removed --- Normal ---
syn->quote 1.0.35 --- Removed Normal ---
syn->quote 1.0.35 Removed --- Normal ---
syn->unicode-ident 1.0.12 --- Removed Normal ---
syn->unicode-ident 1.0.12 Removed --- Normal ---
wasm-bindgen->cfg-if 1.0.0 Removed --- Normal ---
wasm-bindgen->wasm-bindgen-macro 0.2.92 Removed --- Normal ---
wasm-bindgen-backend->bumpalo 3.15.4 Removed --- Normal ---
wasm-bindgen-backend->log 0.4.21 Removed --- Normal ---
wasm-bindgen-backend->once_cell 1.19.0 Removed --- Normal ---
wasm-bindgen-backend->proc-macro2 1.0.79 Removed --- Normal ---
wasm-bindgen-backend->quote 1.0.35 Removed --- Normal ---
wasm-bindgen-backend->syn 2.0.57 Removed --- Normal ---
wasm-bindgen-backend->wasm-bindgen-shared 0.2.92 Removed --- Normal ---
wasm-bindgen-macro->quote 1.0.35 Removed --- Normal ---
wasm-bindgen-macro->wasm-bindgen-macro-support 0.2.92 Removed --- Normal ---
wasm-bindgen-macro-support->proc-macro2 1.0.79 Removed --- Normal ---
wasm-bindgen-macro-support->quote 1.0.35 Removed --- Normal ---
wasm-bindgen-macro-support->syn 2.0.57 Removed --- Normal ---
wasm-bindgen-macro-support->wasm-bindgen-backend 0.2.92 Removed --- Normal ---
wasm-bindgen-macro-support->wasm-bindgen-shared 0.2.92 Removed --- Normal ---
zerocopy->zerocopy-derive 0.7.32 --- Removed Normal ---
zerocopy-derive->proc-macro2 1.0.79 --- Removed Normal ---
zerocopy-derive->quote 1.0.35 --- Removed Normal ---
zerocopy-derive->syn 2.0.57 --- Removed Normal ---
CheckToml / toml: C:\home\git\polyglot\apps\plot\Cargo.toml
All dependencies are up to date, yay!
C:\home\git\polyglot
> polyglot@ outdated-pre C:\home\git\polyglot
> npm-check-updates --target greatest
Using pnpm
Checking C:\home\git\polyglot\package.json
@types/node ~20.11 → ~20.12
npm-check-updates ~16.14 → ~17.0-5
Run ncu --target greatest -u to upgrade package.json
C:\home\git\polyglot\apps\ipfs
> ipfs@ outdated-pre C:\home\git\polyglot\apps\ipfs
> npm-check-updates --target greatest
Using pnpm
Checking C:\home\git\polyglot\apps\ipfs\package.json
@types/node ~20.11 → ~20.12
npm-check-updates ~16.14 → ~17.0-5
Run ncu --target greatest -u to upgrade package.json
C:\home\git\polyglot\apps\spiral\temp\extension
> polyglot@ outdated-pre C:\home\git\polyglot\apps\spiral\temp\extension
> npm-check-updates --target greatest
Using pnpm
Checking C:\home\git\polyglot\apps\spiral\temp\extension\package.json
@playwright/test 1.42.1 → 1.44.0-alpha-2024-03-30
npm-check-updates ~16.14 → ~17.0-5
Run ncu --target greatest -u to upgrade package.json